ci(py-315): enable cp315 across wheel matrix, riot, and CI - #18146
ci(py-315): enable cp315 across wheel matrix, riot, and CI#18146vlad-scherbich wants to merge 7 commits into
Conversation
76057d3 to
62bdac0
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 62bdac0592
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
62bdac0 to
3d0b0ac
Compare
11dfa95 to
78df4c8
Compare
3d0b0ac to
affb709
Compare
There was a problem hiding this comment.
Pull request overview
This PR promotes Python 3.15 (cp315) from an allow-fail/quarantined target to a first-class supported version across packaging metadata, the wheel build matrix, and CI job matrices.
Changes:
- Adds Python 3.15 to the canonical supported-version list (
riotfile.py) and expands packagerequires-pythonto include 3.15. - Enables cp315 across the main Linux wheel build matrix and expands multi-OS and exploration CI matrices to run against 3.15.
- Updates GitHub Actions workflows to set up Python 3.15 and to build cp315 wheels in the deploy workflow.
Reviewed changes
Copilot reviewed 9 out of 9 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 and updates doctests accordingly. |
pyproject.toml |
Expands requires-python upper bound to allow Python 3.15. |
.gitlab/package.yml |
Adds 3.15/cp315-cp315 into the main Linux wheel matrix and updates macOS wheel build version lists. |
.gitlab/multi-os-tests.yml |
Adds 3.15 to Ubuntu/macOS/Windows multi-OS test matrices and updates Linux wheel needs entries. |
.gitlab/debugging-exploration.yml |
Adds 3.15 to boto3/botocore exploration matrices. |
.gitlab-ci.yml |
Updates benchmark job image tags to the newer manylinux image. |
.github/workflows/generate-supported-versions.yml |
Adds a step to set up Python 3.15. |
.github/workflows/generate-package-versions.yml |
Adds a step to set up Python 3.15. |
.github/workflows/build_deploy.yml |
Adds cp315* to cibuildwheel build selectors and enables prerelease Python builds. |
Comments suppressed due to low confidence (1)
pyproject.toml:23
requires-pythonwas bumped to allow Python 3.15 (<3.16), but theclassifierslist still stops atProgramming Language :: Python :: 3.14. If 3.15 is now supported, add the3.15classifier to keep the package metadata consistent (and to match the PR description).
requires-python = ">=3.9,<3.16"
authors = [
{ name = "Datadog, Inc.", email = "dev@datadoghq.com" },
]
classifiers = [
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codeowners resolved as |
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (1)
pyproject.toml:34
requires-pythonwas extended to<3.16(implying 3.15 support), but the Trove classifiers list in this file still stops atProgramming Language :: Python :: 3.14. If the PR intends to advertise 3.15 support on PyPI, update the classifiers accordingly (or clarify/adjust the PR description if omitting the classifier is intentional due to 3.15 being pre-GA).
# ddtrace has many sub-components which can break when CPython internals
# change over versions, e.g. profiling. So we explicitly mark incompatibility
# with versions we don't support yet.
requires-python = ">=3.9,<3.16"
authors = [
{ name = "Datadog, Inc.", email = "dev@datadoghq.com" },
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
bd61768 to
d026865
Compare
taegyunkim
left a comment
There was a problem hiding this comment.
@vlad-scherbich build windows 3.15 jobs and os tests ubuntu 3.15 are failing
BenchmarksBenchmark execution time: 2026-05-20 20:20:50 Comparing candidate commit cf9c7c5 in PR branch Found 0 performance improvements and 2 performance regressions! Performance is the same for 618 metrics, 10 unstable metrics. scenario:iastaspectsospath-ospathbasename_aspect
scenario:span-start
|
cef86bd to
c97aa07
Compare
25096e9 to
f1a7c8c
Compare
0d8f224 to
d7359c9
Compare
d7359c9 to
3629169
Compare
build_deploy.yml: add cp315* to cibw_build, skip cp315t*, enable prerelease pythons flag (3.15 is still beta). package.yml: add 3.15 to macOS build matrix for both amd64 and arm64.
The os tests windows job needs build windows: [3.15, amd64] but the build windows matrix only went up to 3.14.
…315 smoke test on Windows ARM64
…g-exploration needs matrix
b329aaf to
cf9c7c5
Compare
Adds all .riot/requirements/*.txt lockfiles for Python 3.15 across every suite that uses select_pys() without a max_version cap. These were missing after adding (3, 15) to SUPPORTED_PYTHON_VERSIONS, causing the check_requirements_lockfiles CI job to fail. Lockfile content sourced from PR #18146 (the coordinated Python 3.15 enablement PR), which generated them by running pip-compile with Python 3.15 installed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
This pull request has been automatically closed after a period of inactivity. |
NOTE: Merge after all native profiling components build on 3.15 (i.e., after #17624 lands on main).
PROF-14439
Description
Part of the Python 3.15 integration parity effort (parent tracker: #17809). Follow-up to #17959.
With #17959 the manylinux/musllinux base images now ship a
cp315-cp315interpreter. This PR promotes 3.15 from its quarantined allow-fail job to a first-class entry across the repo:build linuxmatrix (no separate allow-fail job)3.15is in the canonicalSUPPORTED_PYTHON_VERSIONSlist and the pyproject classifiergenerate-*-versions.ymlworkflows now also set up Python 3.15Changes
Wheel matrix (
.gitlab/package.yml).PYTHON_VERSIONSadds"3.15";.PYTHON_TAGSadds"cp315-cp315"Supported-versions canonical list
riotfile.py:SUPPORTED_PYTHON_VERSIONSadds(3, 15); doctests inversion_to_str/str_to_version/select_pysupdatedCI matrices
.gitlab/multi-os-tests.yml—"3.15"added to 4 matrix sites + the bash loop + theneeds: build linuxentries.gitlab/debugging-exploration.yml—"3.15"added to both boto3 / botocore exploration matrices.github/workflows/generate-package-versions.yml+generate-supported-versions.yml—Setup Python 3.15step added after the 3.14 oneIntentionally NOT touched
.gitlab/package.yml:110unpin-helper.gitlab/fuzz.yml(PYTHON_VERSION: "3.14")3.15-dev(.gitlab/testrunner.yml,.gitlab/templates/cached-testrunner.yml)-devonce GA; 3.15.0b1 is still betaselect_pys(min_version="3.14")inriotfile.pypyproject.toml:36bytecode>='0.17.0',<1; python_version>='3.14.0'>=already catches 3.15build_python_3.yml/changelog.yml/report-skipped-flaky.ymlTesting
CI:
"build linux"matrix exercising cp315 on x86_64 + aarch64, manylinux + musllinux