Skip to content

ci: replace Riot test environments with uv - #19713

Draft
mabdinur wants to merge 18 commits into
mainfrom
codex/migrate-tracer-hatch
Draft

ci: replace Riot test environments with uv#19713
mabdinur wants to merge 18 commits into
mainfrom
codex/migrate-tracer-hatch

Conversation

@mabdinur

@mabdinur mabdinur commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Description

Replace Riot with uv as the only test runner while preserving the existing compatibility matrix and locked dependencies.

  • Test environments are defined in tests/suitespec.py and use flat, descriptive locks under .uv/.
  • CI reuses build_base_venvs artifacts, so test jobs do not rebuild ddtrace and its native extensions.
  • Existing Riot lock contents were moved byte-for-byte; riotfile.py and 18 stale OpenTracing locks remain temporarily for follow-up cleanup.
  • Contributor docs cover the uv workflow and conflict resolution for PRs that still modify Riot.

Each commit is self-contained and can be shipped independently.

Testing

CI is the source of truth. Local validation covers lock parity, matrix expansion, runner behavior, lint, and representative suites.

Area Jobs, main → uv Slowest job, main → uv Critical-path change Total runner time, main → uv
Environment setup 7 → 7 3m 36s → 2m 41s 25.4% faster 18m 44s → 15m 04s
tracer 19 → 19 11m 54s → 9m 45s 18.0% faster 2h 13m 23s → 2h 01m 49s
aiohttp 5 → 13 4m 49s → 2m 07s 56.2% faster 20m 38s → 23m 55s
Flask 25 → 25 5m 49s → 3m 47s 34.8% faster 1h 19m 20s → 1h 11m 17s
requests 1 → 9 8m 14s → 3m 37s 56.0% faster 8m 14s → 19m 47s
Four suites combined 50 → 66 11m 54s → 9m 45s 18.0% faster 4h 01m 34s → 3h 56m 49s

All four suites have a shorter critical path, and their combined runner time is 2.0% lower. The additional aiohttp and requests shards trade runner concurrency for substantially shorter feedback time.

Source: latest complete focused branch test pipeline at b966e97c5c, compared with the latest successful origin/main test pipeline at 3bb9ecda22. The current head pipeline stopped at prechecks before suite jobs, so it is not a timing sample.

Validation requires exact environment coverage, byte-identical moved locks, successful representative local runs, and passing affected CI jobs.

Risks

The matrix is large, so parity checks and CI catch coverage or dependency drift. Cache and performance optimization remain deferred unless CI shows a material regression.

Additional Notes

This changes internal test infrastructure only and uses the changelog/no-changelog label.

@mabdinur mabdinur added changelog/no-changelog A changelog entry is not required for this PR. AI Generated Largely based on code generated by an AI or LLM. This label is the same across all dd-trace-* repos labels Aug 14, 2026
@datadog-prod-us1-5

datadog-prod-us1-5 Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Pipelines  Tests

Unblock PR with BitsAI

⚠️ Warnings

🚦 32 Pipeline jobs failed

DataDog/apm-reliability/dd-trace-py | contrib/aiomysql 2/2 — ❌ 5 tests failed · 🔧 Needs a code fix, caused by this PR

View in Datadog · View in GitLab

❌ test_schematized_span_name[v0][py3.9] from test_aiomysql.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_span_name_v0_6/ddtrace_sub...    from tests.contrib.aiomysql.test_aiomysql import AIOMYSQL_CONFIG
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
❌ test_schematized_span_name[v1][py3.9] from test_aiomysql.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_span_name_v1_6/ddtrace_sub...    from tests.contrib.aiomysql.test_aiomysql import AIOMYSQL_CONFIG
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
❌ test_unspecified_service_v1[py3.9] from test_aiomysql.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_unspecified_service_v1_py6/ddtrace_sub...    from tests.contrib.aiomysql.test_aiomysql import AIOMYSQL_CONFIG
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
↳ and 2 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/asyncpg 1/2 — ❌ 1 test failed · 🔧 Needs a code fix, caused by this PR

View in Datadog · View in GitLab

❌ test_configure_service_name_env_v0[py3.9] from test_asyncpg.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_configure_service_name_en13/ddtrace_su...5, in <module>
      from tests.contrib.config import POSTGRES_CONFIG
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/asyncpg 2/2 — ❌ 5 tests failed · 🔧 Needs a code fix, caused by this PR

View in Datadog · View in GitLab

❌ test_configure_service_name_env_v1[py3.9] from test_asyncpg.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_configure_service_name_en12/ddtrace_su...5, in <module>
      from tests.contrib.config import POSTGRES_CONFIG
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
❌ test_span_name_by_schema[v0][py3.9] from test_asyncpg.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_name_by_schema_v0__p6/ddtrace_sub...5, in <module>
      from tests.contrib.config import POSTGRES_CONFIG
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
❌ test_span_name_by_schema[v1][py3.9] from test_asyncpg.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_name_by_schema_v1__p6/ddtrace_sub...5, in <module>
      from tests.contrib.config import POSTGRES_CONFIG
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
↳ and 2 more — View all

View all 32 failed jobs.

🧪 187 Tests failed in 54 jobs

DataDog/apm-reliability/dd-trace-py | ci_visibility/pytest_bdd 3/3 — ❌ 4 tests failed
❌ TestPytestBdd::test_pytest_bdd_scenario[py3.10] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/test_pytest_bdd_scenario6/bdd_capture.json'
❌ TestPytestBdd::test_pytest_bdd_scenario_with_failed_step[py3.10] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/test_pytest_bdd_scenario_with_failed_step6/bdd_capture.json'
❌ TestPytestBdd::test_pytest_bdd_scenario_with_parameters[py3.10] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/test_pytest_bdd_scenario_with_parameters6/bdd_capture.json'
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | ci_visibility/testing 1/18 — ❌ 3 tests failed
❌ TestPytestBdd::test_pytest_bdd_scenario[py3.9] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw2/test_pytest_bdd_scenario5/bdd_capture.json'
❌ TestPytestBdd::test_pytest_bdd_scenario_with_failed_step[py3.9] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw2/test_pytest_bdd_scenario_with_failed_step5/bdd_capture.json'
❌ TestPytestBdd::test_pytest_bdd_scenario_with_parameters[py3.9] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw2/test_pytest_bdd_scenario_with_parameters5/bdd_capture.json'
DataDog/apm-reliability/dd-trace-py | ci_visibility/testing 10/18 — ❌ 2 tests failed
❌ TestPytestBdd::test_pytest_bdd_scenario[py3.12] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw0/test_pytest_bdd_scenario5/bdd_capture.json'
❌ TestPytestBdd::test_pytest_bdd_scenario_with_failed_step[py3.12] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw0/test_pytest_bdd_scenario_with_failed_step5/bdd_capture.json'
DataDog/apm-reliability/dd-trace-py | ci_visibility/testing 16/18 — ❌ 4 tests failed
❌ TestPytestBdd::test_pytest_bdd_scenario[py3.14] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw2/test_pytest_bdd_scenario5/bdd_capture.json'
❌ TestPytestBdd::test_pytest_bdd_scenario_with_failed_step[py3.14] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw2/test_pytest_bdd_scenario_with_failed_step5/bdd_capture.json'
❌ TestPytestBdd::test_pytest_bdd_scenario_with_parameters[py3.14] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw2/test_pytest_bdd_scenario_with_parameters4/bdd_capture.json'
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | ci_visibility/testing 2/18 — ❌ 1 test failed
❌ TestPytestBdd::test_pytest_bdd_with_missing_step_implementation[py3.9] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw3/test_pytest_bdd_with_missing_step_implementation5/bdd_capture.json'
DataDog/apm-reliability/dd-trace-py | ci_visibility/testing 9/18 — ❌ 4 tests failed
❌ TestPytestBdd::test_pytest_bdd_scenario[py3.11] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw3/test_pytest_bdd_scenario4/bdd_capture.json'
❌ TestPytestBdd::test_pytest_bdd_scenario_with_failed_step[py3.11] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw3/test_pytest_bdd_scenario_with_failed_step5/bdd_capture.json'
❌ TestPytestBdd::test_pytest_bdd_scenario_with_parameters[py3.11] from test_pytest_bdd.py   View in Datadog
[Errno 2] No such file or directory: '/tmp/pytest-of-bits/pytest-0/popen-gw3/test_pytest_bdd_scenario_with_parameters5/bdd_capture.json'
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | ci_visibility/unittest 2/2 — ❌ 7 tests failed
❌ UnittestSnapshotTestCase::test_unittest_will_force_run_multiple_unskippable_tests[py3.10] from test_unittest_snapshot.py   View in Datadog
At request <Request GET /test/session/snapshot >:
   At snapshot (token='tests.contrib.unittest.test_unittest_snapshot.test_unittest_will_force_run_multiple_unskippable_tests'):
    - Directory: /go/src/github.com/DataDog/apm-reliability/dd-trace-py/tests/snapshots
    - CI mode: 1
    - Trace File: /go/src/github.com/DataDog/apm-reliability/dd-trace-py/tests/snapshots/tests.contrib.unittest.test_unittest_snapshot.test_unittest_will_force_run_multiple_unskippable_tests.json
    - Stats File: /go/src/github.com/DataDog/apm-reliability/dd-trace-py/tests/snapshots/tests.contrib.unittest.test_unittest_snapshot.test_unittest_will_force_run_multiple_unskippable_tests_tracestats.json
    At compare of 1 expected trace(s) to 1 received trace(s):
     At trace 'unittest.test_session' (6 spans):
Received fewer spans (1) than expected (6). Expected unmatched spans: 'unittest.test_module', 'unittest.test_suite', 'unittest.test', 'unittest.test', 'unittest.test'
❌ UnittestSnapshotTestCase::test_unittest_will_force_run_unskippable_tests[py3.10] from test_unittest_snapshot.py   View in Datadog
At request <Request GET /test/session/snapshot >:
   At snapshot (token='tests.contrib.unittest.test_unittest_snapshot.test_unittest_will_force_run_unskippable_tests'):
    - Directory: /go/src/github.com/DataDog/apm-reliability/dd-trace-py/tests/snapshots
    - CI mode: 1
    - Trace File: /go/src/github.com/DataDog/apm-reliability/dd-trace-py/tests/snapshots/tests.contrib.unittest.test_unittest_snapshot.test_unittest_will_force_run_unskippable_tests.json
    - Stats File: /go/src/github.com/DataDog/apm-reliability/dd-trace-py/tests/snapshots/tests.contrib.unittest.test_unittest_snapshot.test_unittest_will_force_run_unskippable_tests_tracestats.json
    At compare of 1 expected trace(s) to 1 received trace(s):
     At trace 'unittest.test_session' (5 spans):
