Repository navigation
Conversation
ColinLeeo
force-pushed
the
develop
branch
2 times, most recently
from
October 14, 2026 01:59
ce7ebe6 to
095b086
Compare
Fix MSVC language feature detection, runtime selection, native ARM64 builds, dependency downloads and relocatable library paths. Export headers, CMake and pkg-config metadata, static dependencies and native package components. Record the resolved CRT and runtime filename in build-tree and installed SDK metadata so independent consumers can select matching compiler options. Allow existing API tests to consume an installed SDK and include dependency-download regression tests. Inherit the selected compiler in isolated ANTLR4 dependency test configurations.
Build native SDKs, DEB/RPM packages, Windows ZIPs, Homebrew bottles and Python 3.9-3.14 wheels. Reuse SDKs and automatically read their MSVC runtime configuration. Ship runtime-only wheels with one native library, stripped Unix binaries and license texts; reject build-only files, duplicate libraries and ELF debug sections. Test every installed package, wheel and relocated SDK in fresh jobs using existing C++ and Go tests, CLI operations on Python resources and the full pytest suite. Gate checksummed bundle assembly on all test matrices and retire the separate wheel workflow.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Native SDKs, platform packages, and Python wheels need a single release workflow that verifies the files users actually download and install. This PR adds that workflow for 2.5.0 and replaces the separate Python wheel workflow.
Changes
2.5.0, with an explicit option to preserve those versions during Maven builds.BUNDLEDthird-party dependencies for every native release package and as the CMake/Maven source-build default. Homebrew Formulae no longer require separate codec libraries. Validate Mach-O load commands in built bottles, staged SDKs and downloaded SDKs, rejecting external third-party dylibs even when present on the runner.3.9–3.14) on the five Python platforms: Linux and macOS on both architectures, plus Windows x86_64. Build the four Unix compatibility SDKs once per platform and reuse the native Windows SDK for its wheels.find_package, CLI operations against the four existingpython/tests/resourcesTsFile files, Go's own vet/tests and supported race checks, and the full Python pytest suite against installed wheels. Also relocate and test every downloadable SDK archive.manifest.json, andSHA256SUMS, and require persistent JUnit reports for every Python wheel test.share/tsfile/tsfile-build-config.jsonfrom the SDK and record the resolved CRT, compiler, configuration and runtime filename. Python reads it automatically, without a separate runtime environment variable.The workflow is manually dispatched and uploads build artifacts; package-registry publication is a separate step. Python retains the existing five-platform scope, without Windows ARM64 wheels. CLI golden files and the existing CLI E2E fixtures are unchanged.
Commit structure
b2ca340e0— Bump C++ and Python release versions to 2.5.0.3f45b0822— Fix portable C++ builds and installed SDK consumption.0ed880344— Add the complete multi-platform native release workflow.d3a40dbb9— Bundle third-party dependencies across all native packages and reject external macOS dylib references.Validation
The current head,
d3a40dbb9ef88a991fc683d042a5368da44173d5, is undergoing the full native release workflow. Results are pending. Local macOS ARM64 validation built the default bundled SDK and tested it after archive relocation: 222 C++ tests passed with 3 existing disabled cases; CLI checks on all four fixtures and Go vet/tests/race passed. Packaging helpers passed 68 tests with 5 existing opt-in skips. The new Mach-O check rejects both previous Homebrew-derived SDKs and accepts the newly built bundled SDK. Workflow contract, actionlint (with the existing newer runner labels allowed), formatting and dependency-policy checks passed.The results below describe the previous commit and its artifacts; the current build has not yet replaced them.
The previous commit,
0ed880344590ba575101a1fc64d971f8bb642e8f, passed the complete native release workflow: 60/60 jobs successful. An AlmaLinux mirror metadata outage interrupted the first RPM installation attempt; rerunning that task and dependent assembly succeeded without changing code or test coverage.MultiThreadedActual wheel sizes in the final bundle (decimal MB):
The manylinux x86_64 CPython 3.9 wheel decreased from 12,374,013 bytes to 2,230,136 bytes, about 82% smaller, with 42 files instead of 841. License/notice texts are retained.
The verified final bundle contains 12 SDK archives, 30 wheels, 6 DEBs, 6 RPMs, 2 Windows ZIPs, 2 Homebrew bottles, 2 bottle metadata files and the merged Formula, plus
manifest.jsonandSHA256SUMS. Its compressed size is 117,890,935 bytes. The CI artifact expires on October 28, 2026.