chore(deps): update rust crate time to v0.3.55 - #2102
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/time-0.x-lockfile
branch
from
October 1, 2026 08:17
6a3069d to
af30d42
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.3.45→0.3.55Release Notes
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
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×.
v0.3.47Compare Source
Security
The possibility of a stack exhaustion denial of service attack when parsing RFC 2822 has been
eliminated. Previously, it was possible to craft input that would cause unbounded recursion. Now,
the depth of the recursion is tracked, causing an error to be returned if it exceeds a reasonable
limit.
This attack vector requires parsing user-provided input, with any type, using the RFC 2822 format.
Compatibility
error at compile time if the type being formatted does not provide sufficient information. This
would previously fail at runtime. Similarly, attempting to format a value with ISO 8601 that is
only configured for parsing (i.e.
Iso8601::PARSING) will error at compile time.Added
when done manually.
date!(2026-W01-2)is now supported. Previously, a space was required betweenWand01.[end]now has atrailing_inputmodifier which can either beprohibit(the default) ordiscard. When it isdiscard, all remaining input is ignored. Note that if there are componentsafter
[end], they will still attempt to be parsed, likely resulting in an error.Changed
Fixed
This has been fixed such that the number of bytes written is always correct.
eliminated. This would previously wrap when overflow checks were disabled. Instead of storing the
depth as
u8, it is stored asu32. This would require multiple gigabytes of nested input tooverflow, at which point we've got other problems and trivial mitigations are available by
downstream users.
v0.3.46Compare Source
Added
All possible panics are now documented for the relevant methods.
The need to use
#[serde(default)]when using customserdeformats is documented. This appliesonly when deserializing an
Option<T>.Duration::nanoseconds_i128has been made public, mirroringstd::time::Duration::from_nanos_u128.Various methods for truncating components have been added, avoiding the need to call the fallible
replacemethods multiple times.For
PrimitiveDateTime,UtcDateTime, andOffsetDateTime:truncate_to_dayFor
Time,PrimitiveDateTime,UtcDateTime, andOffsetDateTime:truncate_to_hourtruncate_to_minutetruncate_to_secondtruncate_to_millisecondtruncate_to_microsecondChanged
part of this.
error::ComponentRange, along with types that contain it, has been significantlyreduced.
Fixed
PartialOrdandOrdimplementations ofUtcOffsetnow return the expected result.Configuration
📅 Schedule: (UTC)
* 0-3 * * 1)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.