Skip to content

chore(ci): test 3 integrations on Python 3.15 [SIGN-28] - #21519

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
mainfrom
signal/SIGN-28-python-3.15-batch
Nov 4, 2026
Merged

gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
mainfrom
signal/SIGN-28-python-3.15-batch

Conversation

@wconti27

@wconti27 wconti27 commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Description

Adds Python 3.15 to the test matrix of three integrations whose libraries now support them. This is a CI-only change: suitespec runtime lists, regenerated test locks, and the refreshed supported_versions.json / integration registry.

Integration (suite) Row changed Runtime(s) added Public evidence Jira
aws_sdk_bedrock_runtime (llmobs) aws-sdk-bedrock-runtime==0.11.0 3.15 Pure-Python py3 wheel, requires-python >=3.12 with no upper bound (PyPI) SIGN-28
typesafe (llmobs) unpinned typesafe-sdk 3.15 Pure-Python py3 wheel, >=3.10 (PyPI) SIGN-34
pytorch (contrib) unpinned torch 3.15 torch 2.15.0 ships cp315 wheels for Linux x86_64/aarch64 (PyPI) SIGN-37

Only the newest dependency row of each suite gets the new runtime, which follows the existing pattern for 3.14. The pytorch TODO(py-315) notes (no cp315 torch wheels) are resolved by this change and removed.

Locks were generated with scripts/test-requirements lock in the linux/amd64 testrunner image. The registry and supported_versions.json were refreshed with scripts/integration_registry/update_and_format_registry.py.

Part of the Python 3.15 runtime effort (IDMPL-411). Covered tickets: SIGN-28, SIGN-34, SIGN-37.

Testing

  • aws_sdk_bedrock_runtime: run locally. 3.15 (d26e4af3aa30): 215 passed. 3.12 (25344eb73ed4): 215 passed.
  • typesafe: run locally. 3.15 (7ad2c9f75d2a): 40 passed. 3.10 (afd6f659f199): 40 passed.
  • pytorch: CI on this PR, all 13 contrib/pytorch jobs pass, including the new 3.15 cell.
  • CI: llmobs/aws_sdk_bedrock_runtime and llmobs/typesafe pass.
  • scripts/test-requirements check (all locks valid), scripts/lint suitespec-check, scripts/lint suitespec-duplicates, and the lockfile cooldown check on the new locks: all pass.

Risks

CI-only. No tracer code changes. The new jobs add CI time for the three suites.

Additional Notes

No release note: test/CI-only change (changelog/no-changelog).

Left out of this batch because they need more than a runtime bump:

  • mlflow: the 3.15 lock still resolves a pyarrow release without cp315 wheels.
  • flask-caching: 2.5 removed the short CACHE_TYPE aliases the tests use.
  • vertexai: google-cloud-aiplatform 2.x changes test setup.
  • langchain: the new 3.14/3.15 row failed in CI (removed in the second commit).
  • mysqldb: the mysqlpython suite is skip: true, so a 3.15 cell would not run in CI (removed in the second commit).

🤖 Generated with Claude Code

Add Python 3.15 (and 3.14 for langchain) to the newest test row of aws_sdk_bedrock_runtime, langchain, mysqldb (mysqlclient), typesafe and pytorch, regenerate the test locks, and refresh supported_versions.json and the integration registry. The langchain 3.14/3.15 row drops the greenlet==3.0.3 and numexpr==2.8.5 pins, which have no 3.14+ wheels; torch 2.15.0 ships cp315 wheels, so the pytorch TODO(py-315) notes are resolved.

Environment: Datadog workspace

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@wconti27 wconti27 added the changelog/no-changelog A changelog entry is not required for this PR. label Nov 4, 2026
@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Codeowners resolved as

Resolved from the full PR diff against main using the target branch CODEOWNERS file.
CODEOWNERS team requests not listed below are not required by the current file set.

scripts/integration_registry/registry.yaml                              @DataDog/apm-idm-python @DataDog/ml-observability
supported_versions.json                                                 @DataDog/python-guild @DataDog/apm-idm-python @DataDog/ml-observability
tests/contrib/suitespec.yml                                             @DataDog/python-guild
tests/llmobs/suitespec.yml                                              @DataDog/ml-observability
tests/requirements_locks/21459b362fbe.txt                               @DataDog/apm-python
tests/requirements_locks/7ad2c9f75d2a.txt                               @DataDog/apm-python
tests/requirements_locks/d26e4af3aa30.txt                               @DataDog/apm-python

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Dependency direction analysis

⚠️ Existing dependency direction violations

There are 89 dependency direction violations that already exist on the base branch and have not been changed by this PR.

