Update Rust crate time to v0.3.55 #14

Open
noplife wants to merge 1 commit from renovate/time-0.x into master
Collaborator

This PR contains the following updates:

Package Type Update Change
time (source) dependencies patch =0.3.47=0.3.55

⚠️ Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

time-rs/time (time)

v0.3.55

Compare Source

Fixed
  • Avoid underflow in DateIter::nth, ensuring correct behavior.
  • Avoid overflow when deserializing timestamps.
  • Handle out-of-bounds data when deserializing.
  • Don't assume that the format being deserialized was generated by the serializer; this previously
    led to some valid values being parsed incorrectly and others being rejected.
  • No longer silence errors when deserializing UtcOffset.
  • OffsetDateTime::from_unix_timestamp_nanos and UtcDateTime::from_unix_timestamp_nanos correctly
    return None for all out-of-range values, rather than unexpectedly panicking in some situations.
  • OffsetDateTime::checked_to_offset and UtcDateTime::checked_to_offset correctly return None
    for all out-of-range values, rather than unexpectedly panicking in some situations.

v0.3.54

Compare Source

Added
  • PrimitiveDateTime has been renamed to PlainDateTime.
  • Duration has been renamed to SignedDuration.
  • Iteration is now possible over Date, Month, and Weekday. Relevant iterator methods have been
    overridden to ensure maximum performance.

For both PlainDateTime and SignedDuration, a non-deprecated type alias has been added for
backwards compatibility. The new names should be preferred.

Changed
  • The associated metadata type (for powerfmt implementations) for various types has been changed
    to () and made public. This guarantees that no additional metadata will be present.
Performance
  • More gains when parsing RFC 2822.

v0.3.53

Compare Source

There are no publicly-facing changes in this release. It solely works around the cookie crate
relying on an implementation detail of time that was never part of the public API (and thus
subject to semver guarantees). The internal API has been reverted to the extent necessary for
cookie to compile. This measure is temporary; the internal change will be re-applied in an
yet-to-be-determined future release.

v0.3.52

Compare Source

Fixed
  • Subsecond values in the time! macro are parsed using the textual representation, ensuring
    accuracy. Previously, they were parsed using the floating point representation, which could result
    in a loss of precision and even invalid values.
  • The date! macro could previously create an invalid value that would then panic at compile time.
    The macro now emits a proper error instead.
  • When parsing an invalid format description, an edge case would inadvertently panic. This now
    returns an error as intended.
Added
  • Support default values when parsing

v0.3.51

Compare Source

Fixed
  • time compiles with macros enabled. This version is otherwise identical to v0.3.50.

v0.3.50

Compare Source

Fixed
  • time compiles with macros enabled. This version is otherwise identical to v0.3.50.

v0.3.49

Compare Source

Fixed
  • Due to a long-standing bug in the Rust compiler, v0.3.48 caused a number of crates to stop
    compiling. A patch has been added that avoids triggering the bug.

v0.3.48

Compare Source

This version was yanked due to a bug in the Rust compiler.

Security
  • The number of digits parsed by [subsecond digits:1+] is capped at 32 to avoid parsing unbounded
    user input. Digits after the 9th have no semantic meaning.
  • Explicitly specify #[repr] for Weekday. The value of the variants is relied upon in multiple
    locations for soundness. The practical effect of this change is nothing, as Rust has always mapped
    C-like enums to 0..N in memory.
Compatibility
  • Non-UTF-8 formatting and parsing is deprecated without replacement. It is recommended to only
    format and parse valid UTF-8.
  • format_description::parse is deprecated. It is recommended to use
    format_description::parse_borrowed::<3> or format_description::parse_owned::<3>.
