GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||
GeezerVison is showing github.com — Run CI on this branch and on a free-threaded interpreter, and fix the collection error that exposes by espressolee · Pull Request #236 · python-rapidjson/python-rapidjson Conversation
|
| job | before | after |
|---|---|---|
| Tests on the free-threaded interpreter (3.14t) | did not exist | success |
| All tests, on current Python (3.11) | failure | success |
| Memory leak tests, debug build (3.11) | failure | success |
| Build wheels, arm64 / macos-13 / windows / ubuntu | failure / cancelled | success |
At the time of writing, the two QEMU-emulated wheel builds (aarch64, ppc64le) were still running — they are slow and CIBW_TEST_SKIP excludes the suite on emulated hardware, so they do not exercise the change. No job has failed.
No change to the fix in #235, and no opinion here on the truncation vs. raise question still open there.
(As on #235: developed with AI assistance. The CI runs linked above are real runs on my fork, and the before/after table is read off them.)
Sorry, something went wrong.
There was an error while loading. Please reload this page.
The workflow only triggers on master, so nothing on this branch — including pull requests into it — has ever been exercised by CI. And no job uses a free-threaded interpreter, so the branch that exists in order to be free-threaded is not tested as one. This adds `free-threaded` to the push and pull_request filters, and one job that runs the test suite on 3.14t. The job asserts `sys._is_gil_enabled()` is False before it installs anything. Without that check the job can go green while proving nothing: if the runner ever resolves 3.14t to a GIL-enabled interpreter, every test below still passes, and the tick would mean "the default build works", which the existing job already covers. Deliberately minimal — build and pytest only. Doctests and stubtest are left to the existing job rather than duplicated here.
Both skip conditions call sys._is_gil_enabled() at module scope, and that
attribute only exists on 3.13+. On anything older the call raises
AttributeError during collection, so pytest aborts before running a single
test:
ERROR collecting tests/test_circular.py
not sys._is_gil_enabled(),
E AttributeError: module 'sys' has no attribute '_is_gil_enabled'
That is not hypothetical on this branch. Its CI pins 3.11, and cibuildwheel
runs the suite against every wheel it builds, so the same error takes out the
test job, the debug job and the macOS wheel job — one cause, three red jobs.
It went unseen because the workflow only triggers on master, so CI has never
run on this branch at all; the previous commit fixes that half.
getattr(..., lambda: True) keeps the behaviour identical on 3.13+ and treats
older interpreters as GIL-enabled, which they are.
|
Thank you, merged this! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.