Skip to content

build(deps): unblock the rust 1.99 bump and cap tracing-opentelemetry - #1225

Merged
loonghao merged 2 commits into
mainfrom
task/ci-vx-org-vx-test-linux-x86-64-full-ci-success-6-aa59f7a8489a
Oct 16, 2026
Merged

loonghao merged 2 commits into
mainfrom
task/ci-vx-org-vx-test-linux-x86-64-full-ci-success-6-aa59f7a8489a

Conversation

@loonghao

@loonghao loonghao commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

What this fixes

Two independent dependency blockers, each gating a queued renovate bump. They share no code path, but both must clear before the renovate queue can drain.

1. async-trait 0.1.89 -> 0.1.92 — unblocks chore(deps): update rust to v1.99.0

clippy 1.99.0 adds the double_must_use lint. async-trait 0.1.89 emits a redundant #[must_use] on the boxed future returned by every #[async_trait] method, so under -D warnings the Code Quality (via vx) job fails:

error: this function has a `#[must_use]` attribute with no message,
       but returns a type already considered as `#[must_use]`
  --> crates/vx-ecosystem-pm/src/traits.rs:17:15
  --> crates/vx-versions/src/fetch_context.rs:12:28

Reproduced locally with cargo +1.99.0 clippy -p vx-ecosystem-pm -p vx-versions --all-targets -- -D warnings -Aasync-fn-in-trait: 1 error in vx-ecosystem-pm and 2 in vx-versions, matching CI exactly.

async-trait 0.1.92 drops the redundant attribute, so the lint no longer fires. No #[allow] is needed, which keeps the lint working where it is a real signal.

2. renovate: cap tracing-opentelemetry below 0.34.0

tracing-opentelemetry 0.34.0 builds against opentelemetry 0.33.0, while this repo already pins the opentelemetry monorepo below 0.33.0 (added in #1127). Taking the tracing-opentelemetry bump on its own splits the dependency graph:

error[E0277]: the trait bound `SdkTracer: opentelemetry::trace::tracer::Tracer` is not satisfied
  = note: there are multiple different versions of crate `opentelemetry` in the dependency graph
      opentelemetry-0.33.0  <- expected trait
      opentelemetry-0.32.0  <- found trait
error[E0599]: the method `with_filter` exists for struct `OpenTelemetryLayer<_, SdkTracer>`,
              but its trait bounds were not satisfied
error: could not compile `vx-metrics` (lib) due to 3 previous errors

That breaks Build vx on every platform, plus Build vx binary, Benchmark, Analyze (CodeQL via vx) and Docker Success.

This adds a tracing-opentelemetry cap next to the existing monorepo cap and refreshes the stale rationale on the monorepo rule, which still described 0.33.0 as the newest tracing-opentelemetry release. Both caps should be lifted together when the monorepo is ready to move to 0.33.

With the cap in place renovate stops proposing the bump, so PR #1158 can be closed rather than fixed.

Verification

  • cargo +1.99.0 clippy -p vx-ecosystem-pm -p vx-versions --all-targets -- -D warnings -Aasync-fn-in-trait — exit 0 (was exit 101 with 3 errors)
  • cargo check --workspace --all-targets — exit 0
  • renovate.json parses as valid JSON
  • No new packages enter the lockfile: 0.1.92 moves from syn 2.0.119 to syn 3.0.6, both already present

Notes

Security follow-up (2026-10-16)

  • Updated the inherited rustls lock entry from 0.23.45 to 0.23.46; this follow-up changes only its version and registry checksum, with the dependency graph unchanged. Current head: 40eee51c4e96f4467c95e62d7975abcb642d91e7.
  • Current-head CI completed: 38 successful checks and 18 intentionally skipped checks, with no failures or pending checks. Full native suites passed on Linux (4,289), macOS (4,292), and Windows (4,313), with no retry-absorbed failures. Independent review found no blocking issue in this bounded dependency change. The audit job's green status is not used as security validation.
  • The existing audit recipe suppresses command failures. Its current-head job log reports three vulnerabilities and seven denied warnings even though the job is green. This PR does not claim a clean audit or add advisory ignores.
  • The remaining dependency findings and audit error propagation are separate work. The unsafe optional public archive 7z extraction path is addressed by fix(archive): validate 7z entry paths before extraction #1226; the current CLI does not use that crate.

loonghao and others added 2 commits October 14, 2026 10:42
Two independent dependency blockers, each gating a queued renovate bump.

async-trait 0.1.89 emits a redundant #[must_use] on the boxed future
returned by every #[async_trait] method. clippy 1.99.0 adds
double_must_use, which under -D warnings fails Code Quality at
crates/vx-ecosystem-pm/src/traits.rs:17 and
crates/vx-versions/src/fetch_context.rs:12. 0.1.92 drops the redundant
attribute, so the lint no longer fires and no allow is needed.

tracing-opentelemetry 0.34.0 builds against opentelemetry 0.33.0 while
this repo pins the monorepo below 0.33.0, so taking that bump on its own
splits the graph: vx-metrics matches an opentelemetry 0.32 SdkTracer
against the opentelemetry 0.33 Tracer bound in
OpenTelemetryLayer::with_tracer (E0277, then E0599 on with_filter).
Cap tracing-opentelemetry below 0.34.0 next to the existing monorepo cap
and lift both together when the monorepo is ready to move.
@loonghao
loonghao merged commit 5a85987 into main Oct 16, 2026
59 checks passed
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