Show existing violations (showing 5 of 89 highest severity)
ddtrace.internal.tracemethods -×-> ddtrace.trace  (internal-core -> product:tracing, score=121)
ddtrace.llmobs._telemetry -×-> ddtrace.trace  (product:llmobs -> product:tracing, score=119)
ddtrace.llmobs._integrations.bedrock_agents -×-> ddtrace.trace  (product:llmobs -> product:tracing, score=119)
ddtrace.llmobs._integrations.bedrock -×-> ddtrace.trace  (product:llmobs -> product:tracing, score=119)
ddtrace.llmobs._integrations.anthropic -×-> ddtrace.trace  (product:llmobs -> product:tracing, score=119)

To see all violations, download the layers-base.json and layers-pr.json artifacts from this CI job and run:

uv run --script scripts/import-analysis/layers.py compare layers-base.json layers-pr.json

@wconti27
wconti27 marked this pull request as ready for review November 4, 2026 21:32
@wconti27
wconti27 requested review from a team as code owners November 4, 2026 21:32
@wconti27
wconti27 requested review from quinna-h and removed request for a team November 4, 2026 21:32
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-04T22:02:48.725650Z 4960ae9 New commits
🔒 Security Review ✅ Completed 2026-11-04T22:04:01.896232Z 4960ae9 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@datadog-datadog-prod-us1 datadog-datadog-prod-us1 Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bits Code Review: FAIL

The new MySQLdb Python 3.15 environment never runs in CI because its parent suite remains disabled, leaving the newly advertised runtime without CI coverage.

Open Bits AI session

🤖 Bits Code Review · Commit e6c1bad

Comment thread tests/contrib/suitespec.yml Resolved
@pr-commenter

pr-commenter Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-11-04 22:24:50

Comparing candidate commit 4960ae9 in PR branch signal/SIGN-28-python-3.15-batch with baseline commit c25f34c in branch main.

📊 Benchmarking dashboard

Found 0 performance improvements and 1 performance regressions! Performance is the same for 612 metrics, 10 unstable metrics, 1 flaky benchmarks without significant changes.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:iastaspects-upper_aspect

  • 🟥 execution_time [+18.654µs; +23.125µs] or [+7.894%; +9.786%]

Unstable benchmarks

These benchmarks have a confidence interval too wide to call a change; treat them as noise rather than signal.

scenario:coreapiscenario-context_with_data_listeners

  • unstable execution_time [-716.414ns; +751.599ns] or [-6.694%; +7.023%]

scenario:coreapiscenario-core_dispatch_1_listener

  • unstable execution_time [-40.058ns; +31.811ns] or [-5.762%; +4.576%]

scenario:coreapiscenario-core_dispatch_50_listeners

  • unstable execution_time [-2027.784ns; +1838.185ns] or [-10.074%; +9.132%]

scenario:coreapiscenario-core_dispatch_exception_listeners

  • unstable execution_time [-1880.229ns; +1755.793ns] or [-9.846%; +9.194%]

scenario:coreapiscenario-core_dispatch_listeners

  • unstable execution_time [-388.468ns; +371.696ns] or [-9.016%; +8.626%]

scenario:coreapiscenario-core_dispatch_no_args_listeners

  • unstable execution_time [-230.401ns; +222.167ns] or [-8.501%; +8.198%]

scenario:coreapiscenario-core_dispatch_with_results_1_listener

  • unstable execution_time [-100.676ns; +78.698ns] or [-6.993%; +5.466%]

scenario:coreapiscenario-core_dispatch_with_results_50_listeners

  • unstable execution_time [-4918.110ns; +4883.766ns] or [-9.635%; +9.567%]

scenario:coreapiscenario-core_dispatch_with_results_listeners

  • unstable execution_time [-1097.452ns; +915.765ns] or [-10.145%; +8.465%]

scenario:packagesupdateimporteddependencies-import_many_stdlib_cached

  • unstable execution_time [-59.885µs; +51.045µs] or [-10.308%; +8.786%]

Known flaky benchmarks

These benchmarks are marked as flaky and will not trigger a failure. Modify FLAKY_BENCHMARKS_REGEX to control which benchmarks are marked as flaky.

Known flaky benchmarks without significant changes:

  • scenario:packagespackageforrootmodulemapping-cache_off

@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Pipelines  Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 4960ae9 | Docs | View more details | Give us feedback!

…N-28]

The new langchain 3.14/3.15 jobs fail in CI, and the mysqlpython suite is skip: true, so a 3.15 cell there would never run. Restore both to main and keep the TODO(py-315) note on langchain.

Environment: Datadog workspace

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wconti27 wconti27 changed the title chore(ci): test 5 integrations on Python 3.15 [SIGN-28] chore(ci): test 3 integrations on Python 3.15 [SIGN-28] Nov 4, 2026
@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot merged commit 464fd22 into main Nov 4, 2026
861 checks passed
@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot deleted the signal/SIGN-28-python-3.15-batch branch November 4, 2026 23:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/no-changelog A changelog entry is not required for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants