chore(deps): update rust crate time to v0.3.43 #27

Open
renovate-bot wants to merge 1 commit from renovate/time-0.x-lockfile into master
Member

This PR contains the following updates:

Package Type Update Change
time (source) dependencies patch 0.3.36 -> 0.3.43

Release Notes

time-rs/time (time)

v0.3.43

Compare Source

Added
  • Support for rand 0.9
Fixed
  • In the convert module, any use of per with types that were not the same (such as
    Nanosecond::per(Second)) would not compile due to a bug. This has been fixed.

v0.3.42

Compare Source

Added
  • Time::duration_until
  • Time::duration_since
  • per_t method for all types in time::convert. This is similar to the existing per method, but
    can return any of the primitive numeric types that can represent the result. This will cut down on
    as casts while ensuring correctness. Type inference isn't perfect, so you may need to provide a
    type annotation in some situations.
  • impl PartialOrd for Month and impl Ord for Month; this assumes the months are in the same year
  • SystemTimeExt trait, adding methods for checked arithmetic with time::Duration and obtaining
    the difference between two SystemTimes as a time::Duration
  • Permit using UtcDateTime with rand (this was inadvertently omitted previously)
  • impl core::error::Error for all error types (now available when the std feature is disabled)
  • MacOS can now obtain the local UTC offset in multi-threaded programs as the system APIs are
    thread-safe.
  • #[track_caller] has been added to all relevant methods.
Changed
  • The minimum supported Rust version is now 1.81.0.
  • The dependency on itoa has been removed, as the standard library now has similar functionality
    by default.
  • Formatting a component that involves a floating point number is now guaranteed to be
    deterministic, avoiding any subtle differences between platforms or compiler versions.
Fixed
  • Serializing timestamps with nanosecond precision should always emit the correct value.
    Previously, it could be off by one nanosecond due to floating point imprecision.
  • A previously unknown bug in OffsetDateTime::to_offset and UtcDateTime::to_offset has been
    fixed. The bug could result in a value that was invalid. It was unlikely to ever occur in
    real-world code, as it involved passing a UTC offset that has never been used in any location.
Miscellaneous
  • The amount of code generated by macros has been massively reduced, on the order of 65-70% for
    typical use cases of format_description!.
  • Significant performance gains for comparisons of Time, PrimitiveDateTime, UtcDateTime, and
    OffsetDateTime. The first three have gains of approximately 85% (i.e. 6× faster).
  • Nearly all methods are #[inline].

v0.3.41

Compare Source

Fixed
  • Compatibility with the latest release of deranged. This fix is permanent and covers future
    similar changes upstream.

v0.3.40

Compare Source

Added
  • Visibility modifiers may now be added to the mod generated by time::sere::format_description!.

v0.3.39

Compare Source

Fixed
  • Doc tests run successfully with the default feature set.
  • wasm builds work again.

Both of these were regressions in v0.3.38 and are now checked in CI.

v0.3.38

Compare Source

Added
  • The [year] component (in format descriptions) now supports a range modifier, which can be
    either standard or extended. The default is extended for backwards compatibility. This is
    intended as a manner to opt out of the extended range when the large-dates feature is enabled.
    When the large-dates feature is not enabled, the modifier has no effect.

  • UtcDateTime, which is semantically equivalent to an OffsetDateTime with UTC as its offset. The
    advantage is that it is the same size as a PrimitiveDateTime and has improved operability with
    well-known formats.

    As part of this, there were some other additions:

    • utc_datetime! macro, which is similar to the datetime! macro but constructs a UtcDateTime.
    • PrimitiveDateTime::as_utc
    • OffsetDateTime::to_utc
    • OffsetDateTime::checked_to_utc
  • time::serde::timestamp::milliseconds_i64, which is a module to serialize/deserialize timestamps
    as the Unix timestamp. The pre-existing module does this as an i128 where an i64 would
    suffice. This new module should be preferred.

Changed
  • error::Format has had its source() implementation changed to no longer return a boxed value
    from the ComponentRange variant. If you were explicitly expecting this, you will need to update
    your code. The method API remains unchanged.
  • [year repr:century] supports single-digit values.
  • All format_into methods accept ?Sized references.
Miscellaneous
  • Some non-exhaustive enum variants that are no longer used have been modified to be statically
    proven as uninhabited. The relevant fields are doc-hidden and not semver-guaranteed to remain as
    such, though it is unlikely to change.
  • An unnecessary check when parsing RFC 2822 has been removed.
  • Various methods have had their implementations changed, resulting in significant performance
    gains. Among the methods changed are
    • util::is_leap_year
    • util::weeks_in_year
    • Month::length
    • Date::to_calendar_date
    • Date::month
    • Date::day
    • Date::from_julian_day
    • Date::to_julian_day
    • other methods that call into these methods

v0.3.37

Compare Source

Added
  • Time::MAX, equivalent to time!(23:59:59.999999999)
  • [year repr:century] is now supported in format descriptions. When used in conjunction with
    [year repr:last_two], there is sufficient information to parse a date. Note that with the
    large-date feature enabled, there is an ambiguity when parsing the two back-to-back.
  • Parsing of strftime-style format descriptions, located at
    time::format_description::parse_strftime_borrowed and
    time::format_description::parse_strftime_owned
  • time::util::refresh_tz and time::util::refresh_tz_unchecked, which updates information
    obtained via the TZ environment variable. This is equivalent to the tzset syscall on Unix-like
    systems, with and without built-in soundness checks, respectively.
  • Month::length and util::days_in_month, replacing util::days_in_year_month.
  • Expressions are permitted in time::serde::format_description! rather than only paths. This also
    drastically improves diagnostics when an invalid value is provided.
Changed
  • Obtaining the system UTC offset on Unix-like systems should now succeed when multi-threaded.
    However, if the TZ environment variable is altered, the program will not be aware of this until
    time::util::refresh_tz or time::util::refresh_tz_unchecked is called. refresh_tz has the
    same soundness requirements as obtaining the system UTC offset previously did, with the
    requirements still being automatically enforced. refresh_tz_unchecked does not enforce these
    requirements at the expense of being unsafe. Most programs should not need to call either
    function.

    Due to this change, the time::util::local_offset module has been deprecated in its entirety. The
    get_soundness and set_soundness functions are now no-ops.

    Note that while calls should succeed, success is not guaranteed in any situation. Downstream
    users should always be prepared to handle the error case.

Fixed
  • Floating point values are truncated, not rounded, when formatting.
  • RFC3339 allows arbitrary separators between the date and time components.
  • Serialization of negative Durations less than one second is now correct. It previously omitted
    the negative sign.
  • From<js_sys::Date> for OffsetDateTime now ensures sub-millisecond values are not erroneously
    returned.

Configuration

