Skip to content

DO NOT MERGE tart experiment#18196

Draft
chagui wants to merge 11 commits into
mainfrom
chagui/tart-tweaks
Draft

DO NOT MERGE tart experiment#18196
chagui wants to merge 11 commits into
mainfrom
chagui/tart-tweaks

Conversation

@chagui
Copy link
Copy Markdown
Collaborator

@chagui chagui commented May 20, 2026

🚨 DO NOT MERGE 🚨

alee1246 and others added 10 commits May 19, 2026 18:20
Split "build macos" into separate "build macos amd64" and "build macos arm64"
jobs so the arm64 job can use the macos:sonoma-tart runner tag with a tart VM
image while amd64 continues on the dedicated sonoma runners.

- Extract .build_macos_base template with shared macOS build logic
- Set MACOSX_DEPLOYMENT_TARGET=14.7 for consistent binary targeting
- Add setopt shwordsplit for zsh compatibility on Tart VMs
- Move "os tests macos" to tart runners testing arm64 wheels
- Update "ddtrace package" needs to reference both new job names

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The runner-wrapped script section swallows the multi-line script's
stdout/stderr, hiding the actual failure. Disable the feature flag on
this job so output streams inline.
- Split `build macos arm64` into two parallel jobs via the same
  PYTHON_VERSIONS matrix structure used by amd64 (3.9-3.11 / 3.12-3.14).
- Disable FF_SCRIPT_SECTIONS only on the arm64 job — the runner-managed
  script-section wrapper conflicts with zsh `setopt shwordsplit`.
- Document MACOSX_DEPLOYMENT_TARGET: the tart VM image may run a
  different minor macOS version than the broader fleet.
Tart VMs are ephemeral, so local-disk sccache gets wiped between jobs
and every build recompiles C/C++/Rust from scratch. Point sccache at the
shared dd-sccache-storage-us1-ddbuild-io bucket (the one the Tart IAM
role has access to) so the arm64 job gets cross-job cache reuse.
Split .build_macos_base's shared script across the two arch jobs so each
can carry the logic it actually needs:

- build macos amd64: keeps the straightforward build loop.
- build macos arm64: adds `setopt shwordsplit` for zsh on the tart VM and
  pre-fetches IAM credentials from $AWS_EC2_METADATA_SERVICE_ENDPOINT,
  exporting them as static AWS_* env vars. sccache's reqsign credential
  loader hardcodes the IMDS IP (169.254.169.254) and ignores the
  endpoint env var, so it can't reach the tart iam-proxy on its own.

The base template now only carries shared variables, not a script.
The runner's script-section wrapper breaks the multi-line script on the
zsh-default tart VM (same pattern that affected build macos arm64).
Disable the feature flag on this job too. Also drop the speculative
setopt comment from build macos arm64 — the root cause isn't specific
to setopt.
…IONS

Hoist the shared macOS wheel build loop into .build_macos_base.script
so both "build macos amd64" and "build macos arm64" inherit one
canonical script. arm64's zsh-specific setopt + IMDS-creds setup moves
into before_script so the shared build loop runs in the runner's
native shell. Adds inline comments noting that tart VMs default to zsh
and that FF_SCRIPT_SECTIONS is disabled because GitLab's collapsible
log-section wrapper is incompatible with zsh.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Both "build macos amd64" and "build macos arm64" use the same
PYTHON_VERSIONS matrix now, so move it into the shared base template
and drop the stale "amd64 runners are slower" comment.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@cit-pr-commenter-54b7da
Copy link
Copy Markdown

Codeowners resolved as

.gitlab/multi-os-tests.yml                                              @DataDog/python-guild @DataDog/apm-core-python

@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented May 20, 2026

Benchmarks

Benchmark execution time: 2026-05-20 20:23:20

Comparing candidate commit 288769a in PR branch chagui/tart-tweaks with baseline commit 8a9b508 in branch main.

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

scenario:iastaspects-lstrip_noaspect

  • 🟥 execution_time [+17.672µs; +26.342µs] or [+9.978%; +14.873%]

scenario:iastaspects-stringio_noaspect

  • 🟥 execution_time [+29.632µs; +34.701µs] or [+8.538%; +9.998%]

scenario:iastaspectsospath-ospathbasename_aspect

  • 🟥 execution_time [+85.961µs; +99.110µs] or [+20.557%; +23.702%]

scenario:span-start

  • 🟥 execution_time [+1.373ms; +1.537ms] or [+8.850%; +9.908%]

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

  • 🟥 execution_time [+149.768ns; +185.162ns] or [+7.110%; +8.790%]

@chagui chagui changed the title ci(build): use tart runners for macOS arm64 builds DO NOT MERGE tart experiment May 21, 2026
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.

3 participants