diff --git a/Cargo.lock b/Cargo.lock index 9379625..559ac7d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -63,9 +63,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.103" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "bitflags" @@ -75,11 +75,11 @@ checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" [[package]] name = "block-buffer" -version = "0.10.4" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" dependencies = [ - "generic-array", + "hybrid-array", ] [[package]] @@ -110,9 +110,9 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "clap" -version = "4.6.1" +version = "4.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" +checksum = "d91e0c145792ef73a6ad36d27c75ac09f1832222a3c209689d90f534685ee5b7" dependencies = [ "clap_builder", "clap_derive", @@ -120,9 +120,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.6.0" +version = "4.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" +checksum = "f09628afdcc538b57f3c6341e9c8e9970f18e4a481690a64974d7023bd33548b" dependencies = [ "anstream", "anstyle", @@ -132,9 +132,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.1" +version = "4.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" +checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061" dependencies = [ "heck", "proc-macro2", @@ -154,11 +154,17 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + [[package]] name = "cpufeatures" -version = "0.2.17" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" dependencies = [ "libc", ] @@ -190,21 +196,21 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-common" -version = "0.1.7" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ - "generic-array", - "typenum", + "hybrid-array", ] [[package]] name = "digest" -version = "0.10.7" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ "block-buffer", + "const-oid", "crypto-common", ] @@ -230,21 +236,11 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "globset" -version = "0.4.18" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3" +checksum = "e47d37d2ae4464254884b60ab7071be2b876a9c35b696bd018ddcc76847309cd" dependencies = [ "aho-corasick", "bstr", @@ -265,11 +261,26 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hybrid-array" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" +dependencies = [ + "typenum", +] + [[package]] name = "ignore" -version = "0.4.27" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe112b004901c62c2faa11f4f75e9864e0cc5af8da71c9115d184a3aa888749f" +checksum = "7f8a7b8211e695a1d0cd91cace480d4d0bd57667ab10277cc412c5f7f4884f83" dependencies = [ "crossbeam-deque", "globset", @@ -357,6 +368,7 @@ version = "0.3.0" dependencies = [ "anyhow", "clap", + "hex", "reforge-engine", "reforge-output", "reforge-schema", @@ -387,6 +399,7 @@ version = "0.3.0" dependencies = [ "anyhow", "globset", + "hex", "ignore", "reforge-schema", "serde", @@ -425,6 +438,7 @@ name = "reforge-schema" version = "0.3.0" dependencies = [ "anyhow", + "hex", "serde", "serde_json", "serde_yaml", @@ -447,6 +461,7 @@ name = "reforge-unity-engine" version = "0.3.0" dependencies = [ "anyhow", + "hex", "reforge-schema", "serde", "serde_json", @@ -459,6 +474,7 @@ version = "0.3.0" dependencies = [ "anyhow", "clap", + "hex", "reforge-output", "reforge-schema", "serde", @@ -525,9 +541,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ "serde_core", "serde_derive", @@ -535,18 +551,18 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", @@ -555,9 +571,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.150" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ "indexmap", "itoa", @@ -569,11 +585,11 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.9" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -591,9 +607,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.9" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" dependencies = [ "cfg-if", "cpufeatures", @@ -620,9 +636,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.118" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" dependencies = [ "proc-macro2", "quote", @@ -641,50 +657,48 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.23" +version = "1.1.4+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5" dependencies = [ - "serde", + "indexmap", + "serde_core", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_parser", + "toml_writer", + "winnow", ] [[package]] name = "toml_datetime" -version = "0.6.11" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ - "serde", + "serde_core", ] [[package]] -name = "toml_edit" -version = "0.22.27" +name = "toml_parser" +version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "toml_write", "winnow", ] [[package]] -name = "toml_write" -version = "0.1.2" +name = "toml_writer" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" [[package]] name = "tree-sitter" -version = "0.26.10" +version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c343ed63e3f5c64d1acdecb5d2c13d4e169cb5fde0052106ebaa6c6f27f9e55" +checksum = "af1c71c1c4cc0920b20d6b0f6572e7682cd07a6a2faec71067a31fa394c586df" dependencies = [ "cc", "regex", @@ -844,12 +858,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - [[package]] name = "walkdir" version = "2.5.0" @@ -886,12 +894,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.15" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" -dependencies = [ - "memchr", -] +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" [[package]] name = "zmij" diff --git a/Cargo.toml b/Cargo.toml index 363bd41..5a86ec0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,6 +29,7 @@ categories = ["command-line-utilities", "development-tools"] anyhow = "1.0" clap = { version = "4.5", features = ["derive"] } globset = "0.4" +hex = "0.4" ignore = "0.4" reforge-engine = { version = "0.3.0", path = "crates/reforge-engine" } reforge-output = { version = "0.3.0", path = "crates/reforge-output" } @@ -37,8 +38,8 @@ reforge-unity-engine = { version = "0.3.0", path = "crates/reforge-unity-engine" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" serde_yaml = "0.9" -sha2 = "0.10" -toml = "0.8" +sha2 = "0.11" +toml = "1.1" tree-sitter = "0.26.10" tree-sitter-bash = "0.25.1" tree-sitter-c-sharp = "0.23.5" diff --git a/crates/reforge-engine/Cargo.toml b/crates/reforge-engine/Cargo.toml index f38e9a6..dc197da 100644 --- a/crates/reforge-engine/Cargo.toml +++ b/crates/reforge-engine/Cargo.toml @@ -15,6 +15,7 @@ build = "build.rs" [dependencies] anyhow.workspace = true globset.workspace = true +hex.workspace = true ignore.workspace = true reforge-schema.workspace = true serde.workspace = true diff --git a/crates/reforge-engine/src/api/report/provenance.rs b/crates/reforge-engine/src/api/report/provenance.rs index fd54ef2..394b954 100644 --- a/crates/reforge-engine/src/api/report/provenance.rs +++ b/crates/reforge-engine/src/api/report/provenance.rs @@ -115,5 +115,5 @@ fn provenance_digest(label: &str, values: &[String]) -> String { hash.update(value.as_bytes()); hash.update([0]); } - format!("rp7-{:x}", hash.finalize())[..24].to_owned() + format!("rp7-{}", hex::encode(hash.finalize()))[..24].to_owned() } diff --git a/crates/reforge-engine/src/pathing.rs b/crates/reforge-engine/src/pathing.rs index 6cafa1e..77c5da2 100644 --- a/crates/reforge-engine/src/pathing.rs +++ b/crates/reforge-engine/src/pathing.rs @@ -39,7 +39,7 @@ pub(crate) fn workspace_identity(root: &Path) -> String { .replace('\\', "/") .as_bytes(), ); - let hash = format!("{:x}", digest.finalize()); + let hash = hex::encode(digest.finalize()); format!("rw5-{}", &hash[..20]) } diff --git a/crates/reforge-schema/Cargo.toml b/crates/reforge-schema/Cargo.toml index 111357a..69a5050 100644 --- a/crates/reforge-schema/Cargo.toml +++ b/crates/reforge-schema/Cargo.toml @@ -13,6 +13,7 @@ description = "Stable report schema and evidence contracts for Reforge analyzers [dependencies] anyhow.workspace = true +hex.workspace = true serde.workspace = true serde_json.workspace = true sha2.workspace = true diff --git a/crates/reforge-schema/src/validation.rs b/crates/reforge-schema/src/validation.rs index 29ea833..f4d06d3 100644 --- a/crates/reforge-schema/src/validation.rs +++ b/crates/reforge-schema/src/validation.rs @@ -404,7 +404,7 @@ fn stable_id(prefix: &str, parts: &[&str]) -> String { digest.update(part.as_bytes()); digest.update([0]); } - let hash = format!("{:x}", digest.finalize()); + let hash = hex::encode(digest.finalize()); format!("{prefix}-{}", &hash[..20]) } diff --git a/crates/reforge-unity-engine/Cargo.toml b/crates/reforge-unity-engine/Cargo.toml index e099e7f..f598f7b 100644 --- a/crates/reforge-unity-engine/Cargo.toml +++ b/crates/reforge-unity-engine/Cargo.toml @@ -9,6 +9,7 @@ publish = false [dependencies] anyhow.workspace = true +hex.workspace = true reforge-schema.workspace = true serde.workspace = true serde_json.workspace = true diff --git a/crates/reforge-unity-engine/src/projection.rs b/crates/reforge-unity-engine/src/projection.rs index fea2b04..8b225a5 100644 --- a/crates/reforge-unity-engine/src/projection.rs +++ b/crates/reforge-unity-engine/src/projection.rs @@ -194,7 +194,7 @@ fn workspace_identity(root: &Path) -> String { .replace('\\', "/") .as_bytes(), ); - format!("rw5-{}", &format!("{digest:x}")[..20]) + format!("rw5-{}", &hex::encode(digest)[..20]) } fn git(root: &Path, args: &[&str]) -> Option { diff --git a/tools/reforge-calibrate/Cargo.toml b/tools/reforge-calibrate/Cargo.toml index 9a32703..bfdd9e9 100644 --- a/tools/reforge-calibrate/Cargo.toml +++ b/tools/reforge-calibrate/Cargo.toml @@ -9,6 +9,7 @@ publish = false [dependencies] anyhow.workspace = true clap.workspace = true +hex.workspace = true serde.workspace = true serde_json.workspace = true sha2.workspace = true diff --git a/tools/reforge-calibrate/src/io.rs b/tools/reforge-calibrate/src/io.rs index 973f744..2425c92 100644 --- a/tools/reforge-calibrate/src/io.rs +++ b/tools/reforge-calibrate/src/io.rs @@ -27,7 +27,7 @@ pub(crate) fn write_json(path: &Path, value: &impl Serialize) -> Result<()> { } pub(crate) fn sha256_bytes(bytes: &[u8]) -> String { - format!("{:x}", Sha256::digest(bytes)) + hex::encode(Sha256::digest(bytes)) } pub(crate) fn sha256_file(path: &Path) -> Result { @@ -41,5 +41,5 @@ pub(crate) fn short_digest(domain: &str, value: &str) -> String { digest.update(domain.as_bytes()); digest.update([0]); digest.update(value.as_bytes()); - format!("{domain}-{:x}", digest.finalize())[..domain.len() + 17].into() + format!("{domain}-{}", hex::encode(digest.finalize()))[..domain.len() + 17].into() } diff --git a/tools/reforge-calibrate/src/promotion.rs b/tools/reforge-calibrate/src/promotion.rs index 2a9b13d..de02272 100644 --- a/tools/reforge-calibrate/src/promotion.rs +++ b/tools/reforge-calibrate/src/promotion.rs @@ -149,7 +149,7 @@ fn audit_set_digest(audits: &[ReportAudit]) -> String { digest.update(report_digest.as_bytes()); digest.update([0]); } - format!("{:x}", digest.finalize()) + hex::encode(digest.finalize()) } fn validate_summaries( diff --git a/tools/reforge-calibrate/src/reports.rs b/tools/reforge-calibrate/src/reports.rs index ab676d9..b50cca3 100644 --- a/tools/reforge-calibrate/src/reports.rs +++ b/tools/reforge-calibrate/src/reports.rs @@ -194,7 +194,7 @@ fn aggregate_digest(artifacts: &BTreeMap) -> String { digest.update(value.as_bytes()); digest.update([0]); } - format!("{:x}", digest.finalize()) + hex::encode(digest.finalize()) } #[cfg(test)] diff --git a/tools/reforge-workflow/Cargo.toml b/tools/reforge-workflow/Cargo.toml index d92f55f..1387038 100644 --- a/tools/reforge-workflow/Cargo.toml +++ b/tools/reforge-workflow/Cargo.toml @@ -10,6 +10,7 @@ publish = false [dependencies] anyhow.workspace = true clap.workspace = true +hex.workspace = true reforge-schema.workspace = true reforge-output.workspace = true serde.workspace = true diff --git a/tools/reforge-workflow/src/storage.rs b/tools/reforge-workflow/src/storage.rs index b27fa2c..08a7a79 100644 --- a/tools/reforge-workflow/src/storage.rs +++ b/tools/reforge-workflow/src/storage.rs @@ -221,7 +221,7 @@ fn file_hash(path: &Path) -> Result { } fn bytes_hash(bytes: &[u8]) -> String { - format!("sha256-{:x}", Sha256::digest(bytes)) + format!("sha256-{}", hex::encode(Sha256::digest(bytes))) } #[cfg(test)]