ci(testrunner): rebuild 3.15-dev and pin Cython<3.3 on the 3.15 cache (PROF-14439) - #19907
ci(testrunner): rebuild 3.15-dev and pin Cython<3.3 on the 3.15 cache (PROF-14439)#19907vlad-scherbich wants to merge 9 commits into
Conversation
Codeowners resolved asResolved from the full PR diff against |
Dependency direction analysis
|
Circular import analysis
|
|
a5008d1 to
992d101
Compare
BenchmarksBenchmark execution time: 2026-08-30 03:21:29 Comparing candidate commit 81124a4 in PR branch Found 0 performance improvements and 6 performance regressions! Performance is the same for 579 metrics, 11 unstable metrics, 3 known flaky benchmarks, 15 flaky benchmarks without significant changes.
|
There was a problem hiding this comment.
Pull request overview
This PR updates the GitLab CI build_base_venvs template (.cached_testrunner) to avoid installing Cython 3.3.x into the EXT_CACHE_VENV when running the Python 3.15 arm, because Cython 3.3.0’s cp315 wheel can segfault on pre-rc1 Python 3.15 interpreters. This keeps the base-venv cache bootstrapping stable on 3.15 while leaving 3.9–3.14 behavior unchanged.
Changes:
- Add a
PYTHON_VERSION == 3.15conditional in.cached_testrunnerto installCython<3.3only for the 3.15 venv cache. - Preserve the existing unpinned
Cythoninstall path for Python 3.9–3.14.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
496f6a1 to
994180a
Compare
992d101 to
d872a18
Compare
994180a to
be14e88
Compare
d872a18 to
8b2e454
Compare
be14e88 to
45a74e6
Compare
8b2e454 to
5785062
Compare
45a74e6 to
cc7c1ae
Compare
5785062 to
7e222d3
Compare
Bump pyenv v2.6.31 to v2.8.4 so a docker/** push to main rebuilds the testrunner image. The pinned image still has 3.15.0b3+dev (Jun 30), which rejects rc1-built cp315 wheels.
EXT_CACHE_VENV installs Cython outside pyproject.toml, so PR 19861 does not cover it. Cython 3.3.0 cp315 wheels SIGSEGV on pre-rc1 3.15.
cc7c1ae to
001ea1e
Compare
7e222d3 to
639f7b7
Compare
Drop it once the testrunner 3.15 interpreter is 3.15.0rc1+, when Cython 3.3 cp315 wheels no longer SIGSEGV.
Monitoring inject_hook already works. The wrap raise tests are skipif below NEXT and would demand a raise after wrap lift; they do not pin this PR error-string change. (cherry picked from commit 08c8693)
The SSI max bump does not need a bandit/mypy skip of lib-injection/. (cherry picked from commit 0cf5c73)
(cherry picked from commit cbe119a)
Lint extra bytecode==0.18.1 on 3.15 is not the runtime dep bytecode>=0.19.0. Leave both; they are different extras. (cherry picked from commit 5bd7d37)
Lint extra bytecode==0.18.1 conflicts with runtime bytecode>=0.19.0 when uv resolves extras for requires-python that includes 3.15. (cherry picked from commit cac61ca)
Description
Delta vs #19903.
docker/Dockerfile: pyenvv2.6.31→v2.8.4. Adocker/**push tomainretriggers.github/workflows/testrunner.ymland recompiles3.15-dev. Does not pin a 3.15.0 interpreter or the GitLabTESTRUNNER_IMAGEdigest..cached_testrunnerEXT_CACHE_VENV:pip install … 'Cython<3.3'whenPYTHON_VERSION=3.15; other versions stay unpinnedCython.If this merges and nothing else new lands: the next testrunner image rebuilds with pyenv 2.8.4, and the 3.15 cache venv gets Cython 3.2.x. GitLab jobs keep the old digest until a follow-up pins it.
Testing
Image rebuild is the testrunner workflow after merge to
main. After publish, pin.gitlab/testrunner.yml. Confirm the generated 3.15build_base_venvsbefore_scriptinstallsCython<3.3.Risks
Pyenv 2.8.4 also reinstalls 3.8–3.14 (patch-level bumps possible). Cython pin is 3.15-only.
Additional Notes
Does not duplicate #19861 (
pyproject.tomlunchanged). No release note: CI chore,changelog/no-changelog.Base: #19903. Next: #19904.