ci(riot): schedule Python 3.15 jobs for a starter set (PROF-14439) - #19906
ci(riot): schedule Python 3.15 jobs for a starter set (PROF-14439)#19906vlad-scherbich wants to merge 10 commits into
Conversation
Codeowners resolved asResolved from the full PR diff against |
Circular import analysis
|
Dependency direction analysis
|
|
d848db1 to
2579787
Compare
BenchmarksBenchmark execution time: 2026-08-30 03:20:03 Comparing candidate commit 8d8e684 in PR branch Found 0 performance improvements and 6 performance regressions! Performance is the same for 580 metrics, 10 unstable metrics, 3 known flaky benchmarks, 15 flaky benchmarks without significant changes.
|
2579787 to
d859c84
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the Riot CI configuration to make Python 3.15 available for opt-in scheduling while keeping the default Riot max version capped at 3.14, and adds the corresponding 3.15 lockfiles for a starter set of suites.
Changes:
- Add
(3, 15)toSUPPORTED_PYTHON_VERSIONSand extend doctests to cover 3.15. - Keep the default Riot cap at
MAX_PYTHON_VERSION = "3.14"while opting six selected venvs into 3.15 viaselect_pys(max_version="3.15"). - Add six new
.riot/requirements/*.txtlockfiles generated under Python 3.15 for the newly introduced 3.15 hashes.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
riotfile.py |
Adds 3.15 to supported versions, keeps default max at 3.14, and opts specific venvs into 3.15 selection. |
.riot/requirements/ee54ec5.txt |
New Python 3.15 lockfile for one of the newly-added 3.15 venv hashes. |
.riot/requirements/c2ce19f.txt |
New Python 3.15 lockfile for one of the newly-added 3.15 venv hashes (includes setuptools in unsafe section). |
.riot/requirements/b388a93.txt |
New Python 3.15 lockfile for one of the newly-added 3.15 venv hashes. |
.riot/requirements/1abe7fb.txt |
New Python 3.15 lockfile for one of the newly-added 3.15 venv hashes. |
.riot/requirements/15d6332.txt |
New Python 3.15 lockfile for one of the newly-added 3.15 venv hashes. |
.riot/requirements/10db676.txt |
New Python 3.15 lockfile for one of the newly-added 3.15 venv hashes. |
Suppressed comments (1)
riotfile.py:71
- str_to_version() can return variable-length tuples (the doctest includes "3" -> (3,)), but the return type annotation is tuple[int, int]. Updating the return annotation to tuple[int, ...] matches the actual behavior.
>>> str_to_version("3")
(3,)
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
faa10e0 to
ff3b31d
Compare
d859c84 to
a4e0a2a
Compare
**prev:** [#19906](#19906) | **next:** [#19910](#19910) ## Summary Wrapping context + bytecode injection for 3.15. Delta vs #19906 only (monitoring + 3.15 assemblies). ## Test plan - [ ] CI green on this branch - [ ] Stack merges cleanly into the next PR's base branch Co-authored-by: vlad-scherbich <vlad.scherbich@datadoghq.com> Co-authored-by: gabriele.tornetta <gabriele.tornetta@datadoghq.com>
ff3b31d to
1d86b3f
Compare
a4e0a2a to
cc2e9df
Compare
1d86b3f to
32c9f29
Compare
f7e0135 to
bd4659f
Compare
32c9f29 to
801e339
Compare
Add (3, 15) to SUPPORTED_PYTHON_VERSIONS and opt in six venvs. Default max stays 3.14 so uncapped suites do not mix 3.15 into 3.9-3.14 jobs. requires-python is unchanged; 3.15 installs fail until #19904.
801e339 to
19654b8
Compare
bd4659f to
39cfe79
Compare
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)
Drop it once the testrunner 3.15 interpreter is 3.15.0rc1+, when Cython 3.3 cp315 wheels no longer SIGSEGV. (cherry picked from commit fbea5a1)
httplib, dbapi, subprocess, and detect_global_locks wrap and share GitLab --exitfirst jobs. wrap() still raises on 3.15 on this stack.
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 #19904.
Adds
(3, 15)toSUPPORTED_PYTHON_VERSIONSand opts insmoke_testandsourcecodeviaselect_pys(max_version="3.15"). Wrap-heavy suites (httplib,dbapi,subprocess,detect_global_locks) stay at the default. DefaultMAX_PYTHON_VERSIONstays"3.14"so uncappedselect_pys()does not mix 3.15 hashes into 3.9–3.14--exitfirstjobs.If this merges and nothing else new lands: those two suites schedule 3.15 jobs. This does not widen
requires-pythonand does not enable wrap() on 3.15.Testing
scripts/lint riot(doctest) andscripts/lint style riotfile.py.Risks
smoke_testis required bybuild_base_venvswhenever 3.15 is in the matrix.Additional Notes
No release note: CI chore,
changelog/no-changelog. Wrap lift is #19910 onmain/ #19928 on this stack.Contributes to #17816