From aa5b112248090cb517b91a489bec1a855ff168df Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 19 Jan 2026 08:50:13 -0600
Subject: [PATCH] Update Rust crate jiff to v0.2.18 (#17559)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [jiff](https://redirect.github.com/BurntSushi/jiff) |
workspace.dependencies | patch | `0.2.16` → `0.2.18` |
---
### Release Notes
BurntSushi/jiff (jiff)
###
[`v0.2.18`](https://redirect.github.com/BurntSushi/jiff/blob/HEAD/CHANGELOG.md#0218-2026-01-05)
[Compare
Source](https://redirect.github.com/BurntSushi/jiff/compare/0.2.17...0.2.18)
\===================
This release ships a sizeable refactor to the RFC 2822, RFC 9110, RC
3339, RFC 9557, ISO 8601 and friendly format printers. Specifically,
they are now all monomorphic internally (instead of being generic over
`jiff::fmt::Write`) and write to uninitialized buffers. This improves
runtime performance (sometimes dramatically so), and to a more modest
degree, decreases binary size and improves compile times.
This release also includes a bug fix where `DateTime::MIN.to_zoned(..)`
could panic.
Enhancements:
- [#460](https://redirect.github.com/BurntSushi/jiff/pull/460):
Improve runtime performance and binary size of RFC 2822 printer.
- [#461](https://redirect.github.com/BurntSushi/jiff/pull/461):
Tweak behavior of printing min/max offsets in RFC 2822 and Temporal
printers.
- [#462](https://redirect.github.com/BurntSushi/jiff/pull/462):
Export fallible constructors for `jiff::SignedDuration`.
- [#465](https://redirect.github.com/BurntSushi/jiff/pull/465):
Improve runtime performance and binary size of the "friendly" duration
printer.
- [#468](https://redirect.github.com/BurntSushi/jiff/pull/468):
Improve runtime performance and binary size of the Temporal ISO 8601
duration
printer.
- [#470](https://redirect.github.com/BurntSushi/jiff/pull/470):
Improve runtime performance and binary size of the Temporal ISO 8601
datetime
printer.
- [#474](https://redirect.github.com/BurntSushi/jiff/pull/474):
Improve runtime performance and binary size of Jiff's `strftime`
implementation.
- [#477](https://redirect.github.com/BurntSushi/jiff/pull/477):
Fix a bug where time zone lookups for `civil::DateTime::MIN` could
panic.
###
[`v0.2.17`](https://redirect.github.com/BurntSushi/jiff/blob/HEAD/CHANGELOG.md#0217-2025-12-24)
[Compare
Source](https://redirect.github.com/BurntSushi/jiff/compare/0.2.16...0.2.17)
\===================
This release contains binary size improvements to Jiff, more succinct
error
messages and some new minor APIs.
While Jiff 1.0 is overdue, I've been doing a lot of experimenting with
improving Jiff's binary size and compile times. In particular, I want to
spend
time doing this before Jiff 1.0 so that we don't box ourselves into a
corner.
(For example, some binary size improvements may require minor API
breaking
changes.)
In this release, Jiff has switched to structured error handling
internally
in an effort to provide error predicates and also hopefully improve
binary
sizes and compile times. Overall this didn't have as big of an impact on
binary sizes or compile times as I was hoping. I did take this
opportunity to
make Jiff's error messages a bit more succinct. In many cases, this
involved
de-duplicating some aspects of error messages and omitting user provided
input
in the messages. If you feel like there is a significant decrease in
error
message quality that isn't easily amended by callers providing
additional
context themselves, please open an issue.
This release also updates Jiff's bundled copy of the \[IANA Time Zone
Database]
to `2025c`. See the [`2025c` release announcement] for more details.
Enhancements:
- [#412](https://redirect.github.com/BurntSushi/jiff/issues/412):
Add `Display`, `FromStr`, `Serialize` and `Deserialize` trait
implementations
for `jiff::civil::ISOWeekDate`. These all use the ISO 8601 week date
format.
- [#418](https://redirect.github.com/BurntSushi/jiff/issues/418):
Add some basic predicates to `jiff::Error` for basic error
introspection.
- [#453](https://redirect.github.com/BurntSushi/jiff/pull/453),
[#454](https://redirect.github.com/BurntSushi/jiff/pull/454):
Switch to structured error handling internally.
- [#456](https://redirect.github.com/BurntSushi/jiff/pull/456),
[#457](https://redirect.github.com/BurntSushi/jiff/pull/457),
[#458](https://redirect.github.com/BurntSushi/jiff/pull/458):
Various improvements to binary size.
[`2025c` release announcement]:
https://lists.iana.org/hyperkitty/list/tz-announce@iana.org/thread/TAGXKYLMAQRZRFTERQ33CEKOW7KRJVAK/
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/astral-sh/uv).
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zanie Blue
---
Cargo.lock | 8 ++++----
crates/uv/tests/it/lock_exclude_newer_relative.rs | 10 +++++-----
crates/uv/tests/it/pip_compile.rs | 2 +-
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 7e93ae2d5..6a660fdfe 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2417,9 +2417,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "jiff"
-version = "0.2.16"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35"
+checksum = "e67e8da4c49d6d9909fe03361f9b620f58898859f5c7aded68351e85e71ecf50"
dependencies = [
"jiff-static",
"jiff-tzdb-platform",
@@ -2432,9 +2432,9 @@ dependencies = [
[[package]]
name = "jiff-static"
-version = "0.2.16"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69"
+checksum = "e0c84ee7f197eca9a86c6fd6cb771e55eb991632f15f2bc3ca6ec838929e6e78"
dependencies = [
"proc-macro2",
"quote",
diff --git a/crates/uv/tests/it/lock_exclude_newer_relative.rs b/crates/uv/tests/it/lock_exclude_newer_relative.rs
index 4eb7723ee..d1867ce38 100644
--- a/crates/uv/tests/it/lock_exclude_newer_relative.rs
+++ b/crates/uv/tests/it/lock_exclude_newer_relative.rs
@@ -997,7 +997,7 @@ fn lock_exclude_newer_relative_values() -> Result<()> {
----- stdout -----
----- stderr -----
- error: invalid value 'P4Z' for '--exclude-newer ': `P4Z` could not be parsed as an ISO 8601 duration: failed to parse "P4Z" as an ISO 8601 duration string: expected to find date unit designator suffix (Y, M, W or D), but found "Z" instead
+ error: invalid value 'P4Z' for '--exclude-newer ': `P4Z` could not be parsed as an ISO 8601 duration: expected to find date unit designator suffix (`Y`, `M`, `W` or `D`), but found `Z` instead
For more information, try '--help'.
"#);
@@ -1039,7 +1039,7 @@ fn lock_exclude_newer_relative_values() -> Result<()> {
----- stdout -----
----- stderr -----
- error: invalid value '2 weak' for '--exclude-newer ': `2 weak` could not be parsed as a duration: failed to parse "2 weak" in the "friendly" format: parsed value 'P2W', but unparsed input "eak" remains (expected no unparsed input)
+ error: invalid value '2 weak' for '--exclude-newer ': `2 weak` could not be parsed as a duration: failed to parse input in the "friendly" duration format: parsed value 'P2W', but unparsed input "eak" remains (expected no unparsed input)
For more information, try '--help'.
"#);
@@ -1067,7 +1067,7 @@ fn lock_exclude_newer_relative_values() -> Result<()> {
----- stdout -----
----- stderr -----
- error: invalid value '1000000 years' for '--exclude-newer ': `1000000 years` could not be parsed as a duration: failed to parse "1000000 years" in the "friendly" format: failed to set value 1000000 as year unit on span: parameter 'years' with value 1000000 is not in the required range of -19998..=19998
+ error: invalid value '1000000 years' for '--exclude-newer ': `1000000 years` could not be parsed as a duration: failed to parse input in the "friendly" duration format: failed to set value for year unit on span: parameter 'years' with value 1000000 is not in the required range of -19998..=19998
For more information, try '--help'.
"#);
@@ -1135,7 +1135,7 @@ fn lock_exclude_newer_relative_values_pyproject() -> Result<()> {
|
9 | exclude-newer = "2 foos"
| ^^^^^^^^
- `2 foos` could not be parsed as a duration: failed to parse "2 foos" in the "friendly" format: expected to find unit designator suffix (e.g., 'years' or 'secs'), but found input beginning with "foos" instead
+ `2 foos` could not be parsed as a duration: failed to parse input in the "friendly" duration format: expected to find unit designator suffix (e.g., `years` or `secs`) after parsing integer
Resolved 2 packages in [TIME]
"#);
@@ -1165,7 +1165,7 @@ fn lock_exclude_newer_relative_values_pyproject() -> Result<()> {
|
9 | exclude-newer = "P4Z"
| ^^^^^
- `P4Z` could not be parsed as an ISO 8601 duration: failed to parse "P4Z" as an ISO 8601 duration string: expected to find date unit designator suffix (Y, M, W or D), but found "Z" instead
+ `P4Z` could not be parsed as an ISO 8601 duration: expected to find date unit designator suffix (`Y`, `M`, `W` or `D`), but found `Z` instead
Resolved 2 packages in [TIME]
"#);
diff --git a/crates/uv/tests/it/pip_compile.rs b/crates/uv/tests/it/pip_compile.rs
index 70a124c7a..2db9d1be7 100644
--- a/crates/uv/tests/it/pip_compile.rs
+++ b/crates/uv/tests/it/pip_compile.rs
@@ -3437,7 +3437,7 @@ fn compile_exclude_newer() -> Result<()> {
----- stdout -----
----- stderr -----
- error: invalid value '2022-04-04T26:00:00+00' for '--exclude-newer ': `2022-04-04T26:00:00+00` could not be parsed as a valid date: failed to parse hour in time "26:00:00+00": hour is not valid: parameter 'hour' with value 26 is not in the required range of 0..=23
+ error: invalid value '2022-04-04T26:00:00+00' for '--exclude-newer ': `2022-04-04T26:00:00+00` could not be parsed as a valid date: failed to parse hour in time: parsed hour is not valid: parameter 'hour' with value 26 is not in the required range of 0..=23
For more information, try '--help'.
"#