Repository navigation
CI: gate the native release on the pyver job (Python 3.15 and free-threaded 3.14t) - #372
Merged
Merged
Conversation
Collaborator
Author
|
The red "Test arcadedb" legs are not from this PR: only |
2 of 3 tasks
…readed 3.14t) test-native.yml ran the pyver job on the built linux-x86_64 wheel, but release-native.yml never read it, so a red leg could not stop a release, although 3.15 is a classifier of the wheel and 3.14t is documented. A pyver leg that passes now uploads the marker native-passed-pyver-py<version> (the file name of the wheel it installed) after its gate step, and verify in release-native.yml requires the markers of 3.15 and 3.14t for every kind of release, and that both tested the linux-x86_64 wheel that is published. tests/test_select_native_matrix.py pins the new contract in place of the old one (the old test asserted that no job reads the pyver job): the marker is uploaded after the gate by steps that run on success only, and the Pythons verify names are the pyver legs the selector gives a release. tests/test_release_native_verify.py runs the shipped verify step with bash on small passed/ and wheels/ directories: 7 of its 11 cases fail on the old workflow (no pyver check) and pass on the new one. Only linux-x86_64 is checked on these Pythons; the docs (ci.adoc, release.adoc), the wheel README and the workflow comments say so and no longer call the job informational. Closes #349 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
tae898
force-pushed
the
ci/349-gate-native-release-on-pyver
branch
from
November 12, 2026 01:53
206a24d to
eceeafd
Compare
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.
What does this PR do?
The
pyverjob oftest-native.ymlruns a test subset on the builtlinux-x86_64wheel on Python 3.15 and on free-threaded 3.14t.release-native.ymlnever read it, so a red leg could not stop a release. Now a leg that passes uploads the markernative-passed-pyver-py<version>(it holds the file name of the wheel the leg installed), after its gate step, on success only.verifyinrelease-native.ymlrequires the markers of 3.15 and 3.14t for every kind of release (dev, final and post), and requires that both tested thelinux-x86_64wheel that is published. The Pythonsverifynames are checked against thepyverlegs thatscripts/select_native_matrix.pygives a release.Only
linux-x86_64is checked on these two Pythons: aarch64, macOS and Windows stay untested on them, and the JVM package has no such job. The docs and the workflow comments say so.Related issues
Closes #349
Docs
development/ci.adoc(thepyverbullet),development/release.adoc(the job list and the publish rules),native/wheel/README.md(the 3.14t line), and the comments oftest-native.yml,release-native.ymlandscripts/select_native_matrix.py: none calls the job informational any more.Checklist
tests/test_release_native_verify.pyruns the shippedverifystep with bash on smallpassed/andwheels/directories. Run against the oldrelease-native.yml, 7 of its 11 cases fail (a missing pyver marker, and a pyver marker for another wheel, are accepted); against the new one all 11 pass. The old contract test intests/test_select_native_matrix.py(it asserted that no job reads the pyver job) now pins the new one and fails on the old workflow files.uvx pre-commit run --files <changed files>passes (black reformatted one test file, now committed), andactionlintwith shellcheck passes on both workflows.🤖 Generated with Claude Code