From 62067738f87b5aff2f9e1572631fe004e771d8ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 26 Jun 2026 13:04:58 +0200 Subject: [PATCH 1/4] Bump bzip2 0.5 -> 0.6 --- Cargo.lock | 23 ++++++++++------------- Cargo.toml | 4 ++-- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 50cb81d..c5bc4be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -164,21 +164,11 @@ checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bzip2" -version = "0.5.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ecfb22d906f800d4fe833b6282cf4dc1c298f5057ca0b5445e5c209735ca47" +checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c" dependencies = [ - "bzip2-sys", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.13+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" -dependencies = [ - "cc", - "pkg-config", + "libbz2-rs-sys", ] [[package]] @@ -716,6 +706,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" +[[package]] +name = "libbz2-rs-sys" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b357333733e8260735ba5894eb928c02ecc69c78715f01a8019e7fa7f2db4c" + [[package]] name = "libc" version = "0.2.186" @@ -1061,6 +1057,7 @@ dependencies = [ name = "rustversion" version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "same-file" diff --git a/Cargo.toml b/Cargo.toml index b40ef11..ddf64da 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ harness = false [dependencies] anyhow = "1.0.98" blake3 = { version = "=1.8.2", features = ["mmap", "rayon", "traits-preview"] } -bzip2 = "0.5" +bzip2 = "0.6" digest = { version = "0.10", features = ["rand_core"] } dirs = "6.0" dunce = "1.0.5" @@ -44,7 +44,7 @@ zstd = { version = "0.13", features = ["experimental", "zstdmt"] } anyhow = "1.0.102" assert_matches = "1.5" buck-resources = "1" -bzip2 = "0.5.2" +bzip2 = "0.6" criterion = "0.5.1" liblzma = { version = "0.4.6", features = ["parallel", "static"] } snapbox = { version = "0.6.24", features = ["color-auto", "diff", "json", "regex"], default-features = false } From b154fbd5ad43502355a0ce740e7af8d66750c899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 26 Jun 2026 13:06:35 +0200 Subject: [PATCH 2/4] Bump zip 3.0.0 -> 8.6.0 --- Cargo.lock | 32 +++++++++----------------------- Cargo.toml | 2 +- 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c5bc4be..92f21c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -79,15 +79,6 @@ version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" -dependencies = [ - "derive_arbitrary", -] - [[package]] name = "arrayref" version = "0.3.9" @@ -361,17 +352,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "derive_arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "digest" version = "0.10.7" @@ -1268,6 +1248,12 @@ dependencies = [ "serde_json", ] +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + [[package]] name = "typenum" version = "1.20.1" @@ -1593,15 +1579,15 @@ dependencies = [ [[package]] name = "zip" -version = "3.0.0" +version = "8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12598812502ed0105f607f941c386f43d441e00148fce9dec3ca5ffb0bde9308" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" dependencies = [ - "arbitrary", "crc32fast", "flate2", "indexmap", "memchr", + "typed-path", "zopfli", ] diff --git a/Cargo.toml b/Cargo.toml index ddf64da..211d9a5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,7 +37,7 @@ sha2 = "0.10.6" tar = "0.4.44" tempfile = "3.22" thiserror = "2.0.18" -zip = { version = "3.0.0", features = ["deflate"], default-features = false } +zip = { version = "8.0.0", features = ["deflate"], default-features = false } zstd = { version = "0.13", features = ["experimental", "zstdmt"] } [dev-dependencies] From b210c91c5f678722aa4ce8628d7fe419cd5df10a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 29 Jun 2026 14:34:19 +0200 Subject: [PATCH 3/4] Bump blake3 1.8.2 -> 1.8.5 blake3 1.8.5 dropped the LowerHex impl on Hash, so switch the three blake3 digest sites from format!("{:x}", ...) to .to_hex().to_string(). The features are also unused, so drop them from Cargo.toml. --- Cargo.toml | 2 +- src/download.rs | 2 +- src/print_entry_for_url.rs | 2 +- src/subcommand.rs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 211d9a5..4dd6240 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ harness = false [dependencies] anyhow = "1.0.98" -blake3 = { version = "=1.8.2", features = ["mmap", "rayon", "traits-preview"] } +blake3 = { version = "=1.8.5" } bzip2 = "0.6" digest = { version = "0.10", features = ["rand_core"] } dirs = "6.0" diff --git a/src/download.rs b/src/download.rs index 5362f6b..9574bc8 100644 --- a/src/download.rs +++ b/src/download.rs @@ -224,7 +224,7 @@ fn verify_artifact( HashAlgorithm::Blake3 => { let mut hasher = blake3::Hasher::new(); io::copy(&mut file, &mut hasher).map(|size_in_bytes| { - let digest = format!("{:x}", hasher.finalize()); + let digest = hasher.finalize().to_hex().to_string(); (size_in_bytes, digest) }) } diff --git a/src/print_entry_for_url.rs b/src/print_entry_for_url.rs index 1b5394c..b28dcce 100644 --- a/src/print_entry_for_url.rs +++ b/src/print_entry_for_url.rs @@ -47,7 +47,7 @@ pub fn print_entry_for_url(url: &OsStr) -> anyhow::Result<()> { let mut file = File::open(tempfile.path())?; let mut hasher = blake3::Hasher::new(); let size = io::copy(&mut file, &mut hasher)?; - let hex_digest = format!("{:x}", hasher.finalize()); + let hex_digest = hasher.finalize().to_hex().to_string(); let entry_json = serialize_entry(url, size, hex_digest)?; println!("{}", entry_json); diff --git a/src/subcommand.rs b/src/subcommand.rs index e3348d1..f7516ae 100644 --- a/src/subcommand.rs +++ b/src/subcommand.rs @@ -135,7 +135,7 @@ fn run_subcommand_impl(subcommand: &Subcommand, args: &mut ArgsOs) -> anyhow::Re let mut file = fs_ctx::file_open(file_arg)?; let mut hasher = blake3::Hasher::new(); io::copy(&mut file, &mut hasher)?; - let hex_digest = format!("{:x}", hasher.finalize()); + let hex_digest = hasher.finalize().to_hex().to_string(); println!("{}", hex_digest); } From d3f80895bc4272461f0a05d9b5db19076fd7c23a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 29 Jun 2026 14:04:23 +0200 Subject: [PATCH 4/4] Bump jsonc-parser 0.26 -> 0.32 parse_to_serde_value is now generic over the deserialize target and returns T directly. Use Option so empty input deserializes to None and the existing with_context() still applies. --- Cargo.toml | 2 +- src/config.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 4dd6240..9304db7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,7 @@ dunce = "1.0.5" filetime = "0.2.25" flate2 = { version = "1.0.33", features = ["rust_backend"], default-features = false } fs2 = "0.4" -jsonc-parser = { version = "0.26", features = ["serde"] } +jsonc-parser = { version = "0.32", features = ["serde"] } liblzma = { version = "0.4.4", features = ["parallel", "static"] } rand = { version = "0.9", features = ["small_rng"] } serde = { version = "1.0.219", features = ["derive", "rc"] } diff --git a/src/config.rs b/src/config.rs index cbb0ed4..512906b 100644 --- a/src/config.rs +++ b/src/config.rs @@ -136,7 +136,7 @@ pub fn parse_file(data: &str) -> anyhow::Result<(Value, ConfigFile)> { anyhow::format_err!("DotSlash file must start with `{REQUIRED_HEADER}`") })?; - let value = jsonc_parser::parse_to_serde_value(data, &Default::default())? + let value = jsonc_parser::parse_to_serde_value::>(data, &Default::default())? .with_context(|| anyhow::format_err!("Failed to parse JSON"))?; let config_file = ConfigFile::deserialize(&value).map_err(|err| { if value.get("oncall").is_some() {