Skip to content

feat(python): add cross-cutting gate scenarios for 3.14/3.15 (PROF-15511) - #172

Draft
vlad-scherbich wants to merge 4 commits into
vlad/python-stack-advanced-gatefrom
vlad/python-cross-cutting-gate
Draft

feat(python): add cross-cutting gate scenarios for 3.14/3.15 (PROF-15511)#172
vlad-scherbich wants to merge 4 commits into
vlad/python-stack-advanced-gatefrom
vlad/python-cross-cutting-gate

Conversation

@vlad-scherbich

@vlad-scherbich vlad-scherbich commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Prev: #171

Motivation

Final batch of the default migration gate — integration-shaped workloads that stress the profiler under GIL contention, alternative event loops (uvloop), and greenlet-based concurrency (gevent). Completes the 22-scenario default downstream regexp.

Summary

Adds 6 scenario directories (3 families × 2 versions):

Family Integration shape
python_gil_contention Multi-threaded GIL contention
python_uvloop uvloop event loop
python_gevent gevent greenlets

All paired 3.14/3.15; 3.15 dirs wheel-only.

Gate grows 16 → 22 scenarios. Feature-specific pairs (mem_domain, live_heap) remain in parallel PRs #167 / #168.

After this stack lands: wire dd-trace-py downstream job to pass the gate regexp (not bare python.*), then tighten to blocking once CI is stable.

Test plan

  • go test -run TestSchemaValidation
  • ruff check on scenario sources
  • Downstream gate with DDTRACE_INSTALL_URL

@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-stack-advanced-gate branch from ac2451e to 7c1ccac Compare July 27, 2026 19:20
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from b42f8fa to b771de9 Compare July 27, 2026 19:20
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-stack-advanced-gate branch from 7c1ccac to eccfe2a Compare July 27, 2026 19:33
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from b771de9 to d05980c Compare July 27, 2026 19:33
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-stack-advanced-gate branch from eccfe2a to 2bd7cb6 Compare July 27, 2026 19:38
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from d05980c to 67d612c Compare July 27, 2026 19:38
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-stack-advanced-gate branch from 2bd7cb6 to ecce3c0 Compare July 27, 2026 21:41
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from 67d612c to 008aa5c Compare July 27, 2026 21:41
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-stack-advanced-gate branch from ecce3c0 to e6cda80 Compare July 27, 2026 21:45
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from 008aa5c to 2cadb76 Compare July 27, 2026 21:45
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-stack-advanced-gate branch from e6cda80 to 487a0c5 Compare July 27, 2026 22:01
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from 2cadb76 to 7294ab9 Compare July 27, 2026 22:01
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-stack-advanced-gate branch from 487a0c5 to 8278b7d Compare July 27, 2026 22:05
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch 2 times, most recently from 37aaec6 to f4a4474 Compare July 27, 2026 22:06
@vlad-scherbich vlad-scherbich changed the title feat(python): add cross-cutting gate scenarios for 3.14/3.15 feat(python): add cross-cutting gate scenarios for 3.14/3.15 (PROF-15511) Jul 27, 2026
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-stack-advanced-gate branch from 8278b7d to 0eef449 Compare July 27, 2026 22:29
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from f4a4474 to f7aabb4 Compare July 27, 2026 22:29
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-stack-advanced-gate branch from 0eef449 to 4762625 Compare July 28, 2026 02:02
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from f7aabb4 to e4971af Compare July 28, 2026 02:02
Add paired gil_contention, uvloop, and gevent scenarios for integration
shapes on the migration gate path. Gate grows from 20 to 26 scenarios.
Python 3.14 uses Target.method stack frames and numeric thread IDs in
alloc profiles; gevent Hub frames are Hub.run;loop.run. Simplify gevent
assertions to percent-based checks, fix ruff format on safe_point_bias
README, and widen node_heap space margin for CI variance.
Absolute object counts are unstable across Node CI runners; switch to
percent-based checks with wider margins while keeping space assertions.
Drop node_heap objects checks (dominated by startup noise on CI); keep
space ratio assertions. Widen node_code_hotspots busyLoop margin to 3%.
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-stack-advanced-gate branch from 4762625 to 70fe079 Compare July 28, 2026 02:38
@vlad-scherbich
vlad-scherbich force-pushed the vlad/python-cross-cutting-gate branch from e4971af to 44ae38e Compare July 28, 2026 02:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant