Repository navigation
ci: the release wheels link rust.native on Windows and carry musllinux's bundled libraries - #12
Merged
Merged
Conversation
…x's bundled libraries The Windows build sets PYO3_USE_RAW_DYLIB=0, as make build_native_windows does: raw-dylib linking does not resolve _PyDict_NewPresized. build_wheel.py takes hare_native.libs/ (libgcc_s on musllinux) from maturin's wheel along with the extension, which loads it from ../hare_native.libs. Signed-off-by: Vladislav Yaremenko <vlad.yaremenko.98@yandex.ru>
VladislavYar
added a commit
that referenced
this pull request
Oct 26, 2026
…#17) * Import the hare-orm code base for the 0.9.0 release (#2) * Import the hare-orm code base for the 0.9.0 release (#1) The whole code base, documentation and test suite of hare-orm as of its earlier private development, prepared for the first public release, 0.9.0 - see CHANGELOG.md. Benchmark results for 0.9.0 are included. benchmarks/bench.py writes every text about the benchmark from its results and its own settings - the docs benchmark pages, the Benchmarks section of both READMEs and the scenario and method lists of benchmarks/README - so a run updates all of them. Each chart has its own background, and the docs pages use the GitHub light/dark image fragments, which Material also understands. Signed-off-by: Vladislav Yaremenko <vlad.yaremenko.98@yandex.ru> * docs: dashes and line lengths the strict build refuses; the docs built in make check (#3) The strict documentation build refused eight lines of the 0.9.0 docs - a hyphen written for a dash and lines past 110 characters - and only the deploy on a push to dev built the docs, so neither a pull request nor make check caught it. make _check (and so the check job of every CI run) now builds the documentation in strict mode too. Signed-off-by: Vladislav Yaremenko <vlad.yaremenko.98@yandex.ru> * ci: the docs published from main; the compiled rust.native files no longer committed (#4) deploy-docs published on a push to dev, which the github-pages environment doesn't deploy from - main is the default branch and holds the released code. commit-native-binary committed the nine compiled rust.native files back to dev and main: the branches are protected now, so the push is refused, and the Rust build isn't byte-reproducible, so every push would commit them again (some 60 MB a time). The test jobs and the release wheels build rust.native from the commit themselves; a checkout builds it with make build_native. The files are untracked and ignored. Signed-off-by: Vladislav Yaremenko <vlad.yaremenko.98@yandex.ru> --------- Signed-off-by: Vladislav Yaremenko <vlad.yaremenko.98@yandex.ru> * ci: the wheel check reads the model's connection by its current name (#10) check_wheel.py read the client of its model through MetaInfo.db, an attribute hare doesn't have - it is MetaInfo.connection - so every wheel check of the release failed after installing the wheel, and nothing could be published. (cherry picked from commit 6064ea3) Signed-off-by: Vladislav Yaremenko <vlad.yaremenko.98@yandex.ru> * ci: the release wheels link rust.native on Windows and carry musllinux's bundled libraries (#12) The Windows build sets PYO3_USE_RAW_DYLIB=0, as make build_native_windows does: raw-dylib linking does not resolve _PyDict_NewPresized. build_wheel.py takes hare_native.libs/ (libgcc_s on musllinux) from maturin's wheel along with the extension, which loads it from ../hare_native.libs. Signed-off-by: Vladislav Yaremenko <vlad.yaremenko.98@yandex.ru> * build: mimalloc takes the local-dynamic TLS model on musl (#13) musl refuses to dlopen() a shared library with initial-exec TLS, which libmimalloc-sys compiles with on Unix by default: rust.native of the musllinux wheels didn't import. Signed-off-by: Vladislav Yaremenko <vlad.yaremenko.98@yandex.ru> --------- Signed-off-by: Vladislav Yaremenko <vlad.yaremenko.98@yandex.ru>
Merged
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.
The release run of v0.9.0 failed on four wheel jobs:
_PyDict_NewPresizedunresolved at link time. The release build now setsPYO3_USE_RAW_DYLIB=0, asmake build_native_windowsdoes - raw-dylib linking doesn't resolve this private CPython symbol.rust.nativedoesn't import -libgcc_s-*.so.1is missing. maturin's repair bundles it intohare_native.libs/of its wheel, andbuild_wheel.pytook onlyrust/native*.sofrom there. It now takeshare_native.libs/too, and poetry packs it into the wheel at the same place, where the extension's run path finds it. The wheel check verifies the libraries got in.