Added
  • All types in the unit module have a generic parameter, though this is currently not used for
    much. Usage will be expanded in the future.
  • Comparisons between types in the unit module and the generic Unit type are permitted.
  • Support for rand 0.10
  • Version 3 format descriptions
    • Only UTF-8 is supported. As a side effect of this, [ignore] requires that the remaining input
      not begin mid-codepoint.
    • Representation is deliberately opaque to allow for arbitrary changes going forward.
    • format:false is supported on [optional] components. This is not possible in version 1 and
      version 2 format descriptions due to API compatibility.
    • The time::serde::format_description! macro uses a new, clearer syntax for version 3.
      • time::serde::format_description!(mod foo [Date] = "[year]-[month]-[day]");
      • Unlike version 1 and version 2 format descriptions, the type is not automatically brought into
        scope. You must import it yourself.
    • Nonsensical combinations of modifiers are rejected. For example, you cannot specify
      case-sensitivity when parsing a numerical month.
    • [year] defaults to range:standard
    • Components and modifiers are case sensitive (and always lowercase).
Changed
  • The convert module has been renamed to unit.
Fixed
  • Macro hygiene has been improved by specifying re-exports.
  • Fix handling of T in ISO 8601
  • Support parsing the full range of UTC offset hours
  • Version 1 nested format descriptions may now start with a component. Previously, a lexer bug
    unintentionally prohibited this.
  • Error when ISO week date overflows the max year. This would previously panic.
  • Error when padding is specified in strftime format descriptions but the component is not. This
    would previously panic.
Performance

Huge performance gains across multiple areas, including:

  • optimizing equality checks for Duration
  • optimizing Display impls for all major types
  • optimizing the formatting of components and well-known formats
  • precomputing metadata when formatting, reducing allocations
  • adding fast path for typical RFC 2822 usage
  • optimizing strftime parsing
  • refactoring format description parsing

