Repository navigation
ci(release): lower Linux gnu glibc baseline for Node.js & Python SDKs - #609
Merged
Merged
Conversation
The Linux x86_64/aarch64 gnu native binaries were built directly on the ubuntu-24.04 runner (glibc 2.39), so they required glibc >= 2.39 at load time and failed with ERR_DLOPEN_FAILED / 'GLIBC_2.39 not found' on glibc-2.34 platforms (Amazon Linux 2023, AWS Lambda, Vercel, RHEL 9, Ubuntu 22.04). - Python: build gnu wheels in the manylinux_2_28 container (glibc 2.28). - Node.js: cross-compile gnu targets with @napi-rs/cross-toolchain (--use-napi-cross), using matrix.settings.build per entry. musl builds and the Java JNI (cross-built) artifacts were unaffected. Reported as longbridge/developers#811
Merged
hogan-yuan
added a commit
that referenced
this pull request
Oct 16, 2026
Release **v5.2.2**. Bumps workspace `5.2.1` → `5.2.2`. ### New since v5.2.1 - **Added:** attached (take-profit / stop-loss) orders gain bid/ask depth levels (longbridge/developers#1189). `SubmitAttachedParams` / `ReplaceAttachedParams` gain `profit_taker_depth_level` / `stop_loss_depth_level` (int32, valid when `activate_order_type` is `LIT`), and `AttachedOrderDetail` gains `limit_depth_level`. Across Rust, C, C++, Java, Node.js and Python (the Go SDK ships separately, openapi-go#132) (#607) ### Release pipeline (no SDK changes) - Java: bump `central-publishing-maven-plugin` to 0.12.0 so Maven Central accepts bundles built with Maven 3.10 (#606) - Node.js: skip npm publish when the version is already published, so re-running the Release workflow no longer fails with E403 (#608) - Lower the Linux gnu glibc baseline for the Node.js & Python SDKs (#609) Only `Cargo.toml` (workspace version + internal dep reqs) and `CHANGELOG.md` change. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
hogan-yuan
added a commit
that referenced
this pull request
Oct 19, 2026
## Problem The v5.2.2 Release run (38894106821) failed in `build-python-sdk (3.12, ubuntu-24.04-arm)`: ``` 📦 Built wheel for CPython 3.9 to dist/longbridge-5.2.2-cp39-cp39-manylinux_2_28_aarch64.whl ERROR: Could not find a version that satisfies the requirement longbridge (from versions: none) ``` #609 moved the Linux gnu wheels into the `manylinux_2_28` container but kept `-i python`. Inside the container, a bare `python` is the image's default interpreter, not the runner's setup-python one. So every Linux job built a **cp39** wheel no matter what its matrix version was, and the 3.12 job couldn't install it. `fail-fast` then cancelled the rest of the matrix. **Nothing was published.** Every `publish-*` job waits on the aggregate `build` job, which needs all builds to succeed. The Node.js half of #609 (`--use-napi-cross`) built fine: both Linux gnu `build-nodejs-sdk` jobs succeeded in that run. ## Fix On Linux, name the interpreter explicitly: `-i python${{ matrix.python-version }}`. This is what the `build-python-sdk-musl` job already does inside its `musllinux_1_2` container. Windows and macOS build on the runner itself and keep `-i python`. ## Verification - `release.yml` parses as valid YAML. - The expression only changes the Linux matrix entries. - The same `-i python<version>` form already works for the musl wheels in every release run. - Not exercised in CI here: this workflow only runs on a push to `release`. CI-only change; no CHANGELOG entry. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.
Problem
The Linux
x86_64/aarch64gnu native binaries for the Node.js and Python SDKs were built directly on theubuntu-24.04CI runner (glibc 2.39), so they required glibc ≥ 2.39 at load time and failed withERR_DLOPEN_FAILED/GLIBC_2.39 not foundon glibc-2.34 platforms: Amazon Linux 2023, AWS Lambda, Vercel, RHEL 9, Ubuntu 22.04.The musl builds (
musllinux_1_2) and the Java JNI artifacts (cross-built) were already unaffected.Reported as longbridge/developers#811.
Fix
Lower the gnu glibc baseline in
release.yml:maturin-actionbuilds gnu wheels in themanylinux_2_28container (glibc 2.28).manylinuxis set only for the ubuntu matrix entries; Windows/macOS useauto(ignored off-Linux).@napi-rs/cross-toolchainvia--use-napi-cross; the per-entry build command moves intomatrix.settings.build.Validation
CI-only change — cannot be validated locally. Needs a release-pipeline run; after building, confirm the artifacts' max glibc symbol is ≤ 2.28 (Python) / the napi-cross baseline (Node), e.g.:
Shipping the fix to users requires a new release.