📅 Schedule: 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 becomes conflicted, 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 Renovate Bot.

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.36` -> `0.3.43` | --- ### Release Notes <details> <summary>time-rs/time (time)</summary> ### [`v0.3.43`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0343-2025-09-02) [Compare Source](https://github.com/time-rs/time/compare/v0.3.42...v0.3.43) ##### Added - Support for `rand` 0.9 ##### Fixed - In the `convert` module, any use of `per` with types that were not the same (such as `Nanosecond::per(Second)`) would not compile due to a bug. This has been fixed. ### [`v0.3.42`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0342-2025-08-31) [Compare Source](https://github.com/time-rs/time/compare/v0.3.41...v0.3.42) ##### Added - `Time::duration_until` - `Time::duration_since` - `per_t` method for all types in `time::convert`. This is similar to the existing `per` method, but can return any of the primitive numeric types that can represent the result. This will cut down on `as` casts while ensuring correctness. Type inference isn't perfect, so you may need to provide a type annotation in some situations. - `impl PartialOrd for Month` and `impl Ord for Month`; this assumes the months are in the same year - `SystemTimeExt` trait, adding methods for checked arithmetic with `time::Duration` and obtaining the difference between two `SystemTime`s as a `time::Duration` - Permit using `UtcDateTime` with `rand` (this was inadvertently omitted previously) - `impl core::error::Error` for all error types (now available when the `std` feature is disabled) - MacOS can now obtain the local UTC offset in multi-threaded programs as the system APIs are thread-safe. - `#[track_caller]` has been added to all relevant methods. ##### Changed - The minimum supported Rust version is now 1.81.0. - The dependency on `itoa` has been removed, as the standard library now has similar functionality by default. - Formatting a component that involves a floating point number is now guaranteed to be deterministic, avoiding any subtle differences between platforms or compiler versions. ##### Fixed - Serializing timestamps with nanosecond precision *should* always emit the correct value. Previously, it could be off by one nanosecond due to floating point imprecision. - A previously unknown bug in `OffsetDateTime::to_offset` and `UtcDateTime::to_offset` has been fixed. The bug could result in a value that was invalid. It was unlikely to ever occur in real-world code, as it involved passing a UTC offset that has never been used in any location. ##### Miscellaneous - The amount of code generated by macros has been massively reduced, on the order of 65-70% for typical use cases of `format_description!`. - Significant performance gains for comparisons of `Time`, `PrimitiveDateTime`, `UtcDateTime`, and `OffsetDateTime`. The first three have gains of approximately 85% (i.e. 6× faster). - Nearly all methods are `#[inline]`. ### [`v0.3.41`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0341-2025-03-23) [Compare Source](https://github.com/time-rs/time/compare/v0.3.40...v0.3.41) ##### Fixed - Compatibility with the latest release of `deranged`. This fix is permanent and covers future similar changes upstream. ### [`v0.3.40`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0340-2025-03-18) [Compare Source](https://github.com/time-rs/time/compare/v0.3.39...v0.3.40) ##### Added - Visibility modifiers may now be added to the `mod` generated by `time::sere::format_description!`. ### [`v0.3.39`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0339-2025-03-06) [Compare Source](https://github.com/time-rs/time/compare/v0.3.38...v0.3.39) ##### Fixed - Doc tests run successfully with the default feature set. - wasm builds work again. Both of these were regressions in v0.3.38 and are now checked in CI. ### [`v0.3.38`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0338-2025-03-05) [Compare Source](https://github.com/time-rs/time/compare/v0.3.37...v0.3.38) ##### Added - The `[year]` component (in format descriptions) now supports a `range` modifier, which can be either `standard` or `extended`. The default is `extended` for backwards compatibility. This is intended as a manner to opt *out* of the extended range when the `large-dates` feature is enabled. When the `large-dates` feature is not enabled, the modifier has no effect. - `UtcDateTime`, which is semantically equivalent to an `OffsetDateTime` with UTC as its offset. The advantage is that it is the same size as a `PrimitiveDateTime` and has improved operability with well-known formats. As part of this, there were some other additions: - `utc_datetime!` macro, which is similar to the `datetime!` macro but constructs a `UtcDateTime`. - `PrimitiveDateTime::as_utc` - `OffsetDateTime::to_utc` - `OffsetDateTime::checked_to_utc` - `time::serde::timestamp::milliseconds_i64`, which is a module to serialize/deserialize timestamps as the Unix timestamp. The pre-existing module does this as an `i128` where an `i64` would suffice. This new module should be preferred. ##### Changed - `error::Format` has had its `source()` implementation changed to no longer return a boxed value from the `ComponentRange` variant. If you were explicitly expecting this, you will need to update your code. The method API remains unchanged. - `[year repr:century]` supports single-digit values. - All `format_into` methods accept `?Sized` references. ##### Miscellaneous - Some non-exhaustive enum variants that are no longer used have been modified to be statically proven as uninhabited. The relevant fields are doc-hidden and not semver-guaranteed to remain as such, though it is unlikely to change. - An unnecessary check when parsing RFC 2822 has been removed. - Various methods have had their implementations changed, resulting in significant performance gains. Among the methods changed are - `util::is_leap_year` - `util::weeks_in_year` - `Month::length` - `Date::to_calendar_date` - `Date::month` - `Date::day` - `Date::from_julian_day` - `Date::to_julian_day` - other methods that call into these methods ### [`v0.3.37`](https://github.com/time-rs/time/blob/HEAD/CHANGELOG.md#0337-2024-12-03) [Compare Source](https://github.com/time-rs/time/compare/v0.3.36...v0.3.37) ##### Added - `Time::MAX`, equivalent to `time!(23:59:59.999999999)` - `[year repr:century]` is now supported in format descriptions. When used in conjunction with `[year repr:last_two]`, there is sufficient information to parse a date. Note that with the `large-date` feature enabled, there is an ambiguity when parsing the two back-to-back. - Parsing of `strftime`-style format descriptions, located at `time::format_description::parse_strftime_borrowed` and `time::format_description::parse_strftime_owned` - `time::util::refresh_tz` and `time::util::refresh_tz_unchecked`, which updates information obtained via the `TZ` environment variable. This is equivalent to the `tzset` syscall on Unix-like systems, with and without built-in soundness checks, respectively. - `Month::length` and `util::days_in_month`, replacing `util::days_in_year_month`. - Expressions are permitted in `time::serde::format_description!` rather than only paths. This also drastically improves diagnostics when an invalid value is provided. ##### Changed - Obtaining the system UTC offset on Unix-like systems should now succeed when multi-threaded. However, if the `TZ` environment variable is altered, the program will not be aware of this until `time::util::refresh_tz` or `time::util::refresh_tz_unchecked` is called. `refresh_tz` has the same soundness requirements as obtaining the system UTC offset previously did, with the requirements still being automatically enforced. `refresh_tz_unchecked` does not enforce these requirements at the expense of being `unsafe`. Most programs should not need to call either function. Due to this change, the `time::util::local_offset` module has been deprecated in its entirety. The `get_soundness` and `set_soundness` functions are now no-ops. Note that while calls *should* succeed, success is not guaranteed in any situation. Downstream users should always be prepared to handle the error case. ##### Fixed - Floating point values are truncated, not rounded, when formatting. - RFC3339 allows arbitrary separators between the date and time components. - Serialization of negative `Duration`s less than one second is now correct. It previously omitted the negative sign. - `From<js_sys::Date> for OffsetDateTime` now ensures sub-millisecond values are not erroneously returned. </details> --- ### Configuration 📅 **Schedule**: 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 becomes conflicted, 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 [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44Mi4yIiwidXBkYXRlZEluVmVyIjoiNDEuMTEzLjMiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOlsicmVub3ZhdGUtYm90Il19-->
renovate-bot force-pushed renovate/time-0.x-lockfile from d75f2176ec to ba4c5077c3 2025-03-17 05:14:32 +05:30 Compare
renovate-bot changed title from fix(deps): update rust crate time to v0.3.37 to fix(deps): update rust crate time to v0.3.39 2025-03-17 05:14:33 +05:30
renovate-bot changed title from fix(deps): update rust crate time to v0.3.39 to fix(deps): update rust crate time to v0.3.41 2025-03-24 05:16:41 +05:30
renovate-bot force-pushed renovate/time-0.x-lockfile from ba4c5077c3 to 6b3af21e95 2025-03-24 05:16:41 +05:30 Compare
renovate-bot force-pushed renovate/time-0.x-lockfile from 6b3af21e95 to ca0272ae84 2025-09-01 05:17:29 +05:30 Compare
renovate-bot changed title from fix(deps): update rust crate time to v0.3.41 to fix(deps): update rust crate time to v0.3.42 2025-09-01 05:17:30 +05:30
renovate-bot force-pushed renovate/time-0.x-lockfile from ca0272ae84 to e5ee5978d1 2025-09-08 05:17:20 +05:30 Compare
renovate-bot changed title from fix(deps): update rust crate time to v0.3.42 to fix(deps): update rust crate time to v0.3.43 2025-09-08 05:17:22 +05:30
renovate-bot changed title from fix(deps): update rust crate time to v0.3.43 to chore(deps): update rust crate time to v0.3.43 2025-09-15 05:17:39 +05:30
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-lockfile:renovate/time-0.x-lockfile
git switch renovate/time-0.x-lockfile

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-lockfile
git switch renovate/time-0.x-lockfile
git rebase master
git switch master
git merge --ff-only renovate/time-0.x-lockfile
git switch renovate/time-0.x-lockfile
git rebase master
git switch master
git merge --no-ff renovate/time-0.x-lockfile
git switch master
git merge --squash renovate/time-0.x-lockfile
git switch master
git merge --ff-only renovate/time-0.x-lockfile
git switch master
git merge renovate/time-0.x-lockfile
git push origin master
Sign in to join this conversation.
No description provided.