Depending on the area, gains range from 3× to even 11×.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [time](https://time-rs.github.io) ([source](https://github.com/time-rs/time)) | dependencies | patch | `=0.3.47` → `=0.3.55` | --- > ⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/16) for more information. --- ### Release Notes <details> <summary>time-rs/time (time)</summary> ### [`v0.3.55`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0355-2026-08-01) [Compare Source](https://github.com/time-rs/time/compare/v0.3.54...v0.3.55) ##### Fixed - Avoid underflow in `DateIter::nth`, ensuring correct behavior. - Avoid overflow when deserializing timestamps. - Handle out-of-bounds data when deserializing. - Don't assume that the format being deserialized was generated by the serializer; this previously led to some valid values being parsed incorrectly and others being rejected. - No longer silence errors when deserializing `UtcOffset`. - `OffsetDateTime::from_unix_timestamp_nanos` and `UtcDateTime::from_unix_timestamp_nanos` correctly return `None` for all out-of-range values, rather than unexpectedly panicking in some situations. - `OffsetDateTime::checked_to_offset` and `UtcDateTime::checked_to_offset` correctly return `None` for all out-of-range values, rather than unexpectedly panicking in some situations. ### [`v0.3.54`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0354-2026-07-20) [Compare Source](https://github.com/time-rs/time/compare/v0.3.53...v0.3.54) ##### Added - `PrimitiveDateTime` has been renamed to `PlainDateTime`. - `Duration` has been renamed to `SignedDuration`. - Iteration is now possible over `Date`, `Month`, and `Weekday`. Relevant iterator methods have been overridden to ensure maximum performance. For both `PlainDateTime` and `SignedDuration`, a non-deprecated type alias has been added for backwards compatibility. The new names should be preferred. ##### Changed - The associated metadata type (for `powerfmt` implementations) for various types has been changed to `()` and made public. This guarantees that no additional metadata will be present. ##### Performance - More gains when parsing RFC 2822. ### [`v0.3.53`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0353-2026-07-01) [Compare Source](https://github.com/time-rs/time/compare/v0.3.52...v0.3.53) There are no publicly-facing changes in this release. It solely works around the `cookie` crate relying on an implementation detail of `time` that was never part of the public API (and thus subject to semver guarantees). The internal API has been reverted to the extent necessary for `cookie` to compile. This measure is temporary; the internal change will be re-applied in an yet-to-be-determined future release. ### [`v0.3.52`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0352-2026-06-30) [Compare Source](https://github.com/time-rs/time/compare/v0.3.51...v0.3.52) ##### Fixed - Subsecond values in the `time!` macro are parsed using the textual representation, ensuring accuracy. Previously, they were parsed using the floating point representation, which could result in a loss of precision and even invalid values. - The `date!` macro could previously create an invalid value that would then panic at compile time. The macro now emits a proper error instead. - When parsing an invalid format description, an edge case would inadvertently panic. This now returns an error as intended. ##### Added - Support default values when parsing ### [`v0.3.51`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0351-2026-06-22) [Compare Source](https://github.com/time-rs/time/compare/v0.3.50...v0.3.51) ##### Fixed - `time` compiles with `macros` enabled. This version is otherwise identical to v0.3.50. ### [`v0.3.50`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0351-2026-06-22) [Compare Source](https://github.com/time-rs/time/compare/v0.3.49...v0.3.50) ##### Fixed - `time` compiles with `macros` enabled. This version is otherwise identical to v0.3.50. ### [`v0.3.49`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0349-2026-06-13) [Compare Source](https://github.com/time-rs/time/compare/v0.3.48...v0.3.49) ##### Fixed - Due to a long-standing bug in the Rust compiler, v0.3.48 caused a number of crates to stop compiling. A patch has been added that avoids triggering the bug. ### [`v0.3.48`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0348-2026-06-12-YANKED) [Compare Source](https://github.com/time-rs/time/compare/v0.3.47...v0.3.48) *This version was yanked due to a bug in the Rust compiler.* ##### Security - The number of digits parsed by `[subsecond digits:1+]` is capped at 32 to avoid parsing unbounded user input. Digits after the 9<sup>th</sup> have no semantic meaning. - Explicitly specify `#[repr]` for `Weekday`. The value of the variants is relied upon in multiple locations for soundness. The practical effect of this change is nothing, as Rust has always mapped C-like `enum`s to 0..N in memory. ##### Compatibility - Non-UTF-8 formatting and parsing is deprecated without replacement. It is recommended to only format and parse valid UTF-8. - `format_description::parse` is deprecated. It is recommended to use `format_description::parse_borrowed::<3>` or `format_description::parse_owned::<3>`. ##### Added - All types in the `unit` module have a generic parameter, though this is currently not used for much. Usage will be expanded in the future. - Comparisons between types in the `unit` module and the generic `Unit` type are permitted. - Support for `rand` 0.10 - Version 3 format descriptions - Only UTF-8 is supported. As a side effect of this, `[ignore]` requires that the remaining input not begin mid-codepoint. - Representation is deliberately opaque to allow for arbitrary changes going forward. - `format:false` is supported on `[optional]` components. This is not possible in version 1 and version 2 format descriptions due to API compatibility. - The `time::serde::format_description!` macro uses a new, clearer syntax for version 3. - `time::serde::format_description!(mod foo [Date] = "[year]-[month]-[day]");` - Unlike version 1 and version 2 format descriptions, the type is not automatically brought into scope. You must import it yourself. - Nonsensical combinations of modifiers are rejected. For example, you cannot specify case-sensitivity when parsing a numerical month. - `[year]` defaults to `range:standard` - Components and modifiers are case sensitive (and always lowercase). ##### Changed - The `convert` module has been renamed to `unit`. ##### Fixed - Macro hygiene has been improved by specifying re-exports. - Fix handling of `T` in ISO 8601 - Support parsing the full range of UTC offset hours - Version 1 nested format descriptions may now start with a component. Previously, a lexer bug unintentionally prohibited this. - Error when ISO week date overflows the max year. This would previously panic. - Error when padding is specified in `strftime` format descriptions but the component is not. This would previously panic. ##### Performance Huge performance gains across multiple areas, including: - optimizing equality checks for `Duration` - optimizing `Display` impls for all major types - optimizing the formatting of components and well-known formats - precomputing metadata when formatting, reducing allocations - adding fast path for typical RFC 2822 usage - optimizing `strftime` parsing - refactoring format description parsing Depending on the area, gains range from 3× to even 11×. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **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. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI4MS4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
noplife force-pushed renovate/time-0.x from 3c59a5b368 to 844d565dfc 2026-07-27 07:38:35 +00:00 Compare
noplife force-pushed renovate/time-0.x from 844d565dfc to 2b9533e66f 2026-07-27 13:55:48 +00:00 Compare
noplife force-pushed renovate/time-0.x from 2b9533e66f to 56083fedac
Some checks failed
CI/CD Pipeline / Test (pull_request) Failing after 2s
CI/CD Pipeline / Security Audit (pull_request) Failing after 2s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
2026-07-27 15:27:03 +00:00
Compare
noplife force-pushed renovate/time-0.x from 56083fedac
Some checks failed
CI/CD Pipeline / Test (pull_request) Failing after 2s
CI/CD Pipeline / Security Audit (pull_request) Failing after 2s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
to 8f5bebfb17
Some checks failed
CI/CD Pipeline / Security Audit (pull_request) Failing after 5s
CI/CD Pipeline / Test (pull_request) Failing after 5s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
2026-07-28 04:26:00 +00:00
Compare
noplife force-pushed renovate/time-0.x from 8f5bebfb17
Some checks failed
CI/CD Pipeline / Security Audit (pull_request) Failing after 5s
CI/CD Pipeline / Test (pull_request) Failing after 5s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
to 7331b93c61
Some checks failed
CI/CD Pipeline / Test (pull_request) Failing after 15s
CI/CD Pipeline / Security Audit (pull_request) Failing after 18s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
2026-07-29 03:43:26 +00:00
Compare
Author
Collaborator

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

### Edited/Blocked Notification Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. ⚠️ **Warning**: custom changes will be lost.
noplife force-pushed renovate/time-0.x from 7331b93c61
Some checks failed
CI/CD Pipeline / Test (pull_request) Failing after 15s
CI/CD Pipeline / Security Audit (pull_request) Failing after 18s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
to ff596a19e0
Some checks failed
CI/CD Pipeline / Security Audit (pull_request) Failing after 3s
CI/CD Pipeline / Test (pull_request) Failing after 3s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
2026-07-30 04:41:00 +00:00
Compare
noplife force-pushed renovate/time-0.x from ff596a19e0
Some checks failed
CI/CD Pipeline / Security Audit (pull_request) Failing after 3s
CI/CD Pipeline / Test (pull_request) Failing after 3s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
to 2c07f9d590
All checks were successful
CI/CD Pipeline / Test (pull_request) Successful in 18m19s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
CI/CD Pipeline / Security Audit (pull_request) Successful in 4m40s
2026-07-31 23:26:18 +00:00
Compare
noplife changed title from Update Rust crate time to v0.3.54 to Update Rust crate time to v0.3.55 2026-08-01 12:21:57 +00:00
noplife force-pushed renovate/time-0.x from 2c07f9d590
All checks were successful
CI/CD Pipeline / Test (pull_request) Successful in 18m19s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
CI/CD Pipeline / Security Audit (pull_request) Successful in 4m40s
to 40ceaa9ced
All checks were successful
CI/CD Pipeline / Security Audit (pull_request) Successful in 5m17s
CI/CD Pipeline / Test (pull_request) Successful in 19m1s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
2026-08-01 12:21:57 +00:00
Compare
All checks were successful
CI/CD Pipeline / Security Audit (pull_request) Successful in 5m17s
CI/CD Pipeline / Test (pull_request) Successful in 19m1s
CI/CD Pipeline / Deploy (pull_request) Has been skipped
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/time-0.x:renovate/time-0.x
git switch renovate/time-0.x

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff renovate/time-0.x
git switch renovate/time-0.x
git rebase master
git switch master
git merge --ff-only renovate/time-0.x
git switch renovate/time-0.x
git rebase master
git switch master
git merge --no-ff renovate/time-0.x
git switch master
git merge --squash renovate/time-0.x
git switch master
git merge --ff-only renovate/time-0.x
git switch master
git merge renovate/time-0.x
git push origin master
Sign in to join this conversation.
No description provided.