Repository navigation
Conversation
|
|
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 02ce2ecdf5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Use distutils.util.get_platform so PEP 517 builds continue to work after pkg_resources was removed from setuptools. (cherry picked from commit b1e827d)
Keep direct setup.py invocations below setuptools-scm 10, whose split vcs_versioning dependency is not resolved by the deprecated setup_requires installer.
Keep the PEP 517 build-system requirement consistent with setup_requires so pip resolves a compatible setuptools-scm version.
Prevent wrapt 2.x from breaking wrapper detection and patching across integrations on the 3.12 branch.
Keep bootstrap import analysis able to install the unchanged 3.12 base and avoid reporting a missing result after earlier failures.
Allow source-link validation to handle the internal HTTP mirror used by current GitLab runners.
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 232 ± 6 ms. The average import time from base is: 249 ± 7 ms. The import time difference between this PR and base is: -17.5 ± 0.3 ms. Import time breakdownThe following import paths have appeared:
|
Pin setuptools before pkg_resources removal and normalize namespace package names when comparing distribution metadata.
Use the validated system-tests revision that handles empty metric payloads, optional FQDNs, and current Agent delivery behavior.
Pair the last validated pre-OpenFeature harness with Agent 7.71.0 so current external releases cannot change the legacy branch's test inputs.
Use deterministic LLMObs intake responses and retain compatible system-test coverage where the 3.12 branch lacks newer telemetry or retired credentials.
Format the LLMObs test with the branch-pinned Black version used by GitLab prechecks.
Use the supported Intel macOS runner and give documentation cache upload enough time to complete.
Performance SLOsComparing candidate juanjux/fix-circular-imports-3.12 (bb190f0) with baseline 3.12 (90a0577) 🟡 Near SLO Breach (2 suites)🟡 flasksimple - 15/15✅ appsec-getTime: ✅ 4.630ms (SLO: <4.750ms -2.5%) vs baseline: -0.7% Memory: ✅ 61.814MB (SLO: <64.500MB -4.2%) vs baseline: +4.6% ✅ appsec-postTime: ✅ 6.687ms (SLO: <6.750ms 🟡 -0.9%) vs baseline: -0.8% Memory: ✅ 61.715MB (SLO: <64.500MB -4.3%) vs baseline: +4.2% ✅ appsec-telemetryTime: ✅ 4.642ms (SLO: <4.750ms -2.3%) vs baseline: -0.9% Memory: ✅ 61.774MB (SLO: <64.500MB -4.2%) vs baseline: +4.3% ✅ debuggerTime: ✅ 1.868ms (SLO: <2.000ms -6.6%) vs baseline: -0.2% Memory: ✅ 43.374MB (SLO: <45.000MB -3.6%) vs baseline: +1.1% ✅ iast-getTime: ✅ 1.866ms (SLO: <2.000ms -6.7%) vs baseline: ~same Memory: ✅ 46.670MB (SLO: <49.000MB -4.8%) vs baseline: +1.5% ✅ profilerTime: ✅ 1.930ms (SLO: <2.100ms -8.1%) vs baseline: +0.3% Memory: ✅ 43.983MB (SLO: <46.500MB -5.4%) vs baseline: +1.1% ✅ tracerTime: ✅ 3.425ms (SLO: <3.650ms -6.2%) vs baseline: +0.2% Memory: ✅ 50.804MB (SLO: <53.500MB -5.0%) vs baseline: +1.6% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 45.469ms (SLO: <47.150ms -3.6%) vs baseline: +0.5% Memory: ✅ 44.574MB (SLO: <46.500MB -4.1%) vs baseline: +4.8% ✅ add-metricsTime: ✅ 323.659ms (SLO: <344.800ms -6.1%) vs baseline: +0.9% Memory: ✅ 558.293MB (SLO: <562.000MB 🟡 -0.7%) vs baseline: +4.8% ✅ add-tagsTime: ✅ 294.533ms (SLO: <314.000ms -6.2%) vs baseline: +1.1% Memory: ✅ 558.273MB (SLO: <563.500MB 🟡 -0.9%) vs baseline: +4.6% ✅ get-contextTime: ✅ 87.772ms (SLO: <92.350ms -5.0%) vs baseline: ~same Memory: ✅ 39.659MB (SLO: <46.500MB 📉 -14.7%) vs baseline: +4.3% ✅ is-recordingTime: ✅ 42.933ms (SLO: <44.500ms -3.5%) vs baseline: +0.3% Memory: ✅ 43.921MB (SLO: <46.500MB -5.5%) vs baseline: +4.9% ✅ record-exceptionTime: ✅ 61.816ms (SLO: <67.650ms -8.6%) vs baseline: -0.1% Memory: ✅ 39.930MB (SLO: <46.500MB 📉 -14.1%) vs baseline: +4.3% ✅ set-statusTime: ✅ 48.882ms (SLO: <50.400ms -3.0%) vs baseline: -0.3% Memory: ✅ 43.866MB (SLO: <46.500MB -5.7%) vs baseline: +4.5% ✅ startTime: ✅ 42.427ms (SLO: <43.450ms -2.4%) vs baseline: +0.6% Memory: ✅ 43.898MB (SLO: <46.500MB -5.6%) vs baseline: +4.6% ✅ start-finishTime: ✅ 85.069ms (SLO: <88.000ms -3.3%) vs baseline: -0.3% Memory: ✅ 33.836MB (SLO: <46.500MB 📉 -27.2%) vs baseline: +4.7% ✅ start-finish-telemetryTime: ✅ 87.099ms (SLO: <89.000ms -2.1%) vs baseline: +0.2% Memory: ✅ 33.856MB (SLO: <46.500MB 📉 -27.2%) vs baseline: +4.8% ✅ update-nameTime: ✅ 44.520ms (SLO: <45.150ms 🟡 -1.4%) vs baseline: +0.9% Memory: ✅ 44.235MB (SLO: <46.500MB -4.9%) vs baseline: +4.6% 📉 Performance Improvements (1 suite)📉 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.192µs (SLO: <10.000µs 📉 -68.1%) vs baseline: 📉 -23.5% Memory: ✅ 31.339MB (SLO: <34.000MB -7.8%) vs baseline: -0.3% ✅ 1-count-metrics-100-timesTime: ✅ 217.154µs (SLO: <240.000µs -9.5%) vs baseline: 📉 -30.4% Memory: ✅ 31.339MB (SLO: <34.000MB -7.8%) vs baseline: -0.3% ✅ 1-distribution-metric-1-timesTime: ✅ 2.994µs (SLO: <10.000µs 📉 -70.1%) vs baseline: 📉 -24.6% Memory: ✅ 31.320MB (SLO: <34.000MB -7.9%) vs baseline: -0.5% ✅ 1-distribution-metrics-100-timesTime: ✅ 195.071µs (SLO: <210.000µs -7.1%) vs baseline: 📉 -33.2% Memory: ✅ 31.359MB (SLO: <34.000MB -7.8%) vs baseline: -0.3% ✅ 1-gauge-metric-1-timesTime: ✅ 2.172µs (SLO: <10.000µs 📉 -78.3%) vs baseline: +2.9% Memory: ✅ 31.339MB (SLO: <34.000MB -7.8%) vs baseline: -0.4% ✅ 1-gauge-metrics-100-timesTime: ✅ 125.050µs (SLO: <140.000µs 📉 -10.7%) vs baseline: +0.9% Memory: ✅ 31.320MB (SLO: <34.000MB -7.9%) vs baseline: -0.6% ✅ 1-rate-metric-1-timesTime: ✅ 3.147µs (SLO: <10.000µs 📉 -68.5%) vs baseline: 📉 -24.9% Memory: ✅ 31.438MB (SLO: <34.000MB -7.5%) vs baseline: ~same ✅ 1-rate-metrics-100-timesTime: ✅ 217.172µs (SLO: <240.000µs -9.5%) vs baseline: 📉 -30.7% Memory: ✅ 31.359MB (SLO: <34.000MB -7.8%) vs baseline: -0.3% ✅ 100-count-metrics-100-timesTime: ✅ 21.570ms (SLO: <23.000ms -6.2%) vs baseline: 📉 -31.5% Memory: ✅ 31.693MB (SLO: <34.000MB -6.8%) vs baseline: +0.7% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.022ms (SLO: <2.200ms -8.1%) vs baseline: 📉 -32.7% Memory: ✅ 31.654MB (SLO: <34.000MB -6.9%) vs baseline: +0.4% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.270ms (SLO: <1.500ms 📉 -15.3%) vs baseline: -0.9% Memory: ✅ 31.693MB (SLO: <34.000MB -6.8%) vs baseline: +0.3% ✅ 100-rate-metrics-100-timesTime: ✅ 2.209ms (SLO: <2.500ms 📉 -11.6%) vs baseline: 📉 -30.8% Memory: ✅ 31.772MB (SLO: <34.000MB -6.6%) vs baseline: +1.0% ✅ flush-1-metricTime: ✅ 4.323µs (SLO: <10.000µs 📉 -56.8%) vs baseline: 📉 -20.1% Memory: ✅ 31.674MB (SLO: <34.000MB -6.8%) vs baseline: +0.6% ✅ flush-100-metricsTime: ✅ 183.727µs (SLO: <200.000µs -8.1%) vs baseline: ~same Memory: ✅ 31.772MB (SLO: <34.000MB -6.6%) vs baseline: +0.8% ✅ flush-1000-metricsTime: ✅ 2.220ms (SLO: <2.450ms -9.4%) vs baseline: +0.1% Memory: ✅ 32.499MB (SLO: <34.500MB -5.8%) vs baseline: +1.0%
|
Description
Fixes the 4.12 branch against current dependency, build-tool, and CI infrastructure releases:
settings._config -> internal.schema -> span_attribute_schema -> ddtracefamily, without introducing new cycles.pkg_resourcesplatform lookup removal from chore: replace pkg_resources usage with distutils #16290 so current setuptools versions can build 3.12 wheels.setuptools-scm<10for both PEP 517 and legacysetup.pybuilds because the legacysetup_requiresinstaller does not resolve setuptools-scm 10'svcs_versioningdependency.wrapt<2because the 3.12 wrapper detection and integration patching code is incompatible with wrapt 2's proxy hierarchy. This fixes deterministic patch/unpatch failures across unrelated integrations after wrapt 2.2.2 was released.setuptools<82in internal test environments that intentionally exercisepkg_resources, and handles current zope/jaraco namespace package normalization in distribution metadata checks.ddtrace.openfeature, while current Agents change delivery retries and payloads expected by this legacy harness.Testing
scripts/ddtest riot -v run --pass-env cfa931e -- tests/internal/service_name/test_imports.py— 5 passedpython -m pip wheel --no-deps .with an isolated PEP 517 build environment — wheel built successfullyTestUrllib3Patch::test_patch_unpatch_patch_importunder Python 3.12 after a fresh package install — passedpkg_resourcestests — 2 passeddatadog/agent:7.71.0multi-platform image is available.Risks
Low. The schema refactor preserves existing service-name behavior, while the dependency caps exclude versions that the 3.12 implementation cannot support. The system-tests harness and Agent versions are paired to the stack previously validated for this branch.
Additional Notes
Includes a release note for the wrapt compatibility constraint. The schema and build changes backport #19030 and #16290; the wrapt constraint follows #14955 and the Git mirror test follows #17583.