ci: use different git repo id for releases [backport 4.7]#17969
ci: use different git repo id for releases [backport 4.7]#17969dd-octo-sts[bot] wants to merge 1 commit into4.7from
Conversation
## Description When a flaky test is detected on a release branch (e.g. `4.8`, `4.10`), it is quarantined across **all** branches — including `main`. This causes problems in two directions: 1. **Release branches don't receive flaky-test-fix backports from `main`**, so a test that gets fixed and unquarantined on `main` may remain quarantined (or vice versa) on a release branch indefinitely. 2. **New flakes introduced during release activity** (cherry-picks, backports, release-specific patches) pollute the main pool and can suppress test failures on `main` and feature branches. This change uses a separate [Datadog Test Optimization](https://docs.datadoghq.com/tests/) Flaky Test Management pool for release branches by overriding `DD_GIT_REPOSITORY_URL` to `https://github.com/DataDog/dd-trace-py-release.git` in GitLab CI pipelines that run on release branches. The Datadog backend uses `git.repository_url` (surfaced in the UI as `@git.repository.id_v2`) as the partition key for Flaky Test Management. By giving release-branch pipelines a distinct URL, their quarantine list is fully independent from the one used by `main`, merge queues, and feature branches. ### How it works - **Release branches** (`X.Y` / `X.YZ` pattern, e.g. `4.8`, `4.10`): `DD_GIT_REPOSITORY_URL` is set to `https://github.com/DataDog/dd-trace-py-release.git` vian`workflow:rules:variables`, which overrides the global variable for the entire pipeline. - **All other pipelines** (`main`, merge queues, feature branches): continue using `https://github.com/DataDog/dd-trace-py.git` unchanged. ## Testing The change is CI-only. It can be validated by triggering a pipeline on a release branch (e.g. `4.8`) and confirming that test results appear under `@git.repository.id_v2:github.com/datadog/dd-trace-py-release` in the Datadog Test Optimization UI, while a pipeline on `main` still shows `@git.repository.id_v2:github.com/datadog/dd-trace-py`. ## Risks - **Quarantine list starts empty for release branches.** Any tests already quarantined on release branches under the old pool ID will not carry over — they will re-run and be re-detected as flaky. This is a one-time, bounded cost. - No application code is changed; no test behaviour is affected outside of the flaky-test quarantine logic. ## Additional Notes `workflow:rules:variables` in GitLab CI takes precedence over the global `variables:` block, so the override is not silently clobbered. `DD_GIT_REPOSITORY_URL` is not redefined in any included job template or project-level CI/CD variable, so the behaviour is deterministic. Co-authored-by: federico.mon <federico.mon@datadoghq.com> (cherry picked from commit e3bdccd) Co-authored-by: Federico Mon <federico.mon@datadoghq.com>
Codeowners resolved as |
Performance SLOsComparing candidate unknown (unknown) with baseline 4.7 (87ee109) ❌ Test Failures (1 suite)❌ codeprovenancefork - 1/2❌ fork-10Time: ❌ 2.320s (SLO: <2.300s +0.9%) vs baseline: +2.3% Memory: ✅ 17.400MB (SLO: <20.000MB 📉 -13.0%) vs baseline: +5.0% 📈 Performance Regressions (2 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 106.244µs (SLO: <130.000µs 📉 -18.3%) vs baseline: +3.9% Memory: ✅ 43.801MB (SLO: <46.000MB -4.8%) vs baseline: +4.9% ✅ add_inplace_aspectTime: ✅ 102.015µs (SLO: <130.000µs 📉 -21.5%) vs baseline: ~same Memory: ✅ 43.835MB (SLO: <46.000MB -4.7%) vs baseline: +4.9% ✅ add_inplace_noaspectTime: ✅ 27.961µs (SLO: <40.000µs 📉 -30.1%) vs baseline: -1.4% Memory: ✅ 43.916MB (SLO: <46.000MB -4.5%) vs baseline: +5.3% ✅ add_noaspectTime: ✅ 48.844µs (SLO: <70.000µs 📉 -30.2%) vs baseline: +0.8% Memory: ✅ 43.862MB (SLO: <46.000MB -4.6%) vs baseline: +4.7% ✅ bytearray_aspectTime: ✅ 253.415µs (SLO: <400.000µs 📉 -36.6%) vs baseline: +1.2% Memory: ✅ 43.866MB (SLO: <46.000MB -4.6%) vs baseline: +5.1% ✅ bytearray_extend_aspectTime: ✅ 640.731µs (SLO: <800.000µs 📉 -19.9%) vs baseline: -2.4% Memory: ✅ 43.884MB (SLO: <46.000MB -4.6%) vs baseline: +4.8% ✅ bytearray_extend_noaspectTime: ✅ 268.375µs (SLO: <400.000µs 📉 -32.9%) vs baseline: -0.9% Memory: ✅ 43.780MB (SLO: <46.000MB -4.8%) vs baseline: +4.7% ✅ bytearray_noaspectTime: ✅ 137.690µs (SLO: <300.000µs 📉 -54.1%) vs baseline: -1.7% Memory: ✅ 43.701MB (SLO: <46.000MB -5.0%) vs baseline: +4.7% ✅ bytes_aspectTime: ✅ 219.064µs (SLO: <300.000µs 📉 -27.0%) vs baseline: -1.1% Memory: ✅ 43.928MB (SLO: <46.000MB -4.5%) vs baseline: +5.1% ✅ bytes_noaspectTime: ✅ 136.872µs (SLO: <200.000µs 📉 -31.6%) vs baseline: +1.8% Memory: ✅ 43.800MB (SLO: <46.000MB -4.8%) vs baseline: +4.6% ✅ bytesio_aspectTime: ✅ 3.664ms (SLO: <5.000ms 📉 -26.7%) vs baseline: +0.7% Memory: ✅ 43.803MB (SLO: <46.000MB -4.8%) vs baseline: +4.6% ✅ bytesio_noaspectTime: ✅ 313.008µs (SLO: <420.000µs 📉 -25.5%) vs baseline: +0.5% Memory: ✅ 43.877MB (SLO: <46.000MB -4.6%) vs baseline: +4.8% ✅ capitalize_aspectTime: ✅ 88.482µs (SLO: <300.000µs 📉 -70.5%) vs baseline: ~same Memory: ✅ 43.850MB (SLO: <46.000MB -4.7%) vs baseline: +4.6% ✅ capitalize_noaspectTime: ✅ 248.221µs (SLO: <300.000µs 📉 -17.3%) vs baseline: ~same Memory: ✅ 43.852MB (SLO: <46.000MB -4.7%) vs baseline: +4.6% ✅ casefold_aspectTime: ✅ 89.156µs (SLO: <500.000µs 📉 -82.2%) vs baseline: +0.8% Memory: ✅ 43.896MB (SLO: <46.000MB -4.6%) vs baseline: +5.2% ✅ casefold_noaspectTime: ✅ 296.791µs (SLO: <500.000µs 📉 -40.6%) vs baseline: -2.1% Memory: ✅ 43.915MB (SLO: <46.000MB -4.5%) vs baseline: +5.5% ✅ decode_aspectTime: ✅ 86.145µs (SLO: <100.000µs 📉 -13.9%) vs baseline: ~same Memory: ✅ 43.781MB (SLO: <46.000MB -4.8%) vs baseline: +4.6% ✅ decode_noaspectTime: ✅ 153.931µs (SLO: <210.000µs 📉 -26.7%) vs baseline: +1.4% Memory: ✅ 44.018MB (SLO: <46.000MB -4.3%) vs baseline: +5.3% ✅ encode_aspectTime: ✅ 84.240µs (SLO: <200.000µs 📉 -57.9%) vs baseline: +0.1% Memory: ✅ 43.849MB (SLO: <46.000MB -4.7%) vs baseline: +5.1% ✅ encode_noaspectTime: ✅ 143.287µs (SLO: <200.000µs 📉 -28.4%) vs baseline: +1.3% Memory: ✅ 43.906MB (SLO: <46.000MB -4.6%) vs baseline: +4.7% ✅ format_aspectTime: ✅ 14.535ms (SLO: <19.200ms 📉 -24.3%) vs baseline: -0.4% Memory: ✅ 43.976MB (SLO: <46.000MB -4.4%) vs baseline: +4.5% ✅ format_map_aspectTime: ✅ 16.214ms (SLO: <21.500ms 📉 -24.6%) vs baseline: -0.3% Memory: ✅ 44.025MB (SLO: <46.000MB -4.3%) vs baseline: +4.9% ✅ format_map_noaspectTime: ✅ 374.910µs (SLO: <500.000µs 📉 -25.0%) vs baseline: -0.5% Memory: ✅ 43.841MB (SLO: <46.000MB -4.7%) vs baseline: +5.1% ✅ format_noaspectTime: ✅ 306.022µs (SLO: <500.000µs 📉 -38.8%) vs baseline: +0.2% Memory: ✅ 43.968MB (SLO: <46.000MB -4.4%) vs baseline: +5.2% ✅ index_aspectTime: ✅ 129.059µs (SLO: <300.000µs 📉 -57.0%) vs baseline: +3.6% Memory: ✅ 43.817MB (SLO: <46.000MB -4.7%) vs baseline: +5.0% ✅ index_noaspectTime: ✅ 40.418µs (SLO: <300.000µs 📉 -86.5%) vs baseline: +0.8% Memory: ✅ 43.777MB (SLO: <46.000MB -4.8%) vs baseline: +4.7% ✅ join_aspectTime: ✅ 210.161µs (SLO: <300.000µs 📉 -29.9%) vs baseline: -1.1% Memory: ✅ 43.828MB (SLO: <46.000MB -4.7%) vs baseline: +5.1% ✅ join_noaspectTime: ✅ 142.905µs (SLO: <300.000µs 📉 -52.4%) vs baseline: ~same Memory: ✅ 43.902MB (SLO: <46.000MB -4.6%) vs baseline: +4.8% ✅ ljust_aspectTime: ✅ 569.684µs (SLO: <700.000µs 📉 -18.6%) vs baseline: 📈 +14.9% Memory: ✅ 43.883MB (SLO: <46.000MB -4.6%) vs baseline: +4.8% ✅ ljust_noaspectTime: ✅ 259.166µs (SLO: <300.000µs 📉 -13.6%) vs baseline: +1.0% Memory: ✅ 43.857MB (SLO: <46.000MB -4.7%) vs baseline: +4.7% ✅ lower_aspectTime: ✅ 294.146µs (SLO: <500.000µs 📉 -41.2%) vs baseline: -0.7% Memory: ✅ 43.864MB (SLO: <46.000MB -4.6%) vs baseline: +4.7% ✅ lower_noaspectTime: ✅ 231.855µs (SLO: <300.000µs 📉 -22.7%) vs baseline: +0.4% Memory: ✅ 43.921MB (SLO: <46.000MB -4.5%) vs baseline: +5.4% ✅ lstrip_aspectTime: ✅ 0.272ms (SLO: <3.000ms 📉 -90.9%) vs baseline: +1.4% Memory: ✅ 43.760MB (SLO: <46.000MB -4.9%) vs baseline: +4.6% ✅ lstrip_noaspectTime: ✅ 0.176ms (SLO: <3.000ms 📉 -94.1%) vs baseline: +0.1% Memory: ✅ 43.674MB (SLO: <46.000MB -5.1%) vs baseline: +4.8% ✅ modulo_aspectTime: ✅ 14.227ms (SLO: <18.750ms 📉 -24.1%) vs baseline: ~same Memory: ✅ 43.933MB (SLO: <46.000MB -4.5%) vs baseline: +4.4% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 14.717ms (SLO: <19.350ms 📉 -23.9%) vs baseline: -0.2% Memory: ✅ 43.860MB (SLO: <46.000MB -4.7%) vs baseline: +5.2% ✅ modulo_aspect_for_bytesTime: ✅ 14.324ms (SLO: <18.900ms 📉 -24.2%) vs baseline: +0.2% Memory: ✅ 44.023MB (SLO: <46.000MB -4.3%) vs baseline: +4.9% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 14.521ms (SLO: <19.150ms 📉 -24.2%) vs baseline: ~same Memory: ✅ 43.961MB (SLO: <46.000MB -4.4%) vs baseline: +5.0% ✅ modulo_noaspectTime: ✅ 0.356ms (SLO: <3.000ms 📉 -88.1%) vs baseline: +0.6% Memory: ✅ 43.819MB (SLO: <46.000MB -4.7%) vs baseline: +4.8% ✅ replace_aspectTime: ✅ 18.218ms (SLO: <24.000ms 📉 -24.1%) vs baseline: +0.4% Memory: ✅ 43.873MB (SLO: <46.000MB -4.6%) vs baseline: +4.7% ✅ replace_noaspectTime: ✅ 284.120µs (SLO: <400.000µs 📉 -29.0%) vs baseline: ~same Memory: ✅ 43.869MB (SLO: <46.000MB -4.6%) vs baseline: +4.9% ✅ repr_aspectTime: ✅ 318.259µs (SLO: <420.000µs 📉 -24.2%) vs baseline: +0.7% Memory: ✅ 43.877MB (SLO: <46.000MB -4.6%) vs baseline: +4.9% ✅ repr_noaspectTime: ✅ 46.642µs (SLO: <90.000µs 📉 -48.2%) vs baseline: -0.3% Memory: ✅ 43.722MB (SLO: <46.000MB -5.0%) vs baseline: +4.6% ✅ rstrip_aspectTime: ✅ 385.758µs (SLO: <500.000µs 📉 -22.8%) vs baseline: +1.2% Memory: ✅ 43.897MB (SLO: <46.000MB -4.6%) vs baseline: +4.9% ✅ rstrip_noaspectTime: ✅ 184.778µs (SLO: <300.000µs 📉 -38.4%) vs baseline: ~same Memory: ✅ 43.872MB (SLO: <46.000MB -4.6%) vs baseline: +4.5% ✅ slice_aspectTime: ✅ 183.130µs (SLO: <300.000µs 📉 -39.0%) vs baseline: +0.2% Memory: ✅ 43.920MB (SLO: <46.000MB -4.5%) vs baseline: +4.9% ✅ slice_noaspectTime: ✅ 54.141µs (SLO: <90.000µs 📉 -39.8%) vs baseline: ~same Memory: ✅ 44.000MB (SLO: <46.000MB -4.3%) vs baseline: +5.2% ✅ stringio_aspectTime: ✅ 4.355ms (SLO: <5.000ms 📉 -12.9%) vs baseline: 📈 +17.4% Memory: ✅ 43.657MB (SLO: <46.000MB -5.1%) vs baseline: +4.2% ✅ stringio_noaspectTime: ✅ 344.910µs (SLO: <500.000µs 📉 -31.0%) vs baseline: -0.5% Memory: ✅ 44.041MB (SLO: <46.000MB -4.3%) vs baseline: +5.5% ✅ strip_aspectTime: ✅ 271.427µs (SLO: <350.000µs 📉 -22.4%) vs baseline: +0.2% Memory: ✅ 43.799MB (SLO: <46.000MB -4.8%) vs baseline: +5.1% ✅ strip_noaspectTime: ✅ 175.521µs (SLO: <240.000µs 📉 -26.9%) vs baseline: +0.4% Memory: ✅ 43.733MB (SLO: <46.000MB -4.9%) vs baseline: +4.8% ✅ swapcase_aspectTime: ✅ 329.733µs (SLO: <500.000µs 📉 -34.1%) vs baseline: -2.2% Memory: ✅ 43.830MB (SLO: <46.000MB -4.7%) vs baseline: +4.7% ✅ swapcase_noaspectTime: ✅ 267.786µs (SLO: <400.000µs 📉 -33.1%) vs baseline: +1.8% Memory: ✅ 43.790MB (SLO: <46.000MB -4.8%) vs baseline: +4.8% ✅ title_aspectTime: ✅ 324.768µs (SLO: <500.000µs 📉 -35.0%) vs baseline: +2.2% Memory: ✅ 43.758MB (SLO: <46.000MB -4.9%) vs baseline: +4.7% ✅ title_noaspectTime: ✅ 256.580µs (SLO: <400.000µs 📉 -35.9%) vs baseline: -0.2% Memory: ✅ 43.908MB (SLO: <46.000MB -4.5%) vs baseline: +5.1% ✅ translate_aspectTime: ✅ 486.683µs (SLO: <700.000µs 📉 -30.5%) vs baseline: ~same Memory: ✅ 43.882MB (SLO: <46.000MB -4.6%) vs baseline: +5.0% ✅ translate_noaspectTime: ✅ 413.951µs (SLO: <500.000µs 📉 -17.2%) vs baseline: -1.4% Memory: ✅ 43.820MB (SLO: <46.000MB -4.7%) vs baseline: +4.8% ✅ upper_aspectTime: ✅ 295.563µs (SLO: <500.000µs 📉 -40.9%) vs baseline: +0.6% Memory: ✅ 43.860MB (SLO: <46.000MB -4.7%) vs baseline: +4.9% ✅ upper_noaspectTime: ✅ 228.608µs (SLO: <400.000µs 📉 -42.8%) vs baseline: -0.9% Memory: ✅ 43.828MB (SLO: <46.000MB -4.7%) vs baseline: +4.6% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 506.172µs (SLO: <700.000µs 📉 -27.7%) vs baseline: 📈 +25.0% Memory: ✅ 43.725MB (SLO: <46.000MB -4.9%) vs baseline: +5.2% ✅ ospathbasename_noaspectTime: ✅ 411.466µs (SLO: <700.000µs 📉 -41.2%) vs baseline: -0.8% Memory: ✅ 43.526MB (SLO: <46.000MB -5.4%) vs baseline: +4.7% ✅ ospathjoin_aspectTime: ✅ 612.828µs (SLO: <700.000µs 📉 -12.5%) vs baseline: +1.1% Memory: ✅ 43.779MB (SLO: <46.000MB -4.8%) vs baseline: +5.1% ✅ ospathjoin_noaspectTime: ✅ 613.509µs (SLO: <700.000µs 📉 -12.4%) vs baseline: -0.7% Memory: ✅ 43.698MB (SLO: <46.000MB -5.0%) vs baseline: +5.3% ✅ ospathnormcase_aspectTime: ✅ 334.974µs (SLO: <700.000µs 📉 -52.1%) vs baseline: ~same Memory: ✅ 43.746MB (SLO: <46.000MB -4.9%) vs baseline: +5.3% ✅ ospathnormcase_noaspectTime: ✅ 344.676µs (SLO: <700.000µs 📉 -50.8%) vs baseline: +1.7% Memory: ✅ 43.644MB (SLO: <46.000MB -5.1%) vs baseline: +4.9% ✅ ospathsplit_aspectTime: ✅ 465.473µs (SLO: <700.000µs 📉 -33.5%) vs baseline: -0.1% Memory: ✅ 43.748MB (SLO: <46.000MB -4.9%) vs baseline: +5.0% ✅ ospathsplit_noaspectTime: ✅ 477.837µs (SLO: <700.000µs 📉 -31.7%) vs baseline: +0.2% Memory: ✅ 43.752MB (SLO: <46.000MB -4.9%) vs baseline: +5.3% ✅ ospathsplitdrive_aspectTime: ✅ 356.122µs (SLO: <700.000µs 📉 -49.1%) vs baseline: -1.1% Memory: ✅ 43.770MB (SLO: <46.000MB -4.8%) vs baseline: +5.4% ✅ ospathsplitdrive_noaspectTime: ✅ 72.658µs (SLO: <700.000µs 📉 -89.6%) vs baseline: +0.6% Memory: ✅ 43.702MB (SLO: <46.000MB -5.0%) vs baseline: +4.9% ✅ ospathsplitext_aspectTime: ✅ 439.161µs (SLO: <700.000µs 📉 -37.3%) vs baseline: -1.0% Memory: ✅ 43.645MB (SLO: <46.000MB -5.1%) vs baseline: +4.6% ✅ ospathsplitext_noaspectTime: ✅ 447.975µs (SLO: <700.000µs 📉 -36.0%) vs baseline: -0.5% Memory: ✅ 43.694MB (SLO: <46.000MB -5.0%) vs baseline: +4.8% 🟡 Near SLO Breach (2 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 19.693ms (SLO: <22.300ms 📉 -11.7%) vs baseline: +0.1% Memory: ✅ 69.619MB (SLO: <73.500MB -5.3%) vs baseline: +5.0% ✅ exception-replay-enabledTime: ✅ 1.327ms (SLO: <1.450ms -8.5%) vs baseline: -0.3% Memory: ✅ 67.771MB (SLO: <71.500MB -5.2%) vs baseline: +4.9% ✅ iastTime: ✅ 19.715ms (SLO: <22.250ms 📉 -11.4%) vs baseline: -0.1% Memory: ✅ 69.540MB (SLO: <75.000MB -7.3%) vs baseline: +4.8% ✅ profilerTime: ✅ 15.066ms (SLO: <16.550ms -9.0%) vs baseline: -1.1% Memory: ✅ 60.253MB (SLO: <61.000MB 🟡 -1.2%) vs baseline: +4.9% ✅ resource-renamingTime: ✅ 19.635ms (SLO: <21.750ms -9.7%) vs baseline: ~same Memory: ✅ 69.462MB (SLO: <73.500MB -5.5%) vs baseline: +4.8% ✅ span-code-originTime: ✅ 20.244ms (SLO: <28.200ms 📉 -28.2%) vs baseline: +1.2% Memory: ✅ 69.648MB (SLO: <75.000MB -7.1%) vs baseline: +4.9% ✅ tracerTime: ✅ 19.709ms (SLO: <21.750ms -9.4%) vs baseline: +0.2% Memory: ✅ 69.599MB (SLO: <75.000MB -7.2%) vs baseline: +4.8% ✅ tracer-and-profilerTime: ✅ 21.082ms (SLO: <23.500ms 📉 -10.3%) vs baseline: -0.3% Memory: ✅ 71.487MB (SLO: <75.000MB -4.7%) vs baseline: +4.9% ✅ tracer-dont-create-db-spansTime: ✅ 19.824ms (SLO: <21.500ms -7.8%) vs baseline: -0.4% Memory: ✅ 69.462MB (SLO: <75.000MB -7.4%) vs baseline: +4.8% ✅ tracer-minimalTime: ✅ 16.871ms (SLO: <17.500ms -3.6%) vs baseline: -0.3% Memory: ✅ 69.580MB (SLO: <75.000MB -7.2%) vs baseline: +5.0% ✅ tracer-nativeTime: ✅ 19.710ms (SLO: <21.750ms -9.4%) vs baseline: ~same Memory: ✅ 69.560MB (SLO: <72.500MB -4.1%) vs baseline: +4.9% ✅ tracer-no-cachesTime: ✅ 17.677ms (SLO: <19.650ms 📉 -10.0%) vs baseline: +0.2% Memory: ✅ 69.442MB (SLO: <75.000MB -7.4%) vs baseline: +4.7% ✅ tracer-no-databasesTime: ✅ 19.391ms (SLO: <20.100ms -3.5%) vs baseline: -0.4% Memory: ✅ 69.462MB (SLO: <75.000MB -7.4%) vs baseline: +4.7% ✅ tracer-no-middlewareTime: ✅ 19.450ms (SLO: <21.500ms -9.5%) vs baseline: ~same Memory: ✅ 69.560MB (SLO: <75.000MB -7.3%) vs baseline: +4.9% ✅ tracer-no-templatesTime: ✅ 19.723ms (SLO: <22.000ms 📉 -10.4%) vs baseline: +0.5% Memory: ✅ 69.422MB (SLO: <73.500MB -5.5%) vs baseline: +4.6% 🟡 recursivecomputation - 8/8✅ deepTime: ✅ 311.507ms (SLO: <320.950ms -2.9%) vs baseline: -0.1% Memory: ✅ 37.473MB (SLO: <38.750MB -3.3%) vs baseline: +4.6% ✅ deep-profiledTime: ✅ 330.326ms (SLO: <359.150ms -8.0%) vs baseline: +0.3% Memory: ✅ 43.745MB (SLO: <46.000MB -4.9%) vs baseline: +4.5% ✅ mediumTime: ✅ 7.299ms (SLO: <7.400ms 🟡 -1.4%) vs baseline: -0.3% Memory: ✅ 36.392MB (SLO: <38.000MB -4.2%) vs baseline: +5.2% ✅ shallowTime: ✅ 1.021ms (SLO: <1.050ms -2.7%) vs baseline: +1.6% Memory: ✅ 36.392MB (SLO: <38.000MB -4.2%) vs baseline: +5.0%
|
Backport #17942 to 4.7