Repository navigation
fix(deps): update rust dependencies - #202
renovate[bot] wants to merge 1 commit into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #202 +/- ##
=======================================
Coverage 89.13% 89.13%
=======================================
Files 9 9
Lines 598 598
=======================================
Hits 533 533
Misses 65 65 Continue to review full report in Codecov by Harness.
|
54106f7 to
021a581
Compare
92849c3 to
c16a31e
Compare
35e490a to
1f72067
Compare
92c4241 to
2cd35fb
Compare
2cd35fb to
e4f4380
Compare
1977b6f to
c0fc0d9
Compare
0b74947 to
2722eb9
Compare
886190f to
dafccf8
Compare
5107987 to
262e86b
Compare
7df1059 to
bad5570
Compare
0cc3d15 to
1c63d62
Compare
0d080d2 to
e0e677e
Compare
f13d4fb to
7563bc7
Compare
cca1509 to
c4f01b9
Compare
PR SummaryMedium Risk Overview Telemetry / metrics: bumps HTTP middleware: upgrades Lockfile: large transitive updates (e.g. Reviewed by Cursor Bugbot for commit c4f01b9. Bugbot is set up for automated code reviews on this repo. Configure here. |
26fa269 to
b389cce
Compare
8ef864e to
fe4e3b2
Compare
| opentelemetry = { version = "0.31.0", features = ["metrics"] } | ||
| opentelemetry-prometheus = "0.31" | ||
| opentelemetry = { version = "0.33.0", features = ["metrics"] } | ||
| opentelemetry-prometheus = "0.33" |
There was a problem hiding this comment.
Prometheus scope labels expanded
Medium Severity
Issue: opentelemetry-prometheus 0.33 now emits otel_scope_version and otel_scope_schema_url on metric points by default. Scrapes and the exact-match golden files only expect otel_scope_name.
Fix: Call scope_info_enabled(false) on the exporter, or update fixtures and scrape matchers for the new labels.
Reviewed by Cursor Bugbot for commit 3839bd1. Configure here.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 817bd6b. Configure here.
| opentelemetry_sdk = { version = "0.32.1", features = ["metrics", "rt-tokio"] } | ||
| opentelemetry = { version = "0.33.0", features = ["metrics"] } | ||
| opentelemetry-prometheus = "0.33" | ||
| opentelemetry_sdk = { version = "0.33.0", features = ["metrics", "rt-tokio"] } |
There was a problem hiding this comment.
Split OpenTelemetry versions break tracing
Medium Severity
Issue: Bumping axum-tracing-opentelemetry to 0.42 and opentelemetry to 0.33 while leaving rust-telemetry 1.4.0 on OpenTelemetry 0.32 compiles two opentelemetry::global states. OtelAxumLayer stores parent context as a 0.33 Context that init_otel's 0.32 OpenTelemetryLayer cannot downcast, so incoming traceparent headers no longer attach to exported spans.
Fix: Keep these crates on 0.32 until rust-telemetry supports OpenTelemetry 0.33, then upgrade them together.
Reviewed by Cursor Bugbot for commit 817bd6b. Configure here.


Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
1.0.100→1.0.1040.1.89→0.1.920.8.8→0.8.90.39.1→0.42.00.15.19→0.15.270.3.31→0.3.340.3.31→0.3.340.12.6→0.12.70.32.0→0.33.00.32→0.330.32.1→0.33.01.12.2→1.13.11.4.0→1.4.11.0.228→1.0.2291.0.149→1.0.1540.3.47→0.3.551.49.0→1.54.10.5.2→0.5.30.5.2→0.5.30.6.6→0.7.00.3.22→0.3.231.23.1→1.29.0Release Notes
dtolnay/anyhow (anyhow)
v1.0.104Compare Source
syndev-dependency to version 3v1.0.103Compare Source
Error::downcast_mut(#451, #452)v1.0.102Compare Source
v1.0.101Compare Source
dtolnay/async-trait (async-trait)
v0.1.92Compare Source
v0.1.91Compare Source
v0.1.90Compare Source
(yanked)
tokio-rs/axum (axum)
v0.8.9Compare Source
WebSocketUpgrade::{requested_protocols, set_selected_protocol}for more flexible subprotocol selection (#3597)davidB/tracing-opentelemetry-instrumentation-sdk (axum-tracing-opentelemetry)
v0.42.1Compare Source
v0.42.0Compare Source
rust-cli/config-rs (config)
v0.15.27Compare Source
Performance
v0.15.26Compare Source
Compatibility
Internal
v0.15.25Compare Source
Fixes
u64, and not justi64v0.15.24Compare Source
Fixes
u64, and not justi64v0.15.23Compare Source
Fixes
Environment::convert_case: correctly apply casing to each key segmentv0.15.22Compare Source
Documentation
Internal
v0.15.21Compare Source
Compatibility
v0.15.20Compare Source
Fixes
u64rangeInternal
rust-lang/futures-rs (futures)
v0.3.34Compare Source
synto 3. (#3028)v0.3.33Compare Source
ReadLine's soundness issue regarding to exception safety. (#3020)Sendimpl forIterPinRefandIter. (#3003)compat01as03implementation. (#3012)FuturesUnordered::IntoIter. (#3005)portable-atomic-allocfeature and use it inFuturesUnordered. (#3007)alloc::task::Wake. (#3010)spinto 0.12. (#3014)v0.3.32Compare Source
ready!macro in favor ofstd::task::ready!added in Rust 1.64 (#2925)pin_mut!macro in favor ofstd::pin::pin!added in Rust 1.68 (#2929)FuturesOrdered::clear(#2927)mpsc::*Receiver::recv(#2947)mpsc::*Receiver::try_recvand deprecatempsc::*Receiver::::try_next(#2944)FusedStreamforsink::With(#2948)no_stdsupport forshared(#2868)Mutex::new()const (#2956)#[clippy::has_significant_drop]to guards (#2967)pin-utils(#2929)num_cpus(#2946)djc/gcp_auth (gcp_auth)
v0.12.7Compare Source
What's Changed
ringdependency optional by @a-kenji in #173open-telemetry/opentelemetry-rust (opentelemetry)
v0.33.1Compare Source
Released 2026-Oct-08
Context::with_value()callsContext::current()from itsDropimplementation.(#828).
CallbackandAsyncInstrumentBuilder::with_callback).(#3640)
TraceState::from_strrejecting valid optional whitespace around list members.(#3757)
TraceStatenow validates list-members exactly as theW3C Trace Context Level 2
specification requires.
from_str,from_key_valueandinsertreturn anErrfor:=x,a=),,or=;repeated equals signs (e.g.
a==b) are no longer silently removed,from_key_valueorinsert(trailingspaces in a parsed header are still treated as optional whitespace),
TraceStateError::DuplicateKeyvariant.TraceState::deletenow returnsTraceStateinstead ofResult<TraceState, TraceStateError>TraceState'sDebugoutput changed fromTraceState(None)/TraceState(Some([..]))toTraceState([])/TraceState([("key", "value")]).(#3778)
v0.33.0Compare Source
Released 2026-Sep-18
TraceStateaccepting more than the 32 list-members the W3C trace-contextspecification allows.
from_str,from_key_valueandinsertnow keep at most32, dropping members from the end of the list as the specification prescribes, so
neither a parsed nor a locally built
tracestatecan exceed the limit.ContextObservercan be registered viaGlobalContextObserver::setto benotified of context transitions through the
on_context_enterandon_context_exitcallbacks. This feature is primarily intended to publish adifferent view of the current context (the
ObserverContextView) throughalternative channels that let external readers (e.g. an eBPF profiler) track
the current context. See the associated
OTEP.
Gated behind the
experimental_context_observerfeature flag.otel_info!,otel_warn!,otel_debug!, andotel_error!macros now accept quoted-key fields(e.g.
"otel.component.type" = "value") for dotted attribute names.BoundGauge<T>andBoundUpDownCounter<T>types (and thecorresponding
Gauge::bind()/UpDownCounter::bind()methods), completingthe experimental bound-instrument API across all sync instruments
(
Counter,UpDownCounter,Histogram,Gauge). Gated behind theexperimental_metrics_bound_instrumentsfeature flag.open-telemetry/opentelemetry-rust (opentelemetry-prometheus)
v0.33.1Compare Source
Released 2026-Oct-08
with_resource_selectorbeing dropped from metric points whenscope_info_enabled(false)is set. #2858v0.33.0Compare Source
Released 2026-Sep-18
without_scope_infowithscope_info_enabledto configure Prometheus instrumentation scope labels, inverting the option from disabling scope info to enabling it. Before this change, the exporter emitted anotel_scope_infometric and only addedotel_scope_name/otel_scope_versionlabels to metric points. Now scope info is enabled by default on metric points withotel_scope_name,otel_scope_version,otel_scope_schema_url, and scope attributes prefixed withotel_scope_; settingscope_info_enabled(false)suppresses those labels. #3503open-telemetry/opentelemetry-rust (opentelemetry_sdk)
v0.33.1Compare Source
Released 2026-Oct-08
PeriodicReaderworker thread panics (such as from an observable metric callback), and document
the callback panic contract.
(#3640)
Sampler::parent_based(root), returning aParentBasedSamplerthat letsall 5 branches of the ParentBased sampler spec be configured independently
(root, and remote/local parent that is/isn't sampled) via
with_remote_parent_sampled,with_remote_parent_not_sampled,with_local_parent_sampled, andwith_local_parent_not_sampled. PreviouslySampler::ParentBasedonly let youoverride the root case; the other 4 were fixed to the spec defaults. Unset
branches keep those same defaults, so this is purely additive.
(#3657)
Histogram,Sum,LastValue, andPrecomputedSumaggregators (andtheir bound-instrument handles) silently accepting NaN/Infinity
measurements. For
HistogramandSum, a single NaN measurementpermanently corrupted the cumulative
sum/total for the rest of theprocess's lifetime (
x + NaN == NaN);LastValueandPrecomputedSumself-healed on the next valid measurement but still exported one bad value
in the meantime, and
PrecomputedSumunder delta temporality corrupted twoexport cycles. Non-finite measurements are now dropped before recording,
matching
ExponentialHistogram's existing behavior.(#3656)
SdkTracerinheriting an invalid parent span context (e.g. a contextcarrying an invalid active span context). Such a parent is now treated as no
parent: the span gets a freshly generated trace id instead of the parent's
all-zero one, and is not recorded as a child of it.
(#3657)
PeriodicReader, makingfailures such as an unreachable collector visible without enabling DEBUG
logging.
(#3754)
TraceContextPropagatornow follows the W3C Trace Context Level 2tracestaterules.Multiple
tracestateheader fields are combined into a single list,tracestateisonly parsed once
traceparentis known to be valid, an invalidtracestate(seethe stricter
TraceStateparsing inopentelemetry) is discarded withoutaffecting
traceparentand an emptytracestateheader is no longer injected.(#3778)
v0.33.0Released 2026-Sep-18
OTEL_*/OTEL_*_DEFAULTenvironment variable name anddefault value constants for
BatchSpanProcessor(opentelemetry_sdk::trace),BatchLogProcessor(opentelemetry_sdk::logs), andPeriodicReader(
opentelemetry_sdk::metrics), so downstream configuration systems can readthe SDK's spec-defined defaults programmatically instead of duplicating
them. As part of this,
PeriodicReader's previously-privateDEFAULT_INTERVAL/METRIC_EXPORT_INTERVAL_NAMEconstants were renamedto
OTEL_METRIC_EXPORT_INTERVAL_DEFAULT/OTEL_METRIC_EXPORT_INTERVALtomatch the naming convention already used elsewhere.
(#3623)
experimental_metrics_bound_instruments:otel.sdk.log.createdcounts logrecords submitted to the SDK;
otel.sdk.processor.log.processedandotel.sdk.processor.span.processedcount records and spans submitted to anexporter by batch and simple processors, with
error.typereporting itemsdropped before submission; and
otel.sdk.processor.log.queue.capacityreports the configured
BatchLogProcessorqueue capacity.(#3514,
#3608,
#3609,
#3611)
futures-channel,futures-executor,futures-util, andthiserroroptional, enabling a minimal SDK build. With
default-features = false, theSDK's only dependency is the
opentelemetryAPI crate.(#3593)
GaugeandUpDownCountervia thenew
BoundGauge<T>andBoundUpDownCounter<T>types exposed by theopentelemetrycrate. Requires theexperimental_metrics_bound_instrumentsfeature.
BatchSpanProcessorandBatchLogProcessorwhere aspan/log enqueued just before
force_flush()orshutdown()could bemissed by the flush and dropped at shutdown: the pending-item counter is
now incremented before enqueueing (and reverted if the queue is full), so
the worker's counter snapshot can no longer under-count items already in
the queue (#3453).
unknown_serviceunderMiri instead of calling
std::env::current_exe(), avoiding an abort in Miriisolation mode while preserving the normal
unknown_service:<process.executable.name>fallback outside Miri.ObservableCounter,ObservableUpDownCounter)using delta temporality reporting incorrect deltas when observed attributes
were recorded in an unsorted key order.
SpanProcessor::on_endnow takesFinishedSpan<'_>by value instead ofSpanData.FinishedSpan::span_data(&self) -> &SpanData.FinishedSpan::into_owned(self) -> SpanData. The last registered processor receives an owned wrapper and can move the data by callinginto_owned(); earlier processors receive a borrowed wrapper and clone oninto_owned().Spaninstances provide clone-free inherent read methods (parent_span_id,span_kind,name,start_time,attributes,dropped_attributes_count,events,dropped_events_count,links,dropped_links_count,status,instrumentation_scope), while context is accessed viaSpan::span_context().on_end(&self, span: FinishedSpan<'_>), usespan.span_data()for read-only access, and callspan.into_owned()only when they need an ownedSpanData.Supersedes #2962.
Relates to #2940,
#2726,
#2939.
Span::end_with_timestamppreserving explicit end times even when equal to start time,instead of silently overwriting with the current time.
rust-lang/regex (regex)
v1.13.1Compare Source
===================
This is a release that fixes a bug where incorrect regex match offsets could be
reported. Note that this doesn't impact whether a match occurs or not, just
where it occurs. The match offsets are still valid for slicing, they just may
not refer to the correct leftmost-first match. See
#1364 for (many) more details.
Bug fixes:
Fixes previously unsound reverse suffix and inner optimizations.
v1.13.0Compare Source
===================
This release includes a new API, a
regex!macro, for lazy compilation ofa regex from a string literal. If you use regexes a lot, it's likely you've
already written one exactly like it. The new macro can be used like this:
Improvements:
Add a new
regex!macro for efficient and automatic reuse of a compiled regex.v1.12.4Compare Source
===================
This release includes a performance optimization for compilation of regexes
with very large character classes.
Improvements:
Avoid re-canonicalizing the entire interval set when pushing new class ranges.
v1.12.3Compare Source
===================
This release excludes some unnecessary things from the archive published to
crates.io. Specifically, fuzzing data and various shell scripts are now
excluded. If you run into problems, please file an issue.
Improvements:
Switch from a Cargo
excludelist to anincludelist, and exclude someunnecessary stuff.
famedly/rust-telemetry (rust-telemetry)
v1.4.1Compare Source
Documentation
Miscellaneous Tasks
Refactor
serde-rs/serde (serde)
v1.0.229Compare Source
serde-rs/json (serde_json)
v1.0.154Compare Source
v1.0.153Compare Source
v1.0.152Compare Source
-0in arbitrary_precision mode (#1346, thanks @yuxi-liu-wired)v1.0.151Compare Source
v1.0.150Compare Source
time-rs/time (time)
v0.3.55Compare Source
Fixed
DateIter::nth, ensuring correct behavior.led to some valid values being parsed incorrectly and others being rejected.
UtcOffset.OffsetDateTime::from_unix_timestamp_nanosandUtcDateTime::from_unix_timestamp_nanoscorrectlyreturn
Nonefor all out-of-range values, rather than unexpectedly panicking in some situations.OffsetDateTime::checked_to_offsetandUtcDateTime::checked_to_offsetcorrectly returnNonefor all out-of-range values, rather than unexpectedly panicking in some situations.
v0.3.54Compare Source
Added
PrimitiveDateTimehas been renamed toPlainDateTime.Durationhas been renamed toSignedDuration.Date,Month, andWeekday. Relevant iterator methods have beenoverridden to ensure maximum performance.
For both
PlainDateTimeandSignedDuration, a non-deprecated type alias has been added forbackwards compatibility. The new names should be preferred.
Changed
powerfmtimplementations) for various types has been changedto
()and made public. This guarantees that no additional metadata will be present.Performance
v0.3.53Compare Source
There are no publicly-facing changes in this release. It solely works around the
cookiecraterelying on an implementation detail of
timethat was never part of the public API (and thussubject to semver guarantees). The internal API has been reverted to the extent necessary for
cookieto compile. This measure is temporary; the internal change will be re-applied in anyet-to-be-determined future release.
v0.3.52Compare Source
Fixed
time!macro are parsed using the textual representation, ensuringaccuracy. Previously, they were parsed using the floating point representation, which could result
in a loss of precision and even invalid values.
date!macro could previously create an invalid value that would then panic at compile time.The macro now emits a proper error instead.
returns an error as intended.
Added
v0.3.51Compare Source
Fixed
timecompiles withmacrosenabled. This version is otherwise identical to v0.3.50.v0.3.50Compare Source
Fixed
timecompiles withmacrosenabled. This version is otherwise identical to v0.3.50.v0.3.49Compare Source
Fixed
compiling. A patch has been added that avoids triggering the bug.
v0.3.48Compare Source
This version was yanked due to a bug in the Rust compiler.
Security
[subsecond digits:1+]is capped at 32 to avoid parsing unboundeduser input. Digits after the 9th have no semantic meaning.
#[repr]forWeekday. The value of the variants is relied upon in multiplelocations for soundness. The practical effect of this change is nothing, as Rust has always mapped
C-like
enums to 0..N in memory.Compatibility
format and parse valid UTF-8.
format_description::parseis deprecated. It is recommended to useformat_description::parse_borrowed::<3>orformat_description::parse_owned::<3>.Added
unitmodule have a generic parameter, though this is currently not used formuch. Usage will be expanded in the future.
unitmodule and the genericUnittype are permitted.rand0.10[ignore]requires that the remaining inputnot begin mid-codepoint.
format:falseis supported on[optional]components. This is not possible in version 1 andversion 2 format descriptions due to API compatibility.
time::serde::format_description!macro uses a new, clearer syntax for version 3.time::serde::format_description!(mod foo [Date] = "[year]-[month]-[day]");scope. You must import it yourself.
case-sensitivity when parsing a numerical month.
[year]defaults torange:standardChanged
convertmodule has been renamed tounit.Fixed
Tin ISO 8601unintentionally prohibited this.
strftimeformat descriptions but the component is not. Thiswould previously panic.
Performance
Huge performance gains across multiple areas, including:
DurationDisplayimpls for all major typesstrftimeparsingDepending on the area, gains range from 3× to even 11×.
tokio-rs/tokio (tokio)
v1.54.1: Tokio v1.54.1Compare Source
1.54.1 (October 21st, 2026)
Fixed
v1.54.0: Tokio v1.54.0Compare Source
1.54.0 (October 19th, 2026)
The 1.54.0 release includes all changes up to 1.53.3.
The MSRV is increased to 1.85. (#8514)
Added
File::set_times,File::set_modified, andfs::FileTimes(#8504)Defaultfornamed_pipe::{ClientOptions, ServerOptions}(#8378)Builder::max_io_events_per_busy_tick(#8410)tokio::runtime::worker_index()(#8431)SemaphorePermit::semaphore()(#8482)blocking_acquiremethods toSemaphore(#8269)watch::Receiver::is_closed(#8481)wasm32-unknown-emscriptentarget (#8281, #8422, #8528, #8628)Changed
File::set_max_buf_size(#8449)copy_bufcooperative (#8459)BufReaderorBufStreamis created with zero capacity (#8494)copy_bidirectional_with_sizes(#8454)Sink(#8663)UnixStream::pairandUnixDatagram::pairsockets as writable (#8444)UCredon Fuchsia (#8257)mio::unix::pipefor Unix child stdio (#8603)enable_ioavailable wheneverrtis enabled (#8387)block_in_placesetup into a non-generic function (#8315)max_io_events_per_tickis zero (#8476).awaitin nestedblock_onpanic message (#8501)Notify(#8325)Fixed
Fileinternal state when op fails (#8291)copy_buf(#8424)ScheduledIotick in readiness events (#8331)ErrorKind::Interruptedin more I/O operations (#8417, #8432, #8448, #8453, #8455, #8460)spawn_mandatory_blockingfor stdout and stderr (#8506)BufReaderseeks (#8599)CreateFileWhandle onSetNamedPipeHandleStatefailure (#8418)TcpSocketandUnixSocketlisten backlog (#8511)ENOTCONNas success inUnixStream::shutdown(#8526)--all-featureswithouttokio_unstable(#8401)shutdown_timeout()(#8497)spawn_blockinghang when only scheduler workers exist (#8408)usizefor permit count inSemaphorePermit(#8405)Unstable
io_uringhas no IO driver (#8165)spawn_blockingqueue (#8337)Documented
tokio::fs(#8265)from_raw_handle(#8378)TcpStream::connectreturns only the last error (#8421)runtime::Builder(#8297)available_parallelismin worker count docs (#8625)broadcast::channel()(#8420)Semaphoredocumentation (#8521)v1.53.3: Tokio v1.53.3Compare Source
1.53.3 (October 13th, 2026)
Added
AsyncFd::registerandAsyncFd::register_with_interest(#8587)Changed
AsyncFd::{new, with_interest, try_new, try_with_interest}(#8587)Fixed
DuplexStreamwakers outside the lock (#8618)unreachable_codeinjoin!andtry_join!forInfallible(#8518)current_thread(#8595)Fixed (unstable)
io_uringop alive when submission fails after push (#8185)v1.53.2: Tokio v1.53.2Compare Source
1.53.2 (October 3rd, 2026)
Fixed
AsyncFdregistration list on deregister" (#8540)Permitbefore sending value (#8560)MAX_PERMITSinSemaphore::acquire(#8548)Sender::closedoutside mutex (#8558)JoinSet(#8554)clear_entry(#8552)Fixed (unstable)
io_uringread length tou32::MAX(#8572)current_threadtask dumps from other runtimes (#8544)io_uringcontext if a completion waker panics (#8566)v1.53.1: Tokio v1.53.1Compare Source
1.53.1 (July 20th, 2026)
Fixed
OnceLock::waitfrom the Windows handler ([#8300])Fixed (unstable)
Documented
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.