diff --git a/Cargo.lock b/Cargo.lock index 3167399..b116fab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -151,25 +151,42 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.9" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84982c6c0ae343635a3a4ee6dedef965513735c8b183caa7289fa6e27399ebd4" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-util-schemas" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +checksum = "e63d2780ac94487eb9f1fea7b0d56300abc9eb488800854ca217f102f5caccca" dependencies = [ + "semver", "serde", + "serde-untagged", + "serde-value", + "thiserror 1.0.69", + "toml", + "unicode-xid", + "url", ] [[package]] name = "cargo_metadata" -version = "0.19.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +checksum = "4f7835cfc6135093070e95eb2b53e5d9b5c403dc3a6be6040ee026270aa82502" dependencies = [ "camino", "cargo-platform", + "cargo-util-schemas", "semver", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -365,6 +382,16 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "erased-serde" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" +dependencies = [ + "serde", + "typeid", +] + [[package]] name = "errno" version = "0.3.12" @@ -571,7 +598,7 @@ dependencies = [ "gix-worktree", "once_cell", "smallvec", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -584,7 +611,7 @@ dependencies = [ "gix-date", "gix-utils", "itoa", - "thiserror", + "thiserror 2.0.12", "winnow", ] @@ -601,7 +628,7 @@ dependencies = [ "gix-trace", "kstring", "smallvec", - "thiserror", + "thiserror 2.0.12", "unicode-bom", ] @@ -611,7 +638,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1db9765c69502650da68f0804e3dc2b5f8ccc6a2d104ca6c85bc40700d37540" dependencies = [ - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -620,7 +647,7 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b1f1d8764958699dc764e3f727cef280ff4d1bd92c107bbf8acd85b30c1bd6f" dependencies = [ - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -646,7 +673,7 @@ dependencies = [ "gix-chunk", "gix-hash", "memmap2", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -665,7 +692,7 @@ dependencies = [ "memchr", "once_cell", "smallvec", - "thiserror", + "thiserror 2.0.12", "unicode-bom", "winnow", ] @@ -680,7 +707,7 @@ dependencies = [ "bstr", "gix-path", "libc", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -697,7 +724,7 @@ dependencies = [ "gix-sec", "gix-trace", "gix-url", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -710,7 +737,7 @@ dependencies = [ "itoa", "jiff", "smallvec", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -722,7 +749,7 @@ dependencies = [ "bstr", "gix-hash", "gix-object", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -738,7 +765,7 @@ dependencies = [ "gix-path", "gix-ref", "gix-sec", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -756,7 +783,7 @@ dependencies = [ "libc", "once_cell", "prodash", - "thiserror", + "thiserror 2.0.12", "walkdir", ] @@ -778,7 +805,7 @@ dependencies = [ "gix-trace", "gix-utils", "smallvec", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -792,7 +819,7 @@ dependencies = [ "gix-features", "gix-path", "gix-utils", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -816,7 +843,7 @@ dependencies = [ "faster-hex", "gix-features", "sha1-checked", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -868,7 +895,7 @@ dependencies = [ "memmap2", "rustix", "smallvec", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -879,7 +906,7 @@ checksum = "570f8b034659f256366dc90f1a24924902f20acccd6a15be96d44d1269e7a796" dependencies = [ "gix-tempfile", "gix-utils", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -895,7 +922,7 @@ dependencies = [ "gix-object", "gix-revwalk", "smallvec", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -915,7 +942,7 @@ dependencies = [ "gix-validate", "itoa", "smallvec", - "thiserror", + "thiserror 2.0.12", "winnow", ] @@ -937,7 +964,7 @@ dependencies = [ "gix-quote", "parking_lot", "tempfile", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -957,7 +984,7 @@ dependencies = [ "memmap2", "parking_lot", "smallvec", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -969,7 +996,7 @@ dependencies = [ "bstr", "faster-hex", "gix-trace", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -981,7 +1008,7 @@ dependencies = [ "bstr", "faster-hex", "gix-trace", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -995,7 +1022,7 @@ dependencies = [ "gix-validate", "home", "once_cell", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1010,7 +1037,7 @@ dependencies = [ "gix-config-value", "gix-glob", "gix-path", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1023,7 +1050,7 @@ dependencies = [ "gix-config-value", "parking_lot", "rustix", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1048,7 +1075,7 @@ dependencies = [ "gix-transport", "gix-utils", "maybe-async", - "thiserror", + "thiserror 2.0.12", "winnow", ] @@ -1060,7 +1087,7 @@ checksum = "4a375a75b4d663e8bafe3bf4940a18a23755644c13582fa326e99f8f987d83fd" dependencies = [ "bstr", "gix-utils", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1080,7 +1107,7 @@ dependencies = [ "gix-utils", "gix-validate", "memmap2", - "thiserror", + "thiserror 2.0.12", "winnow", ] @@ -1095,7 +1122,7 @@ dependencies = [ "gix-revision", "gix-validate", "smallvec", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1110,7 +1137,7 @@ dependencies = [ "gix-hash", "gix-object", "gix-revwalk", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1125,7 +1152,7 @@ dependencies = [ "gix-hashtable", "gix-object", "smallvec", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1149,7 +1176,7 @@ dependencies = [ "bstr", "gix-hash", "gix-lock", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1164,7 +1191,7 @@ dependencies = [ "gix-pathspec", "gix-refspec", "gix-url", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1203,7 +1230,7 @@ dependencies = [ "gix-sec", "gix-url", "reqwest", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1220,7 +1247,7 @@ dependencies = [ "gix-object", "gix-revwalk", "smallvec", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1233,7 +1260,7 @@ dependencies = [ "gix-features", "gix-path", "percent-encoding", - "thiserror", + "thiserror 2.0.12", "url", ] @@ -1254,7 +1281,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77b9e00cacde5b51388d28ed746c493b18a6add1f19b5e01d686b3b9ece66d4d" dependencies = [ "bstr", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -1751,6 +1778,15 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + [[package]] name = "object" version = "0.36.7" @@ -1784,6 +1820,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] + [[package]] name = "parking_lot" version = "0.12.3" @@ -1897,7 +1942,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror", + "thiserror 2.0.12", "tokio", "tracing", "web-time", @@ -1918,7 +1963,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.12", "tinyvec", "tracing", "web-time", @@ -2245,6 +2290,27 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-untagged" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e" +dependencies = [ + "erased-serde", + "serde", + "typeid", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + [[package]] name = "serde_derive" version = "1.0.219" @@ -2268,6 +2334,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -2451,7 +2526,7 @@ dependencies = [ "sha2", "smol_str", "tempfile", - "thiserror", + "thiserror 2.0.12", "tiny-bench", "tokio", "toml-span", @@ -2471,13 +2546,33 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + [[package]] name = "thiserror" version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -2560,6 +2655,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + [[package]] name = "toml-span" version = "0.5.1" @@ -2569,6 +2676,35 @@ dependencies = [ "smallvec", ] +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_write", + "winnow", +] + +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tower" version = "0.5.2" @@ -2627,6 +2763,12 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7b17f197b3050ba473acf9181f7b1d3b66d1cf7356c6cc57886662276e65908" +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + [[package]] name = "typenum" version = "1.18.0" @@ -2654,6 +2796,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "untrusted" version = "0.9.0" diff --git a/Cargo.toml b/Cargo.toml index e881562..8bb351d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -85,7 +85,7 @@ features = ["blocking", "gzip", "http2"] libc = "0.2" [dev-dependencies] -cargo_metadata = "0.19" +cargo_metadata = "0.20" rayon = "1.7" tempfile = "3.15" tiny-bench = "0.4" diff --git a/src/index.rs b/src/index.rs index 85b5050..af0e210 100644 --- a/src/index.rs +++ b/src/index.rs @@ -33,15 +33,17 @@ pub use crate::utils::flock::FileLock; /// Global configuration of an index, reflecting the [contents of config.json](https://doc.rust-lang.org/cargo/reference/registries.html#index-format). #[derive(Eq, PartialEq, PartialOrd, Ord, Clone, Debug, serde::Deserialize, serde::Serialize)] -#[serde(rename_all = "kebab-case")] pub struct IndexConfig { /// Pattern for creating download URLs. See [`Self::download_url`]. pub dl: String, #[serde(default)] /// Base URL for publishing, etc. pub api: Option, - #[serde(default)] - auth_required: bool, + /// Indicates whether this is a private registry that requires all + /// operations to be authenticated including API requests, crate downloads + /// and sparse index updates. + #[serde(default, rename = "auth-required")] + pub auth_required: bool, } impl IndexConfig { diff --git a/tests/local.rs b/tests/local.rs index 2ce24e3..2748aa3 100644 --- a/tests/local.rs +++ b/tests/local.rs @@ -31,7 +31,7 @@ fn builds_local_registry() { let lock = tame_index::utils::flock::FileLock::unlocked(); for pkg in &md.packages { - if pkg.name == "tame-index" { + if pkg.name.as_ref() == "tame-index" { continue; } let ip = krates.entry(pkg.name.clone()).or_insert_with(|| {