Skip to content

feat(ci): add 3.14/3.15 base images and scenario exclusions (PROF-15511) - #165

Draft
vlad-scherbich wants to merge 9 commits into
mainfrom
vlad/gate-infra
Draft

feat(ci): add 3.14/3.15 base images and scenario exclusions (PROF-15511)#165
vlad-scherbich wants to merge 9 commits into
mainfrom
vlad/gate-infra

Conversation

@vlad-scherbich

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

Copy link
Copy Markdown
Contributor

Prev: #174 | Next: #166 (parallel after #165: #167, #168)

Motivation

dd-trace-py needs a 3.14 → 3.15 migration gate: paired prof-correctness scenarios that compare baseline (3.14) vs candidate (3.15) profiler output on the same workloads. Monolithic draft #161 mixed infra and scenarios; this PR lands infra only so scenario work can stack in small, reviewable follow-ups.

Summary

Foundation for the Python downstream gate — no runnable scenario directories yet.

  • RE2-safe scenario exclusionlist-scenarios -exclude flag + test.yml wiring; ci.yml sets test_scenarios_exclude: '_3\.15$|^python_downstream_gate$' so Python CI no longer silently skips scenarios (previous unsupported lookahead regex)
  • Base imagesbase_images/Dockerfile.python-3.14 and python-3.15 for gate scenarios
  • Gate indexscenarios/python_downstream_gate/README.md documents the 22-scenario default regexp and local run instructions (updated as scenarios land)
  • Downstream docs — root README section on dd-trace-py → prof-correctness triggers and test_scenarios input
  • STS policy.github/chainguard/dd-trace-py.github.trigger-ci.sts.yaml for GitHub-side downstream triggers

Merge order: land first. Scenario PRs (#166#172) stack on or parallel to this branch.

Test plan

  • go test ./cmd/list-scenarios/...
  • go test -run TestSchemaValidation
  • CI green on prof-correctness

Fixes ruff format --check CI failure (extra blank line in code block).
Pin CI ruff to match pyproject.toml expectations and add a minimal
pre-commit config (ruff-format + ruff --fix) so local runs match CI.
Mirror dd-trace-py's scripts/lint workflow without git hooks — works with Datadog global core.hooksPath. Matches the pinned CI ruff job.
@vlad-scherbich
vlad-scherbich changed the base branch from main to vlad/chore-ruff-pre-commit July 27, 2026 21:41
ruff check --fix can rewrite imports; formatting last avoids leaving
files unformatted after a single scripts/format or pre-commit run.
- Add requirements-dev.txt as the only ruff version pin
- CI and scripts reference it; local pre-commit hook runs scripts/lint
- Document Python lint setup in README
…am gate

Add RE2-safe list-scenarios -exclude and ci.yml test_scenarios_exclude so
wheel-only Python scenarios are not silently skipped. Ship Python 3.14/3.15
base images, dd-trace-py STS trigger policy, and a minimal migration gate
index README; scenario workloads land in follow-up PRs.
@vlad-scherbich vlad-scherbich changed the title feat(ci): add 3.14/3.15 base images and scenario exclude for downstre… feat(ci): add 3.14/3.15 base images and scenario exclusions (PROF-15511) Jul 27, 2026
Absolute alloc_objects counts for the a();slice stack are unstable on CI
runners (16484 vs expected 100). Keep inuse_* and alloc_space ratio checks.
Base automatically changed from vlad/chore-ruff-pre-commit to main July 28, 2026 07:11
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