ci(testrunner): rebuild 3.15-dev and pin Cython<3.3 on the 3.15 cache (PROF-14439) - #19907
Conversation
Codeowners resolved asResolved from the full PR diff against No remaining files require a CODEOWNERS review. |
Dependency direction analysis
|
Circular import analysis
|
🎉 All green!🧪 All tests passed 🔗 Commit SHA: a77787f | Docs | View more details | Give us feedback! |
a5008d1 to
992d101
Compare
BenchmarksBenchmark execution time: 2026-09-02 02:25:08 Comparing candidate commit a77787f in PR branch Found 0 performance improvements and 7 performance regressions! Performance is the same for 577 metrics, 10 unstable metrics, 1 known flaky benchmarks, 17 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
cc7c1ae to
001ea1e
Compare
7e222d3 to
639f7b7
Compare
72d7f7a to
792f843
Compare
afd0994 to
60de544
Compare
792f843 to
34d0900
Compare
60de544 to
601e853
Compare
Bump pyenv to v2.8.4 so the testrunner image is not stuck on 3.15.0b3+dev. Ignore gpg colon-format fingerprint lines (fpr) so codespell can scan this file.
Cython 3.3 cp315 wheels SIGSEGV on pre-rc1 3.15; pyproject.toml pin does not apply in the cached testrunner restore path. TODO(py-315): drop this pin once testrunner 3.15 is 3.15.0rc1+.
gpg --with-colons prints fpr; codespell treats it as a typo of for. Put it on the ignore-words-list instead of copying Dockerfile grep lines.
61d15e1 to
a77787f
Compare
|
/merge -m squash |
|
View all feedbacks in Devflow UI.
It will be processed automatically as soon as GitHub reports it as mergeable. View in MergeQueue UI.
The expected merge time in
|
… (PROF-14439) (#19904) ## Description Delta vs #19907. riot's `install_dev_pkg` runs `pip install -e .`, so pip enforces `requires-python = ">=3.9,<3.15"` and refuses the dev package on 3.15. This PR sets `PIP_IGNORE_REQUIRES_PYTHON=1` only for the `PYTHON_VERSION=3.15` arm of `build_base_venvs`. Published metadata stays `<3.15`. ## Testing Inspect the generated `build_base_venvs` `before_script` for `PYTHON_VERSION=3.15` and confirm the ignore is set only on that arm. ## Risks None. 3.15-only env var; other matrix versions unchanged. ## Additional Notes No release note: CI chore, `changelog/no-changelog`. Base: #19907. Next: #19906. Co-authored-by: vlad.scherbich <vlad.scherbich@datadoghq.com>
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.