Received fewer spans (1) than expected (5). Expected unmatched spans: 'unittest.test_module', 'unittest.test_suite', 'unittest.test', 'unittest.test'
❌ UnittestSnapshotTestCase::test_unittest_will_include_custom_tests[py3.10] from test_unittest_snapshot.py   View in Datadog
At request <Request GET /test/session/snapshot >:
   At snapshot (token='tests.contrib.unittest.test_unittest_snapshot.test_unittest_will_include_custom_tests'):
    - Directory: /go/src/github.com/DataDog/apm-reliability/dd-trace-py/tests/snapshots
    - CI mode: 1
    - Trace File: /go/src/github.com/DataDog/apm-reliability/dd-trace-py/tests/snapshots/tests.contrib.unittest.test_unittest_snapshot.test_unittest_will_include_custom_tests.json
    - Stats File: /go/src/github.com/DataDog/apm-reliability/dd-trace-py/tests/snapshots/tests.contrib.unittest.test_unittest_snapshot.test_unittest_will_include_custom_tests_tracestats.json
    At compare of 1 expected trace(s) to 1 received trace(s):
     At trace 'unittest.test_session' (5 spans):
Received fewer spans (1) than expected (5). Expected unmatched spans: 'unittest.test_module', 'unittest.test_suite', 'unittest.test', 'unittest.test'
↳ and 4 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/aiobotocore 1/8 — ❌ 4 tests failed
❌ test_schematized_env_specified_service[schema_params0][py3.9] from test.py   View in Datadog

assert 1 == 0
❌ test_schematized_env_specified_service[schema_params2][py3.9] from test.py   View in Datadog

assert 1 == 0
❌ test_schematized_env_specified_service[schema_params3][py3.9] from test.py   View in Datadog

assert 1 == 0
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/aiobotocore 2/8 — ❌ 2 tests failed
❌ test_schematized_env_specified_service[schema_params1][py3.9] from test.py   View in Datadog

assert 1 == 0
❌ test_schematized_env_specified_service[schema_params5][py3.9] from test.py   View in Datadog

assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/aiobotocore 5/8 — ❌ 2 tests failed
❌ test_schematized_env_specified_service[schema_params2][py3.10] from test.py   View in Datadog

assert 1 == 0
❌ test_schematized_env_specified_service[schema_params5][py3.10] from test.py   View in Datadog

assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/aiobotocore 8/8 — ❌ 4 tests failed
❌ test_schematized_env_specified_service[schema_params0][py3.10] from test.py   View in Datadog

assert 1 == 0
❌ test_schematized_env_specified_service[schema_params1][py3.10] from test.py   View in Datadog

assert 1 == 0
❌ test_schematized_env_specified_service[schema_params3][py3.10] from test.py   View in Datadog

assert 1 == 0
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/aiohttp 2/5 — ❌ 3 tests failed
❌ test_service_operation_schema[None][py3.9] from test_middleware.py   View in Datadog
('Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_service_operation_schema_17/ddtrace_su...test.py", line 4, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', '')
assert 1 == 0
❌ test_service_operation_schema[v0][py3.9] from test_middleware.py   View in Datadog
('Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_service_operation_schema_5/ddtrace_sub...test.py", line 4, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', '')
assert 1 == 0
❌ test_service_operation_schema[v1][py3.9] from test_middleware.py   View in Datadog
('Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_service_operation_schema_11/ddtrace_su...test.py", line 4, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', '')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/aiohttp 5/5 — ❌ 10 tests failed
❌ test_configure_global_service_name_env[None][py3.10] from test_aiohttp_client.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_configure_global_service_18/ddtrace_su...>
      from tests.contrib.aiohttp.test_aiohttp_client import URL_200
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
❌ test_configure_global_service_name_env[v0][py3.10] from test_aiohttp_client.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_configure_global_service_5/ddtrace_sub...>
      from tests.contrib.aiohttp.test_aiohttp_client import URL_200
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
❌ test_configure_global_service_name_env[v1][py3.10] from test_aiohttp_client.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_configure_global_service_17/ddtrace_su...>
      from tests.contrib.aiohttp.test_aiohttp_client import URL_200
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
↳ and 7 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/aredis 1/1 — ❌ 4 tests failed
❌ test_schematization_of_service_and_operation[schema_tuplets2][py3.9] from test_aredis.py   View in Datadog
('Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematization_of_service11/ddtrace_su...test.py", line 5, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', '')
assert 1 == 0
❌ test_schematization_of_service_and_operation[schema_tuplets3][py3.9] from test_aredis.py   View in Datadog
('Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematization_of_service5/ddtrace_sub...test.py", line 5, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', '')
assert 1 == 0
❌ test_schematization_of_service_and_operation[schema_tuplets4][py3.9] from test_aredis.py   View in Datadog
('Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematization_of_service17/ddtrace_su...test.py", line 5, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', '')
assert 1 == 0
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/asgi 1/18 — ❌ 4 tests failed
❌ test_span_attribute_schema_service_name[None-None][py3.9] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser17/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[v0-None][py3.9] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser29/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[v1-None][py3.9] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser5/ddtrace_su...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/asgi 10/18 — ❌ 1 test failed
❌ test_span_attribute_schema_operation_name[v1][py3.12] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ope5/ddtrace_su...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/asgi 11/18 — ❌ 7 tests failed
❌ test_span_attribute_schema_operation_name[None][py3.12] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ope11/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_operation_name[v0][py3.12] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ope5/ddtrace_su...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[None-None][py3.12] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser23/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
↳ and 4 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/asgi 13/18 — ❌ 3 tests failed
❌ test_span_attribute_schema_service_name[None-mysvc][py3.13] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser17/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[v0-mysvc][py3.13] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser5/ddtrace_su...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[v1-None][py3.13] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser11/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/asgi 16/18 — ❌ 3 tests failed
❌ test_span_attribute_schema_operation_name[v1][py3.14] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ope5/ddtrace_su...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[v0-None][py3.14] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser11/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[v0-mysvc][py3.14] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser5/ddtrace_su...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/asgi 2/18 — ❌ 1 test failed
❌ test_span_attribute_schema_operation_name[None][py3.9] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ope5/ddtrace_su...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/asgi 3/18 — ❌ 3 tests failed
❌ test_span_attribute_schema_operation_name[v0][py3.9] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ope11/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[None-mysvc][py3.9] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser29/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[v0-mysvc][py3.9] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser23/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/asgi 4/18 — ❌ 4 tests failed
❌ test_span_attribute_schema_operation_name[v0][py3.10] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ope16/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_operation_name[v1][py3.10] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ope8/ddtrace_su...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[v0-None][py3.10] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser11/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/asgi 5/18 — ❌ 4 tests failed
❌ test_span_attribute_schema_operation_name[None][py3.10] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ope11/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[None-None][py3.10] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser23/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[None-mysvc][py3.10] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser17/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/asgi 7/18 — ❌ 2 tests failed
❌ test_span_attribute_schema_operation_name[v0][py3.11] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ope5/ddtrace_su...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[v0-mysvc][py3.11] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser5/ddtrace_su...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/asgi 9/18 — ❌ 3 tests failed
❌ test_span_attribute_schema_service_name[None-None][py3.11] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser5/ddtrace_su...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[None-mysvc][py3.11] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser17/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_span_attribute_schema_service_name[v0-None][py3.11] from test_asgi.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_span_attribute_schema_ser11/ddtrace_s...est.py", line 3, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/cherrypy 3/8 — ❌ 1 test failed
❌ test_operation_name_schema[v0][py3.10] from test_middleware.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_operation_name_schema_v0_2/ddtrace_su...ine 6, in <module>
      from tests.utils import TracerTestCase
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/cherrypy 5/8 — ❌ 5 tests failed
❌ test_operation_name_schema[None][py3.9] from test_middleware.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_operation_name_schema_Non6/ddtrace_su...ine 6, in <module>
      from tests.utils import TracerTestCase
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_operation_name_schema[v0][py3.9] from test_middleware.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_operation_name_schema_v0_5/ddtrace_su...ine 6, in <module>
      from tests.utils import TracerTestCase
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_operation_name_schema[v1][py3.9] from test_middleware.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_operation_name_schema_v1_2/ddtrace_su...ine 6, in <module>
      from tests.utils import TracerTestCase
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
↳ and 2 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/cherrypy 6/8 — ❌ 1 test failed
❌ test_service_name_schema[v0][py3.9] from test_middleware.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_service_name_schema_v0__p5/ddtrace_su...ine 6, in <module>
      from tests.utils import TracerTestCase
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/cherrypy 7/8 — ❌ 2 tests failed
❌ test_operation_name_schema[v1][py3.10] from test_middleware.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_operation_name_schema_v1_5/ddtrace_su...ine 6, in <module>
      from tests.utils import TracerTestCase
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_service_name_schema[v1][py3.10] from test_middleware.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_service_name_schema_v1__p5/ddtrace_su...ine 6, in <module>
      from tests.utils import TracerTestCase
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/cherrypy 8/8 — ❌ 2 tests failed
❌ test_operation_name_schema[None][py3.10] from test_middleware.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_operation_name_schema_Non5/ddtrace_su...ine 6, in <module>
      from tests.utils import TracerTestCase
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
❌ test_service_name_schema[None][py3.10] from test_middleware.py   View in Datadog
(b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_service_name_schema_None_5/ddtrace_su...ine 6, in <module>
      from tests.utils import TracerTestCase
  ModuleNotFoundError: No module named \'tests\'
  ', b'')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/django 2/6 — ❌ 2 tests failed
❌ test_schematized_default_db_service_name[v0-mysvc][py3.9] from test_django.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_default_db_se5/ddtra...n    from tests.contrib.django.utils import setup_django_test_spans
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_default_service_name[v1-None][py3.9] from test_django.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_default_servi5/ddtra...dir/test.py", line 7, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/django 3/6 — ❌ 4 tests failed
❌ test_schematized_default_db_service_name[v1-None][py3.9] from test_django.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_default_db_se5/ddtra...n    from tests.contrib.django.utils import setup_django_test_spans
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_default_service_name[None-None][py3.9] from test_django.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_default_servi11/ddtr...dir/test.py", line 7, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_default_service_name[v0-mysvc][py3.9] from test_django.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_default_servi5/ddtra...dir/test.py", line 7, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/django 4/6 — ❌ 5 tests failed
❌ test_schematized_default_db_service_name[v0-None][py3.9] from test_django.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_default_db_se11/ddtr...n    from tests.contrib.django.utils import setup_django_test_spans
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_default_db_service_name[v1-mysvc][py3.9] from test_django.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_default_db_se5/ddtra...n    from tests.contrib.django.utils import setup_django_test_spans
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_default_service_name[v0-None][py3.9] from test_django.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_default_servi5/ddtra...dir/test.py", line 7, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
↳ and 2 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/dogpile_cache 3/8 — ❌ 3 tests failed
❌ test_schematization[schema_tuples0][py3.9] from test_tracing.py   View in Datadog

assert 1 == 0
❌ test_schematization[schema_tuples4][py3.9] from test_tracing.py   View in Datadog

assert 1 == 0
❌ test_schematization[schema_tuples5][py3.9] from test_tracing.py   View in Datadog

assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/dogpile_cache 4/8 — ❌ 3 tests failed
❌ test_schematization[schema_tuples1][py3.9] from test_tracing.py   View in Datadog

assert 1 == 0
❌ test_schematization[schema_tuples2][py3.9] from test_tracing.py   View in Datadog

assert 1 == 0
❌ test_schematization[schema_tuples3][py3.9] from test_tracing.py   View in Datadog

assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/dogpile_cache 7/8 — ❌ 3 tests failed
❌ test_schematization[schema_tuples0][py3.10] from test_tracing.py   View in Datadog

assert 1 == 0
❌ test_schematization[schema_tuples1][py3.10] from test_tracing.py   View in Datadog

assert 1 == 0
❌ test_schematization[schema_tuples3][py3.10] from test_tracing.py   View in Datadog

assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/falcon 5/8 — ❌ 4 tests failed
❌ test_schematized_operation_name[None][py3.10] from test_schematization.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_operation_nam20/ddtr...e>
      from tests.contrib.falcon.test_suite import FalconTestMixin
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_operation_name[v0][py3.10] from test_schematization.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_operation_nam18/ddtr...e>
      from tests.contrib.falcon.test_suite import FalconTestMixin
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_operation_name[v1][py3.10] from test_schematization.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_operation_nam19/ddtr...e>
      from tests.contrib.falcon.test_suite import FalconTestMixin
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/falcon 6/8 — ❌ 2 tests failed
❌ test_schematized_service_name[v0][py3.10] from test_schematization.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_service_name_18/ddtr...e>
      from tests.contrib.falcon.test_suite import FalconTestMixin
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_service_name[v1][py3.10] from test_schematization.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_service_name_20/ddtr...e>
      from tests.contrib.falcon.test_suite import FalconTestMixin
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/falcon 7/8 — ❌ 5 tests failed
❌ test_schematized_operation_name[None][py3.11] from test_schematization.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_operation_nam18/ddtr...e>
      from tests.contrib.falcon.test_suite import FalconTestMixin
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_operation_name[v0][py3.11] from test_schematization.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_operation_nam19/ddtr...e>
      from tests.contrib.falcon.test_suite import FalconTestMixin
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_operation_name[v1][py3.11] from test_schematization.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_operation_nam20/ddtr...e>
      from tests.contrib.falcon.test_suite import FalconTestMixin
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
↳ and 2 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/fastapi 1/7 — ❌ 6 tests failed
❌ test_schematization[schema_tuples0][py3.9] from test_fastapi.py   View in Datadog

assert 1 == 0
❌ test_schematization[schema_tuples1][py3.9] from test_fastapi.py   View in Datadog

assert 1 == 0
❌ test_schematization[schema_tuples2][py3.9] from test_fastapi.py   View in Datadog

assert 1 == 0
↳ and 3 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/fastapi 6/7 — ❌ 6 tests failed
❌ test_schematization[schema_tuples0][py3.10] from test_fastapi.py   View in Datadog

assert 1 == 0
❌ test_schematization[schema_tuples1][py3.10] from test_fastapi.py   View in Datadog

assert 1 == 0
❌ test_schematization[schema_tuples2][py3.10] from test_fastapi.py   View in Datadog

assert 1 == 0
↳ and 3 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/flask 18/25 — ❌ 4 tests failed
❌ test_schematized_operation_name[v0][py3.14] from test_request.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_operation_nam5/ddtra... in <module>
      from tests.contrib.flask import BaseFlaskTestCase
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_service_name[None-mysvc][py3.14] from test_request.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_service_name_11/ddtr... in <module>
      from tests.contrib.flask import BaseFlaskTestCase
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_service_name[v1-None][py3.14] from test_request.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_service_name_5/ddtra... in <module>
      from tests.contrib.flask import BaseFlaskTestCase
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/flask 20/25 — ❌ 3 tests failed
❌ test_schematized_operation_name[v1][py3.14] from test_request.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_operation_nam11/ddtr... in <module>
      from tests.contrib.flask import BaseFlaskTestCase
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_service_name[None-None][py3.14] from test_request.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_service_name_17/ddtr... in <module>
      from tests.contrib.flask import BaseFlaskTestCase
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
❌ test_schematized_service_name[v0-mysvc][py3.14] from test_request.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_service_name_5/ddtra... in <module>
      from tests.contrib.flask import BaseFlaskTestCase
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/flask 7/25 — ❌ 1 test failed
❌ test_schematized_operation_name[v1][py3.10] from test_request.py   View in Datadog
(b'', b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematized_operation_nam5/ddtra... in <module>
      from tests.contrib.flask import BaseFlaskTestCase
  ModuleNotFoundError: No module named \'tests\'
  ')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/graphql 1/1 — ❌ 3 tests failed
❌ test_span_schematization[None-None][py3.9] from test_graphql.py   View in Datadog

assert 1 == 0
❌ test_span_schematization[my-service-v0][py3.9] from test_graphql.py   View in Datadog

assert 1 == 0
❌ test_span_schematization[my-service-v1][py3.9] from test_graphql.py   View in Datadog

assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/kafka 1/4 — ❌ 2 tests failed
❌ test_service_override_env_var[py3.9] from test_kafka.py   View in Datadog

assert 1 == 0

↳ ❄️ test_tracing_context_is_propagated_when_enabled[py3.9] from test_kafka.py   View in Datadog

DataDog/apm-reliability/dd-trace-py | contrib/kafka 2/4 — ❌ 7 tests failed
❌ test_does_not_trace_empty_poll_when_disabled[py3.9] from test_kafka.py   View in Datadog
Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/popen-gw2/test_does_not_trace_empty_poll6/ddtrace_subprocess_dir/test.py", line 10, in <module>
      from tests.contrib.kafka.conftest import group_id
  ModuleNotFoundError: No module named 'tests'
  
assert 1 == 0
❌ test_schematized_span_service_and_operation[None-None][py3.9] from test_kafka.py   View in Datadog

assert 1 == 0
❌ test_schematized_span_service_and_operation[None-mysvc][py3.9] from test_kafka.py   View in Datadog

assert 1 == 0
↳ and 4 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/mariadb 1/7 — ❌ 6 tests failed
❌ test_schematized_service_and_operation[service_schema0][py3.9] from test_mariadb.py   View in Datadog
('', '============================= test session starts ==============================
  platform linux -- Python 3.9.2...lures !!!!!!!!!!!!!!!!!!!!!!!!!!!
  ============================== 1 failed in 0.08s ===============================
  ')
assert 1 == 0
❌ test_schematized_service_and_operation[service_schema1][py3.9] from test_mariadb.py   View in Datadog
('', '============================= test session starts ==============================
  platform linux -- Python 3.9.2...lures !!!!!!!!!!!!!!!!!!!!!!!!!!!
  ============================== 1 failed in 0.08s ===============================
  ')
assert 1 == 0
❌ test_schematized_service_and_operation[service_schema2][py3.9] from test_mariadb.py   View in Datadog
('', '============================= test session starts ==============================
  platform linux -- Python 3.9.2...lures !!!!!!!!!!!!!!!!!!!!!!!!!!!
  ============================== 1 failed in 0.08s ===============================
  ')
assert 1 == 0
↳ and 3 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/mariadb 4/7 — ❌ 4 tests failed
❌ test_schematized_service_and_operation[service_schema0][py3.10] from test_mariadb.py   View in Datadog
('', '============================= test session starts ==============================
  platform linux -- Python 3.10....lures !!!!!!!!!!!!!!!!!!!!!!!!!!!
  ============================== 1 failed in 0.08s ===============================
  ')
assert 1 == 0
❌ test_schematized_service_and_operation[service_schema1][py3.10] from test_mariadb.py   View in Datadog
('', '============================= test session starts ==============================
  platform linux -- Python 3.10....lures !!!!!!!!!!!!!!!!!!!!!!!!!!!
  ============================== 1 failed in 0.08s ===============================
  ')
assert 1 == 0
❌ test_schematized_service_and_operation[service_schema2][py3.10] from test_mariadb.py   View in Datadog
('', '============================= test session starts ==============================
  platform linux -- Python 3.10....lures !!!!!!!!!!!!!!!!!!!!!!!!!!!
  ============================== 1 failed in 0.08s ===============================
  ')
assert 1 == 0
↳ and 1 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/mariadb 5/7 — ❌ 2 tests failed
❌ test_schematized_service_and_operation[service_schema3][py3.10] from test_mariadb.py   View in Datadog
('', '============================= test session starts ==============================
  platform linux -- Python 3.10....lures !!!!!!!!!!!!!!!!!!!!!!!!!!!
  ============================== 1 failed in 0.08s ===============================
  ')
assert 1 == 0
❌ test_schematized_service_and_operation[service_schema4][py3.10] from test_mariadb.py   View in Datadog
('', '============================= test session starts ==============================
  platform linux -- Python 3.10....lures !!!!!!!!!!!!!!!!!!!!!!!!!!!
  ============================== 1 failed in 0.08s ===============================
  ')
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/psycopg 2/10 — ❌ 1 test failed
❌ test_connect_traced_via_env[py3.9] from test_psycopg_snapshot.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_connect_traced_via_env_py5/ddtrace_sub...7, in <module>
      from tests.contrib.config import POSTGRES_CONFIG
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | contrib/starlette 2/8 — ❌ 6 tests failed
❌ test_incorrect_patching[py3.9] from test_starlette.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_incorrect_patching_py3_9_5/ddtrace_sub...10, in <module>
      from tests.contrib.starlette.app import get_app
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
❌ test_schematization[service_schema0][py3.9] from test_starlette.py   View in Datadog
('Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematization_service_sc29/ddtrace_su...from tests.contrib.starlette.test_starlette import snapshot_app
  ModuleNotFoundError: No module named \'tests\'
  ', '')
assert 1 == 0
❌ test_schematization[service_schema2][py3.9] from test_starlette.py   View in Datadog
('Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematization_service_sc17/ddtrace_su...from tests.contrib.starlette.test_starlette import snapshot_app
  ModuleNotFoundError: No module named \'tests\'
  ', '')
assert 1 == 0
↳ and 3 more — View all
DataDog/apm-reliability/dd-trace-py | contrib/wsgi 1/1 — ❌ 3 tests failed
❌ test_schematization[None-v0][py3.9] from test_wsgi.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematization_None_v0__p5/ddtrace_sub..._dir/test.py", line 4, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
❌ test_schematization[mysvc-v0][py3.9] from test_wsgi.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematization_mysvc_v0__5/ddtrace_sub..._dir/test.py", line 4, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
❌ test_schematization[mysvc-v1][py3.9] from test_wsgi.py   View in Datadog
b'Traceback (most recent call last):
    File "/tmp/pytest-of-bits/pytest-0/test_schematization_mysvc_v1__5/ddtrace_sub..._dir/test.py", line 4, in <module>
      from tests.conftest import *
  ModuleNotFoundError: No module named \'tests\'
  '
assert 1 == 0
DataDog/apm-reliability/dd-trace-py | core/tracer 12/19 — ❌ 2 tests failed
❌ GitMetadataTestCase::test_gitmetadata_disabled[py3.12] from test_gitmetadata.py   View in Datadog
Subprocess Test "python -m unittest tests.tracer.test_gitmetadata.GitMetadataTestCase.test_gitmetadata_disabled" Failed (exit code 1):
E
======================================================================
ERROR: tests (unittest.loader._FailedTest.tests)
----------------------------------------------------------------------
ImportError: Failed to import test module: tests
Traceback (most recent call last):
  File "/home/bits/.pyenv/versions/3.12.13/lib/python3.12/unittest/loader.py", line 137, in loadTestsFromName
    module = __import__(module_name)
             ^^^^^^^^^^^^^^^^^^^^^^^
...
❌ GitMetadataTestCase::test_gitmetadata_from_ENV[py3.12] from test_gitmetadata.py   View in Datadog
Subprocess Test "python -m unittest tests.tracer.test_gitmetadata.GitMetadataTestCase.test_gitmetadata_from_ENV" Failed (exit code 1):
E
======================================================================
ERROR: tests (unittest.loader._FailedTest.tests)
----------------------------------------------------------------------
ImportError: Failed to import test module: tests
Traceback (most recent call last):
  File "/home/bits/.pyenv/versions/3.12.13/lib/python3.12/unittest/loader.py", line 137, in loadTestsFromName
    module = __import__(module_name)
             ^^^^^^^^^^^^^^^^^^^^^^^
...

ℹ️ Info

No other issues found (see more)

❄️ No new flaky tests detected

🔄 Datadog retried 214 tests - 2 passed on retry View in Datadog

🚧 5 tests that failed were ignored due to quarantine View in Datadog

Useful? React with 👍 / 👎

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

@pr-commenter

pr-commenter Bot commented Aug 15, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-08-22 17:49:45

Comparing candidate commit 676f278 in PR branch codex/migrate-tracer-hatch with baseline commit 3bb9ecd in branch main.

📊 Benchmarking dashboard

Found 0 performance improvements and 11 performance regressions! Performance is the same for 611 metrics, 10 unstable metrics.

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:httppropagationextract-wsgi_valid_headers_all

  • 🟥 execution_time [+423.657ns; +468.021ns] or [+7.862%; +8.685%]

scenario:httppropagationinject-ids_only

  • 🟥 execution_time [+1.837µs; +2.014µs] or [+9.672%; +10.608%]

scenario:iastaspects-add_aspect

  • 🟥 execution_time [+18.702µs; +21.649µs] or [+19.028%; +22.026%]

scenario:iastaspects-join_aspect

  • 🟥 execution_time [+52.538µs; +56.819µs] or [+25.693%; +27.786%]

scenario:iastaspects-ljust_noaspect

  • 🟥 execution_time [+52.565µs; +57.382µs] or [+17.928%; +19.571%]

scenario:iastaspects-title_aspect

  • 🟥 execution_time [+69.217µs; +75.927µs] or [+25.977%; +28.496%]

scenario:iastaspectsospath-ospathbasename_aspect

  • 🟥 execution_time [+139.900µs; +147.061µs] or [+34.090%; +35.835%]

scenario:iastaspectssplit-rsplit_aspect

  • 🟥 execution_time [+22.408µs; +28.503µs] or [+16.165%; +20.562%]

scenario:span-start

  • 🟥 execution_time [+1.584ms; +1.751ms] or [+10.592%; +11.707%]

scenario:telemetryaddmetric-1-count-metric-1-times

  • 🟥 execution_time [+387.432ns; +442.364ns] or [+14.248%; +16.269%]

scenario:tracer-small

  • 🟥 execution_time [+29.132µs; +30.969µs] or [+8.684%; +9.231%]

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.030ns; +766.803ns] or [-6.451%; +6.909%]

scenario:coreapiscenario-core_dispatch_1_listener

  • unstable execution_time [-33.570ns; +32.895ns] or [-5.503%; +5.392%]

scenario:coreapiscenario-core_dispatch_50_listeners

  • unstable execution_time [-1625.083ns; +1697.587ns] or [-9.520%; +9.945%]

scenario:coreapiscenario-core_dispatch_exception_listeners

  • unstable execution_time [-1159.055ns; +1314.653ns] or [-8.997%; +10.205%]

scenario:coreapiscenario-core_dispatch_listeners

  • unstable execution_time [-326.146ns; +327.003ns] or [-8.889%; +8.913%]

scenario:coreapiscenario-core_dispatch_no_args_listeners

  • unstable execution_time [-247.945ns; +258.870ns] or [-8.526%; +8.902%]

scenario:coreapiscenario-core_dispatch_with_results_1_listener

  • unstable execution_time [-59.662ns; +90.950ns] or [-5.261%; +8.021%]

scenario:coreapiscenario-core_dispatch_with_results_50_listeners

  • unstable execution_time [-3963.666ns; +3987.839ns] or [-9.797%; +9.857%]

scenario:coreapiscenario-core_dispatch_with_results_listeners

  • unstable execution_time [-749.136ns; +782.145ns] or [-9.353%; +9.765%]

scenario:packagesupdateimporteddependencies-import_many_stdlib_cached

  • unstable execution_time [-56.003µs; +63.890µs] or [-8.755%; +9.988%]

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Aug 15, 2026

Copy link
Copy Markdown

Codeowners resolved as

This comment was omitted because it was over 65,536 characters.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Aug 15, 2026

Copy link
Copy Markdown

Circular import analysis

⚠️ Existing circular imports

There are 3 circular imports that already exist on the base branch and have not been changed by this PR.

ddtrace.errortracking._handled_exceptions.bytecode_injector -> ddtrace.errortracking._handled_exceptions.callbacks -> ddtrace.errortracking._handled_exceptions.collector -> ddtrace.errortracking._handled_exceptions.bytecode_reporting -> ddtrace.errortracking._handled_exceptions.bytecode_injector
ddtrace.llmobs -> ddtrace.llmobs._evaluators -> ddtrace.llmobs._evaluators.format -> ddtrace.llmobs._experiment -> ddtrace.llmobs
ddtrace.appsec._asm_request_context -> ddtrace.appsec._iast._iast_request_context_base -> ddtrace.appsec._iast._iast_env -> ddtrace.appsec._iast.reporter -> ddtrace.appsec._exploit_prevention.stack_traces -> ddtrace.appsec._asm_request_context

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Aug 15, 2026

Copy link
Copy Markdown

Dependency direction analysis

⚠️ Existing dependency direction violations

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

Show existing violations (showing 5 of 250 highest severity)
ddtrace.internal.tracemethods -×-> ddtrace.trace  (internal-core -> product:tracing, score=135)
ddtrace.appsec._listeners -×-> ddtrace.trace  (product:appsec -> product:tracing, score=133)
ddtrace.internal.ci_visibility.filters -×-> ddtrace.trace  (product:ci_visibility -> product:tracing, score=133)
ddtrace.profiling.collector.stack -×-> ddtrace.trace  (product:profiling -> product:tracing, score=133)
ddtrace.debugging._signal.model -×-> ddtrace.trace  (product:debugging -> product:tracing, score=133)

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

@mabdinur mabdinur changed the title ci: migrate tracer tests to Hatch and uv ci: run tests with Hatch and uv Aug 15, 2026
@mabdinur mabdinur changed the title ci: run tests with Hatch and uv ci: run test environments with uv Aug 15, 2026
@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch from a942418 to 595d329 Compare August 20, 2026 14:00
@mabdinur mabdinur changed the title ci: run test environments with uv ci: replace Riot test environments with uv Aug 20, 2026
@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch 4 times, most recently from 4b1a6c1 to 34dca11 Compare August 20, 2026 18:03
@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch from 3bdacce to 1705285 Compare August 20, 2026 19:50
@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch from 8f384ec to 073b373 Compare August 20, 2026 20:13
@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch from bf2a3d0 to f7ce48a Compare August 20, 2026 20:49
@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch 3 times, most recently from 31236ba to 510f6d5 Compare August 21, 2026 03:23
@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch from 510f6d5 to 7c96f65 Compare August 21, 2026 03:47
@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch 10 times, most recently from 58bd37c to 703cace Compare August 21, 2026 18:36
@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch from 703cace to ba5620e Compare August 21, 2026 18:54
@taegyunkim

Copy link
Copy Markdown
Contributor

🚀 ship-it

@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch 2 times, most recently from 6d56f7c to ba5620e Compare August 21, 2026 20:44
@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch 3 times, most recently from d108989 to 910cda0 Compare August 22, 2026 03:35
@mabdinur
mabdinur force-pushed the codex/migrate-tracer-hatch branch from 611a48c to bfe5fc1 Compare August 22, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI Generated Largely based on code generated by an AI or LLM. This label is the same across all dd-trace-* repos 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.

2 participants