chore(ci): Prepare 1.2.3 - #2037
Conversation
## Summary Update a crate currently blocking check deny. ## Change Type - [x] Non-functional (chore, refactoring, docs) ## How did you test this PR? CI ## References N/A Co-authored-by: toby.lawrence <toby.lawrence@datadoghq.com>
) Newer Rust nightly toolchains renamed `Atomic*::fetch_update` to `try_update` for consistency. Because `make generate-api-docs` runs `cargo +nightly doc` and all affected crates have `#![deny(warnings)]`, the deprecation is promoted to a hard error, breaking the CI `generate-api-docs` job. This replaces all three `fetch_update` call sites with `try_update`. The new name is available on both the nightly used by `make generate-api-docs` and the pinned stable `1.96.0` toolchain used for regular builds, checks, and tests. - `make generate-api-docs` passes on the updated nightly (1.99.0-nightly 2026-07-05). - `cargo +1.96.0 check --tests` passes for the affected crates. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: jesse.szwedko <jesse.szwedko@datadoghq.com>
Backport of #2028 to releases/1.2.x. The Core Agent's config stream sends dd_url at its schema default (https://app.datadoghq.com) for every configuration, even when the operator only set site. ADP was treating that default as an explicit override and routing all traffic to the US1 intake, so site was effectively ignored (#1965). Filter the default value at deserialization: a dd_url equal to the default-derived URL is treated as None, allowing site to determine the endpoint. This only affects the serde path; programmatic callers such as set_dd_url bypass serde and are unaffected. Adapted to the 1.2.x code (no configured_primary_endpoint), so the change is confined to the dd_url deserializer plus tests. Fixes #1965. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Pull request overview
Backports three fixes to the releases/1.2.x line to restore correct endpoint resolution when site is set, keep nightly API-doc generation unblocked under #![deny(warnings)], and resolve a dependency audit blocker.
Changes:
- Treat schema-default
dd_url(https://app.datadoghq.com) as unset during deserialization sositecan determine the intake endpoint, and add unit tests for the resolution behavior. - Pin and share a single nightly toolchain version for both Miri and API-doc generation; update docs workflow to rely on the Makefile’s pinned nightly installation.
- Update
anyhowfrom1.0.102to1.0.103inCargo.lock, and replace deprecatedfetch_updatecall sites withtry_update.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| Makefile | Introduces a shared pinned nightly version and uses it for API-doc generation and Miri setup. |
| lib/saluki-metrics/src/test.rs | Replaces deprecated fetch_update with try_update in test helpers. |
| lib/saluki-io/src/net/util/retry/policy/rolling_exponential.rs | Replaces deprecated fetch_update with try_update in retry policy bookkeeping. |
| lib/saluki-components/src/common/datadog/endpoints.rs | Filters default dd_url at serde-deserialize time to allow site to take effect; adds targeted unit tests. |
| Cargo.lock | Bumps anyhow to unblock cargo deny / dependency auditing. |
| .github/workflows/docs.yml | Updates Rust toolchain setup to provide rustup/cargo while deferring nightly pinning to the Makefile. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Binary Size Analysis (Agent Data Plane)Baseline: b02c083 · Comparison: 42e0844 · diff ✅ Binary size difference within thresholdChanges by Module
Detailed Symbol Changes |
crossbeam-epoch 0.9.18 is flagged by RUSTSEC-2026-0204 (invalid pointer dereference in the fmt::Pointer impl for Atomic/Shared), failing check-deny. Bump to 0.9.20, a semver-compatible lockfile-only update. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Regression Detector (Agent Data Plane)Run ID: Optimization Goals: ✅ No significant changes detectedFine details of change detection per experiment (35)Experiments configured
Bounds Checks: ✅ Passed (5)
ExplanationA change is flagged as a regression when |Δ mean %| > 5.00% in the regressing direction for its optimization goal AND SMP marks the experiment as a regression ( |
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
1ba8060
into
releases/1.2.x
Summary
Release-prep PR for ADP 1.2.3 on
releases/1.2.x. Bumps the version and bundles four fixes. Because 1.2.x is on Rust 1.96.0 (same asmain), thefetch_updatefix could be cherry-picked directly rather than needing the#[allow(deprecated)]workaround used on 1.1.0.Honor
sitewhendd_urlequals the default-derived URL — corresponds to fix(config): honor site when dd_url equals the default-derived URL #2028 (7ec65f2). The Core Agent's config stream sendsdd_urlat its schema default (https://app.datadoghq.com) for every configuration, even when the operator only setsite, so ADP routed all traffic to the US1 intake andsitewas effectively ignored (Investigate whetherdd_url's schema default makessiteunreachable in ADP. #1965). Add_urlequal to the default-derived URL is now filtered toNoneat deserialization, lettingsitedetermine the endpoint.set_dd_urlbypasses serde and is unaffected. Adapted to the 1.2.x code (noconfigured_primary_endpoint), so the change is confined to thedd_urldeserializer plus tests.Unblock the nightly
generate-api-docsbuild — cherry-pick of fix(docs): replace deprecated atomic fetch_update with try_update #2007 (917e05f). Newer nightly toolchains deprecateAtomic*::fetch_update; under#![deny(warnings)],cargo +nightly docturns that into a hard error. Since 1.2.x uses the 1.96.0 toolchain (wheretry_updateis stable), the three call sites switch totry_update, matchingmain. (Thefixed_size.rshunk from the original commit was dropped — that method doesn't exist on 1.2.x and has nofetch_updateto fix.)Update
anyhow— cherry-pick of chore(deps): update anyhow #1945 (bc51393). Bumpsanyhow1.0.102 → 1.0.103 inCargo.lockto unblockcheck deny. (The2a7be76hash is the gh-pages docs artifact for that PR;bc51393is the source commit.)Bump
crossbeam-epochto 0.9.20 — fresh fix for RUSTSEC-2026-0204.crossbeam-epoch 0.9.18(an invalid pointer dereference in thefmt::Pointerimpl forAtomic/Shared) failscheck-deny. This is a repo-wide issue; the equivalent fix formainis chore(deps): bump crossbeam-epoch to 0.9.20 for RUSTSEC-2026-0204 #2038. Applied directly here (semver-compatible, lockfile-only bump) rather than cherry-picked, since it landed on the release branches in parallel with the main PR.Plus a
chore(dev): Bump ADP to 1.2.3commit updatingbin/agent-data-plane/Cargo.tomland the lockfile.Test plan
dd_url/siteresolution (default filtered →None; explicit override wins;set_dd_urlnever filtered; end-to-endbuild_primary_endpointfor both cases).make check-denypasses with the crossbeam-epoch bump.cargo checkpasses for the affected crates on the pinned1.96.0toolchain, including thetry_updatecall sites.Fixes #1965.
🤖 Generated with Claude Code