diff --git a/.github/workflows/rust-compile.yml b/.github/workflows/rust-compile.yml index 42759c4c..36e224f9 100644 --- a/.github/workflows/rust-compile.yml +++ b/.github/workflows/rust-compile.yml @@ -63,8 +63,8 @@ jobs: # - { name: "Linux-s390x", target: s390x-unknown-linux-gnu, os: ubuntu-latest, use-cross: true, skip-tests: true } - - { name: "macOS-x86_64", target: x86_64-apple-darwin, os: macOS-latest } - # - { name: "macOS-aarch64", target: aarch64-apple-darwin, os: macOS-latest, skip-tests: true } + # - { name: "macOS-x86_64", target: x86_64-apple-darwin, os: macOS-latest } + - { name: "macOS-aarch64", target: aarch64-apple-darwin, os: macOS-latest } - { name: "Windows-x86_64", target: x86_64-pc-windows-msvc, os: windows-latest } # - { name: "Windows-aarch64", target: aarch64-pc-windows-msvc, os: windows-latest, skip-tests: true } diff --git a/Cargo.lock b/Cargo.lock index 78c7db45..8cb56498 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,27 +1,27 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" dependencies = [ "gimli", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", @@ -29,19 +29,26 @@ dependencies = [ ] [[package]] -name = "aho-corasick" -version = "1.1.2" +name = "ahash" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ - "memchr", + "cfg-if", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", ] [[package]] -name = "android-tzdata" -version = "0.1.1" +name = "aho-corasick" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] [[package]] name = "android_system_properties" @@ -60,93 +67,104 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "once_cell_polyfill", + "windows-sys 0.60.2", ] [[package]] name = "anyhow" -version = "1.0.82" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + +[[package]] +name = "arbitrary" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +dependencies = [ + "derive_arbitrary", +] [[package]] name = "async-compression" -version = "0.4.6" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c" +checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0" dependencies = [ - "flate2", + "compression-codecs", + "compression-core", "futures-core", "futures-io", - "memchr", "pin-project-lite", ] [[package]] name = "async-once-cell" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9338790e78aa95a416786ec8389546c4b6a1dfc3dc36071ed9518a9413a542eb" +checksum = "4288f83726785267c6f2ef073a3d83dc3f9b81464e9f99898240cced85fce35a" [[package]] name = "async-recursion" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -155,24 +173,24 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] @@ -185,10 +203,10 @@ dependencies = [ "futures", "http-content-range", "itertools 0.13.0", - "memmap2 0.9.4", + "memmap2 0.9.9", "reqwest", "reqwest-middleware", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-util", @@ -197,30 +215,36 @@ dependencies = [ [[package]] name = "async_zip" -version = "0.0.16" +version = "0.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527207465fb6dcafbf661b0d4a51d0d2306c9d0c2975423079a6caa807930daf" +checksum = "0d8c50d65ce1b0e0cb65a785ff615f78860d7754290647d3b983208daa4f85e6" dependencies = [ "async-compression", "crc32fast", "futures-lite", "pin-project", - "thiserror", + "thiserror 2.0.17", "tokio", "tokio-util", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" -version = "1.1.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" -version = "0.7.5" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", @@ -242,7 +266,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper", "tokio", "tower", "tower-layer", @@ -252,9 +276,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", "bytes", @@ -265,7 +289,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 0.1.2", + "sync_wrapper", "tower-layer", "tower-service", "tracing", @@ -273,17 +297,17 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", "miniz_oxide", "object", "rustc-demangle", + "windows-link", ] [[package]] @@ -309,15 +333,9 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" - -[[package]] -name = "base64ct" -version = "1.6.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bisection" @@ -333,9 +351,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "bitvec" @@ -368,49 +386,37 @@ dependencies = [ ] [[package]] -name = "bumpalo" -version = "3.14.0" +name = "boxcar" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "36f64beae40a84da1b4b26ff2761a5b895c12adc41dc25aaee1c4f2bbfe97a6e" [[package]] -name = "byteorder" -version = "1.5.0" +name = "bumpalo" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytes" -version = "1.6.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c" dependencies = [ - "cc", - "libc", - "pkg-config", + "libbz2-rs-sys", ] [[package]] name = "cacache" -version = "13.0.0" +version = "13.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a61ff12b19d89c752c213316b87fdb4a587f073d219b893cc56974b8c9f39bf7" +checksum = "5c5063741c7b2e260bbede781cf4679632dd90e2718e99f7715e46824b65670b" dependencies = [ "digest", "either", @@ -427,7 +433,7 @@ dependencies = [ "sha2", "ssri", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "walkdir", @@ -441,31 +447,38 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.83" +version = "1.2.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "739eb0f94557554b3ca9a86d2d37bebd49c5e6d0c1d2bda35ba5bdac830befc2" dependencies = [ + "find-msvc-tools", "jobserver", "libc", + "shlex", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.33" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "num-traits", "serde", - "windows-targets 0.52.0", + "windows-link", ] [[package]] @@ -507,9 +520,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" dependencies = [ "clap_builder", "clap_derive", @@ -517,9 +530,9 @@ dependencies = [ [[package]] name = "clap-verbosity-flag" -version = "2.2.0" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb9b20c0dd58e4c2e991c8d203bbeb76c11304d1011659686b5b644bc29aa478" +checksum = "34c77f67047557f62582784fd7482884697731b2932c7d37ced54bce2312e1e2" dependencies = [ "clap", "log", @@ -527,73 +540,89 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", + "strsim", ] [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "compression-codecs" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef8a506ec4b81c460798f572caead636d57d3d7e940f998160f52bd254bf2d23" +dependencies = [ + "compression-core", + "flate2", +] + +[[package]] +name = "compression-core" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" [[package]] name = "concurrent-queue" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] [[package]] name = "configparser" -version = "3.0.4" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec6d3da8e550377a85339063af6e3735f4b1d9392108da4e083a1b3b9820288" +checksum = "e57e3272f0190c3f1584272d613719ba5fc7df7f4942fe542e63d949cf3a649b" [[package]] name = "console" -version = "0.15.8" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ "encode_unicode", - "lazy_static", "libc", - "unicode-width", - "windows-sys 0.52.0", + "once_cell", + "unicode-width 0.2.2", + "windows-sys 0.59.0", ] [[package]] name = "constant_time_eq" -version = "0.1.5" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "core-foundation" @@ -607,49 +636,61 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] +[[package]] +name = "crc" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] [[package]] name = "criterion" -version = "0.5.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +checksum = "e1c047a62b0cc3e145fa84415a3191f628e980b194c2755aa12300a4e6cbd928" dependencies = [ "anes", "cast", "ciborium", "clap", "criterion-plot", - "is-terminal", - "itertools 0.10.5", + "itertools 0.13.0", "num-traits", - "once_cell", "oorandom", "plotters", "rayon", "regex", "serde", - "serde_derive", "serde_json", "tinytemplate", "walkdir", @@ -657,19 +698,19 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +checksum = "9b1bcc0dc7dfae599d84ad0b1a55f80cde8af3725da8313b528da95ef783e338" dependencies = [ "cast", - "itertools 0.10.5", + "itertools 0.13.0", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -686,15 +727,15 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-common" @@ -708,30 +749,30 @@ dependencies = [ [[package]] name = "csv" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" dependencies = [ "csv-core", "itoa", "ryu", - "serde", + "serde_core", ] [[package]] name = "csv-core" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" dependencies = [ "memchr", ] [[package]] name = "darling" -version = "0.20.5" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ "darling_core", "darling_macro", @@ -739,43 +780,60 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.5" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", - "syn 2.0.48", + "strsim", + "syn", ] [[package]] name = "darling_macro" -version = "0.20.5" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core", "quote", - "syn 2.0.48", + "syn", ] [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + +[[package]] +name = "deflate64" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "26bf8fc351c5ed29b5c2f0cbbac1b209b74f60ecd62e675a998df72c49af5204" [[package]] name = "deranged" -version = "0.3.11" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", - "serde", + "serde_core", +] + +[[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]] @@ -810,54 +868,77 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "dunce" -version = "1.0.4" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "either" -version = "1.9.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "elsa" -version = "1.10.0" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98e71ae4df57d214182a2e5cb90230c0192c6ddfcaa05c36453d46a54713e10" +checksum = "9abf33c656a7256451ebb7d0082c5a471820c31269e49d807c538c252352186e" dependencies = [ "stable_deref_trait", ] [[package]] name = "encode_unicode" -version = "0.3.6" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + +[[package]] +name = "env_home" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "event-listener" -version = "5.0.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72557800024fabbaa2449dd4bf24e37b93702d457a4d4f2b0dd1f0f039f20c1" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -866,35 +947,42 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "filetime" -version = "0.2.23" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", - "redox_syscall", - "windows-sys 0.52.0", + "libredox", + "windows-sys 0.60.2", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" + [[package]] name = "fixedbitset" -version = "0.4.2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.0.28" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" dependencies = [ "crc32fast", + "libz-rs-sys", "miniz_oxide", ] @@ -904,6 +992,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foreign-types" version = "0.3.2" @@ -921,9 +1015,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -937,14 +1031,23 @@ dependencies = [ "autocfg", ] +[[package]] +name = "fs-err" +version = "3.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ad492b2cf1d89d568a43508ab24f98501fe03f2f31c01e1d0fe7366a71745d2" +dependencies = [ + "autocfg", +] + [[package]] name = "fs4" -version = "0.8.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21dabded2e32cd57ded879041205c60a4a4c4bab47bd0fd2fa8b01f30849f02b" +checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4" dependencies = [ "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -971,9 +1074,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -986,9 +1089,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -996,15 +1099,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -1013,15 +1116,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.2.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ "fastrand", "futures-core", @@ -1032,38 +1135,38 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -1083,41 +1186,59 @@ version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ + "serde", "typenum", "version_check", ] [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasip2", + "wasm-bindgen", ] [[package]] name = "gimli" -version = "0.28.1" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" [[package]] name = "glob" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "half" -version = "2.3.1" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ "cfg-if", "crunchy", + "zerocopy", ] [[package]] @@ -1128,21 +1249,24 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] [[package]] -name = "heck" -version = "0.5.0" +name = "hashbrown" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] -name = "hermit-abi" -version = "0.3.5" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hex" @@ -1159,15 +1283,6 @@ dependencies = [ "digest", ] -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "html-escape" version = "0.2.13" @@ -1179,9 +1294,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -1190,9 +1305,9 @@ dependencies = [ [[package]] name = "http-body" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http", @@ -1200,12 +1315,12 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.0" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", + "futures-core", "http", "http-body", "pin-project-lite", @@ -1226,15 +1341,15 @@ dependencies = [ [[package]] name = "http-content-range" -version = "0.2.0" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91314cc9d86f625097a3365cab4e4b6f190eac231650f8f41c1edd8080cea1d0" +checksum = "66cdb727cec723cee65912a74a7f9f0c3ad0c6f9df4f03d05a5c7a15398bbad1" [[package]] name = "http-serde" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1133cafcce27ea69d35e56b3a8772e265633e04de73c5f4e1afdffc1d19b5419" +checksum = "0f056c8559e3757392c8d091e796416e4649d8e49e88b8d76df6c002f05027fd" dependencies = [ "http", "serde", @@ -1242,9 +1357,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -1254,30 +1369,32 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.1.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "http", "http-body", "httparse", "httpdate", "itoa", "pin-project-lite", + "pin-utils", + "smallvec", "tokio", "want", ] [[package]] name = "hyper-rustls" -version = "0.26.0" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "futures-util", "http", "hyper", "hyper-util", @@ -1286,6 +1403,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", + "webpki-roots", ] [[package]] @@ -1306,34 +1424,39 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.3" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ + "base64 0.22.1", "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", "hyper", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", "socket2", "tokio", - "tower", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", "windows-core", ] @@ -1348,93 +1471,185 @@ dependencies = [ ] [[package]] -name = "ident_case" -version = "1.0.1" +name = "icu_collections" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] [[package]] -name = "idna" -version = "0.5.0" +name = "icu_locale_core" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", ] [[package]] -name = "include_dir" -version = "0.7.3" +name = "icu_normalizer" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "include_dir_macros", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", ] [[package]] -name = "include_dir_macros" -version = "0.7.3" +name = "icu_normalizer_data" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" -dependencies = [ - "proc-macro2", - "quote", -] +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] -name = "indexmap" -version = "1.9.3" +name = "icu_properties" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", ] [[package]] -name = "indexmap" -version = "2.2.6" +name = "icu_properties_data" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" -dependencies = [ +checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" + +[[package]] +name = "icu_provider" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "include_dir" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" +dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.16.0", "serde", + "serde_core", ] [[package]] name = "indicatif" -version = "0.17.8" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ "console", - "instant", "number_prefix", "portable-atomic", - "unicode-width", + "unicode-width 0.2.2", + "web-time", ] [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "generic-array", ] [[package]] name = "insta" -version = "1.38.0" +version = "1.43.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eab73f58e59ca6526037208f0e98851159ec1633cf17b6cd2e1f2c3fd5d53cc" +checksum = "46fdb647ebde000f43b5b53f773c30cf9b0cb4300453208713fa38b2c70935a0" dependencies = [ "console", - "lazy_static", - "linked-hash-map", + "once_cell", "pest", "pest_derive", "ron", @@ -1442,30 +1657,20 @@ dependencies = [ "similar", ] -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - [[package]] name = "ipnet" -version = "2.9.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] -name = "is-terminal" -version = "0.4.11" +name = "iri-string" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8f25ce1159c7740ff0b9b2f5cdf4a8428742ba7c112b9f20f22cd5219c7dab" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.52.0", + "memchr", + "serde", ] [[package]] @@ -1475,13 +1680,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" [[package]] -name = "itertools" -version = "0.10.5" +name = "is_terminal_polyfill" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -1501,88 +1703,129 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" -version = "0.1.28" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ + "once_cell", "wasm-bindgen", ] [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libbz2-rs-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.10.0", "libc", "redox_syscall", ] [[package]] -name = "linked-hash-map" -version = "0.5.6" +name = "libz-rs-sys" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd" +dependencies = [ + "zlib-rs", +] [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + +[[package]] +name = "litemap" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.20" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "lzma-rust2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "c60a23ffb90d527e23192f1246b14746e2f7f071cb84476dd879071696c18a4a" +dependencies = [ + "crc", + "sha2", +] [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -1603,9 +1846,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memmap2" @@ -1618,9 +1861,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" dependencies = [ "libc", ] @@ -1633,28 +1876,27 @@ checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e" dependencies = [ "miette-derive 5.10.0", "once_cell", - "thiserror", - "unicode-width", + "thiserror 1.0.69", + "unicode-width 0.1.14", ] [[package]] name = "miette" -version = "7.2.0" +version = "7.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1" +checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" dependencies = [ "backtrace", "backtrace-ext", "cfg-if", - "miette-derive 7.2.0", + "miette-derive 7.6.0", "owo-colors", "supports-color", "supports-hyperlinks", "supports-unicode", "terminal_size", "textwrap", - "thiserror", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -1665,18 +1907,18 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] name = "miette-derive" -version = "7.2.0" +version = "7.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" +checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] @@ -1687,31 +1929,31 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ - "adler", + "adler2", + "simd-adler32", ] [[package]] name = "mio" -version = "0.8.10" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] name = "native-tls" -version = "0.2.11" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ - "lazy_static", "libc", "log", "openssl", @@ -1725,12 +1967,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "overload", - "winapi", + "windows-sys 0.61.2", ] [[package]] @@ -1741,23 +1982,13 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "number_prefix" version = "0.4.0" @@ -1766,32 +1997,38 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "object" -version = "0.32.2" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "oorandom" -version = "11.1.3" +version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "openssl" -version = "0.10.63" +version = "0.10.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" +checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.10.0", "cfg-if", "foreign-types", "libc", @@ -1808,20 +2045,20 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.99" +version = "0.9.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" dependencies = [ "cc", "libc", @@ -1835,29 +2072,23 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "owo-colors" -version = "4.0.0" +version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f" +checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -1865,51 +2096,38 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.48.5", -] - -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core", - "subtle", + "windows-link", ] [[package]] name = "pathdiff" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "pbkdf2" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest", "hmac", - "password-hash", - "sha2", ] [[package]] name = "peg" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "400bcab7d219c38abf8bd7cc2054eb9bbbd4312d66f6a5557d572a203f646f61" +checksum = "9928cfca101b36ec5163e70049ee5368a8a1c3c6efc9ca9c5f9cc2f816152477" dependencies = [ "peg-macros", "peg-runtime", @@ -1917,9 +2135,9 @@ dependencies = [ [[package]] name = "peg-macros" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46e61cce859b76d19090f62da50a9fe92bab7c2a5f09e183763559a2ac392c90" +checksum = "6298ab04c202fa5b5d52ba03269fb7b74550b150323038878fe6c372d8280f71" dependencies = [ "peg-runtime", "proc-macro2", @@ -1928,60 +2146,66 @@ dependencies = [ [[package]] name = "peg-runtime" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36bae92c60fa2398ce4678b98b2c4b5a7c61099961ca1fa305aec04a9ad28922" +checksum = "132dca9b868d927b35b5dd728167b2dee150eb1ad686008fc71ccb298b776fca" [[package]] name = "pep440_rs" -version = "0.4.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c29f9c43de378b4e4e0cd7dbcce0e5cfb80443de8c05620368b2948bc936a1" +checksum = "31095ca1f396e3de32745f42b20deef7bc09077f918b085307e8eab6ddd8fb9c" dependencies = [ "once_cell", - "regex", "serde", - "unicode-width", + "unicode-width 0.2.2", + "unscanny", + "version-ranges", ] [[package]] name = "pep508_rs" -version = "0.3.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "910c513bea0f4f833122321c0f20e8c704e01de98692f6989c2ec21f43d88b1e" +checksum = "faee7227064121fcadcd2ff788ea26f0d8f2bd23a0574da11eca23bc935bcc05" dependencies = [ + "boxcar", + "indexmap 2.12.0", + "itertools 0.13.0", "once_cell", "pep440_rs", "regex", + "rustc-hash", "serde", - "thiserror", - "tracing", - "unicode-width", + "smallvec", + "thiserror 1.0.69", + "unicode-width 0.2.2", "url", + "urlencoding", + "version-ranges", ] [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.7.7" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" +checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" dependencies = [ "memchr", - "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.7" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" +checksum = "187da9a3030dbafabbbfb20cb323b976dc7b7ce91fcd84f2f74d6e31d378e2de" dependencies = [ "pest", "pest_generator", @@ -1989,63 +2213,64 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.7" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" +checksum = "49b401d98f5757ebe97a26085998d6c0eecec4995cad6ab7fc30ffdf4b052843" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] name = "pest_meta" -version = "2.7.7" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" +checksum = "72f27a2cfee9f9039c4d86faa5af122a0ac3851441a34865b8a043b46be0065a" dependencies = [ - "once_cell", "pest", "sha2", ] [[package]] name = "petgraph" -version = "0.6.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", - "indexmap 2.2.6", + "hashbrown 0.15.5", + "indexmap 2.12.0", + "serde", ] [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -2055,15 +2280,15 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.29" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plotters" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" +checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" dependencies = [ "num-traits", "plotters-backend", @@ -2074,24 +2299,33 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" +checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" [[package]] name = "plotters-svg" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" +checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" dependencies = [ "plotters-backend", ] [[package]] name = "portable-atomic" -version = "1.6.0" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + +[[package]] +name = "potential_utf" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] [[package]] name = "powerfmt" @@ -2099,43 +2333,123 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +[[package]] +name = "ppmd-rust" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c834641d8ad1b348c9ee86dec3b9840d805acd5f24daa5f90c788951a52ff59b" + [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "proc-macro-crate" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +dependencies = [ + "toml_edit", +] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] [[package]] name = "pyproject-toml" -version = "0.9.0" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95c3dd745f99aa3c554b7bb00859f7d18c2f1d6afd749ccc86d60b61e702abd9" +checksum = "f6d755483ad14b49e76713b52285235461a5b4f73f17612353e11a5de36a5fd2" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.12.0", "pep440_rs", "pep508_rs", "serde", + "thiserror 2.0.17", "toml", ] +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.17", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +dependencies = [ + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.2", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.17", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.60.2", +] + [[package]] name = "quote" -version = "1.0.35" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "radium" version = "0.7.0" @@ -2149,8 +2463,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", ] [[package]] @@ -2160,7 +2484,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] @@ -2169,29 +2503,55 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.16", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.4", ] [[package]] name = "rattler_digest" -version = "0.19.3" +version = "0.19.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7143db952a9256f187ec5f69d6289c87d51b73e591cb21c653034b06fb0de7" +checksum = "eeb0228f734983274fb6938844123e88aa55158d53ead37e8ae3deb641fe05aa" dependencies = [ "blake2", "digest", "hex", "md-5", - "serde", "serde_with", "sha2", ] [[package]] -name = "rattler_installs_packages" -version = "0.10.0" +name = "rattler_digest" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "886e9a6254e74a830c2b8555e14862d6b2f4cc498b43767d4adf1c71421a4796" dependencies = [ - "anyhow", + "blake2", + "digest", + "generic-array", + "hex", + "md-5", + "serde", + "serde_bytes", + "serde_with", + "sha2", + "url", +] + +[[package]] +name = "rattler_installs_packages" +version = "0.10.0" +dependencies = [ + "anyhow", "async-once-cell", "async-recursion", "async-trait", @@ -2208,7 +2568,7 @@ dependencies = [ "dunce", "elsa", "flate2", - "fs-err", + "fs-err 3.1.3", "fs4", "fs_extra", "futures", @@ -2216,10 +2576,10 @@ dependencies = [ "http", "http-cache-semantics", "include_dir", - "indexmap 2.2.6", + "indexmap 2.12.0", "insta", - "itertools 0.12.1", - "miette 7.2.0", + "itertools 0.14.0", + "miette 7.6.0", "mime", "once_cell", "parking_lot", @@ -2229,7 +2589,7 @@ dependencies = [ "pep508_rs", "pin-project-lite", "pyproject-toml", - "rattler_digest", + "rattler_digest 1.1.7", "regex", "reqwest", "reqwest-middleware", @@ -2242,12 +2602,12 @@ dependencies = [ "tar", "tempfile", "test-utils", - "thiserror", + "thiserror 2.0.17", "tl", "tokio", "tokio-test", "tokio-util", - "tower-http", + "tower-http 0.5.2", "tracing", "tracing-test", "url", @@ -2257,9 +2617,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -2267,9 +2627,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -2277,92 +2637,98 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.10.0", ] [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom", + "getrandom 0.2.16", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] -name = "reflink-copy" -version = "0.1.14" +name = "ref-cast" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "767be24c0da52e7448d495b8d162506a9aa125426651d547d545d6c2b4b65b62" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" dependencies = [ - "cfg-if", - "rustix", - "windows", + "ref-cast-impl", ] [[package]] -name = "regex" -version = "1.10.4" +name = "ref-cast-impl" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.5", - "regex-syntax 0.8.2", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "regex-automata" -version = "0.1.10" +name = "reflink-copy" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +checksum = "23bbed272e39c47a095a5242218a67412a220006842558b03fe2935e8f3d7b92" dependencies = [ - "regex-syntax 0.6.29", + "cfg-if", + "libc", + "rustix", + "windows", ] [[package]] -name = "regex-automata" -version = "0.4.5" +name = "regex" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-automata", + "regex-syntax", ] [[package]] -name = "regex-syntax" -version = "0.6.29" +name = "regex-automata" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "relative-path" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc" +checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "reqwest" -version = "0.12.3" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e6cc1e89e689536eb5aeede61520e874df5a4707df811cd5da4aa5fbb2aae19" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ - "base64 0.22.0", + "base64 0.22.1", "bytes", "futures-channel", "futures-core", @@ -2374,25 +2740,24 @@ dependencies = [ "hyper-rustls", "hyper-tls", "hyper-util", - "ipnet", "js-sys", "log", - "mime", "native-tls", - "once_cell", "percent-encoding", "pin-project-lite", + "quinn", "rustls", - "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 0.1.2", + "sync_wrapper", "tokio", "tokio-native-tls", "tokio-rustls", "tokio-util", + "tower", + "tower-http 0.6.6", "tower-service", "url", "wasm-bindgen", @@ -2400,35 +2765,36 @@ dependencies = [ "wasm-streams", "web-sys", "webpki-roots", - "winreg", ] [[package]] name = "reqwest-middleware" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1ccd3b55e711f91a9885a2fa6fbbb2e39db1776420b062efc058c6410f7e5e3" +checksum = "57f17d28a6e6acfe1733fe24bcd30774d13bffa4b8a22535b4c8c98423088d4e" dependencies = [ "anyhow", "async-trait", "http", "reqwest", "serde", - "thiserror", + "thiserror 1.0.69", "tower-service", ] [[package]] name = "resolvo" -version = "0.4.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2016584c3fd9df0fd859a7dcbc7fafdc7fdd2d87b53a576e8e63e62fad140e33" +checksum = "670175f9a825ad2419bea0e14bfe74e5dcc0227ec7a652a655b1c11e2b911754" dependencies = [ + "ahash", "bitvec", "elsa", "event-listener", "futures", - "itertools 0.12.1", + "indexmap 2.12.0", + "itertools 0.14.0", "petgraph", "tokio", "tracing", @@ -2436,16 +2802,16 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.7" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", - "getrandom", + "cfg-if", + "getrandom 0.2.16", "libc", - "spin", "untrusted", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2456,12 +2822,12 @@ dependencies = [ "clap-verbosity-flag", "console", "dirs", - "fs-err", - "indexmap 2.2.6", + "fs-err 2.11.0", + "indexmap 2.12.0", "indicatif", "itertools 0.12.1", - "miette 7.2.0", - "rand", + "miette 7.6.0", + "rand 0.8.5", "rattler_installs_packages", "reqwest", "reqwest-middleware", @@ -2487,68 +2853,74 @@ dependencies = [ [[package]] name = "rstest" -version = "0.19.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5316d2a1479eeef1ea21e7f9ddc67c191d497abc8fc3ba2467857abbb68330" +checksum = "f5a3193c063baaa2a95a33f03035c8a72b83d97a54916055ba22d35ed3839d49" dependencies = [ - "futures", "futures-timer", + "futures-util", "rstest_macros", - "rustc_version", ] [[package]] name = "rstest_macros" -version = "0.19.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04a9df72cc1f67020b0d63ad9bfe4a323e459ea7eb68e03bd9824db49f9a4c25" +checksum = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0" dependencies = [ "cfg-if", "glob", + "proc-macro-crate", "proc-macro2", "quote", "regex", "relative-path", "rustc_version", - "syn 2.0.48", + "syn", "unicode-ident", ] [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + +[[package]] +name = "rustc-hash" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] [[package]] name = "rustix" -version = "0.38.31" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.22.4" +version = "0.23.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +checksum = "6a9586e9ee2b4f8fab52a0048ca7334d7024eef48e2cb9407e3497bb7cab7fa7" dependencies = [ - "log", + "once_cell", "ring", "rustls-pki-types", "rustls-webpki", @@ -2557,26 +2929,20 @@ dependencies = [ ] [[package]] -name = "rustls-pemfile" -version = "2.1.2" +name = "rustls-pki-types" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" dependencies = [ - "base64 0.22.0", - "rustls-pki-types", + "web-time", + "zeroize", ] -[[package]] -name = "rustls-pki-types" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" - [[package]] name = "rustls-webpki" -version = "0.102.2" +version = "0.103.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" dependencies = [ "ring", "rustls-pki-types", @@ -2585,15 +2951,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "same-file" @@ -2606,11 +2972,35 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", ] [[package]] @@ -2621,11 +3011,11 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "security-framework" -version = "2.9.2" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.10.0", "core-foundation", "core-foundation-sys", "libc", @@ -2634,9 +3024,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -2644,58 +3034,81 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "serde" -version = "1.0.198" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_bytes" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.198" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] name = "serde_json" -version = "1.0.116" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", + "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "serde_path_to_error" -version = "0.1.15" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" dependencies = [ "itoa", "serde", + "serde_core", ] [[package]] name = "serde_spanned" -version = "0.6.5" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -2712,17 +3125,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.7.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a" +checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.6", - "serde", - "serde_derive", + "indexmap 2.12.0", + "schemars 0.9.0", + "schemars 1.0.4", + "serde_core", "serde_json", "serde_with_macros", "time", @@ -2730,14 +3144,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.7.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655" +checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] @@ -2764,9 +3178,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -2782,58 +3196,55 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] [[package]] -name = "similar" -version = "2.4.0" +name = "simd-adler32" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] -name = "slab" -version = "0.4.9" +name = "similar" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" [[package]] -name = "smallvec" -version = "1.13.2" +name = "slab" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] -name = "smawk" -version = "0.3.2" +name = "smallvec" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.60.2", ] -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - [[package]] name = "ssri" version = "9.2.0" @@ -2847,48 +3258,42 @@ dependencies = [ "serde", "sha-1", "sha2", - "thiserror", + "thiserror 1.0.69", "xxhash-rust", ] [[package]] name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "strsim" -version = "0.10.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "supports-color" -version = "3.0.0" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9829b314621dfc575df4e409e79f9d6a66a3bd707ab73f23cb4aa3a854ac854f" +checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6" dependencies = [ "is_ci", ] [[package]] name = "supports-hyperlinks" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c0a1e5168041f5f3ff68ff7d95dcb9c8749df29f6e7e89ada40dd4c9de404ee" +checksum = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b" [[package]] name = "supports-unicode" @@ -2898,9 +3303,9 @@ checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" [[package]] name = "syn" -version = "1.0.109" +version = "2.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" dependencies = [ "proc-macro2", "quote", @@ -2908,35 +3313,32 @@ dependencies = [ ] [[package]] -name = "syn" -version = "2.0.48" +name = "sync_wrapper" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "futures-core", ] [[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.1" +name = "synstructure" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] name = "tabwriter" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a327282c4f64f6dc37e3bba4c2b6842cc3a992f204fa58d917696a89f691e5f6" +checksum = "fce91f2f0ec87dff7e6bcbbeb267439aa1188703003c6055193c821487400432" dependencies = [ - "unicode-width", + "unicode-width 0.2.2", ] [[package]] @@ -2947,9 +3349,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.40" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" dependencies = [ "filetime", "libc", @@ -2958,24 +3360,25 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.1" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ - "cfg-if", "fastrand", + "getrandom 0.3.4", + "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "terminal_size" -version = "0.3.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" dependencies = [ "rustix", - "windows-sys 0.48.0", + "windows-sys 0.60.2", ] [[package]] @@ -2985,60 +3388,78 @@ dependencies = [ "data-encoding", "dirs", "fslock", - "rattler_digest", + "rattler_digest 0.19.5", "reqwest", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "url", ] [[package]] name = "textwrap" -version = "0.16.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" dependencies = [ - "smawk", "unicode-linebreak", - "unicode-width", + "unicode-width 0.2.2", +] + +[[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 = "1.0.58" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.17", ] [[package]] name = "thiserror-impl" -version = "1.0.58" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] name = "time" -version = "0.3.34" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", "itoa", @@ -3051,20 +3472,30 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.17" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", ] +[[package]] +name = "tinystr" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinytemplate" version = "1.2.1" @@ -3077,9 +3508,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -3098,31 +3529,29 @@ checksum = "b130bd8a58c163224b44e217b4239ca7b927d82bf6cc2fea1fc561d15056e3f7" [[package]] name = "tokio" -version = "1.37.0" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", "libc", "mio", - "num_cpus", "pin-project-lite", "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] @@ -3137,20 +3566,19 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.25.0" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", - "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -3173,9 +3601,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -3183,53 +3611,69 @@ dependencies = [ "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] name = "toml" -version = "0.8.10" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" +checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" dependencies = [ - "serde", + "indexmap 2.12.0", + "serde_core", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_parser", + "toml_writer", + "winnow", ] [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "toml_edit" -version = "0.22.4" +version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" dependencies = [ - "indexmap 2.2.6", - "serde", - "serde_spanned", + "indexmap 2.12.0", "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +dependencies = [ "winnow", ] +[[package]] +name = "toml_writer" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" + [[package]] name = "tower" -version = "0.4.13" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "pin-project", "pin-project-lite", + "sync_wrapper", "tokio", "tower-layer", "tower-service", @@ -3242,7 +3686,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.10.0", "bytes", "http", "http-body", @@ -3252,23 +3696,41 @@ dependencies = [ "tower-service", ] +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.10.0", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -3278,20 +3740,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -3310,14 +3772,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", "smallvec", "thread_local", @@ -3328,11 +3790,10 @@ dependencies = [ [[package]] name = "tracing-test" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a2c0ff408fe918a94c428a3f2ad04e4afd5c95bbc08fcf868eff750c15728a4" +checksum = "557b891436fe0d5e0e363427fc7f217abf9ccd510d5136549847bdcbcd011d68" dependencies = [ - "lazy_static", "tracing-core", "tracing-subscriber", "tracing-test-macro", @@ -3340,13 +3801,12 @@ dependencies = [ [[package]] name = "tracing-test-macro" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258bc1c4f8e2e73a977812ab339d503e6feeb92700f6d07a6de4d321522d5c08" +checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" dependencies = [ - "lazy_static", "quote", - "syn 1.0.109", + "syn", ] [[package]] @@ -3357,27 +3817,21 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unicode-bidi" -version = "0.3.15" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-linebreak" @@ -3386,19 +3840,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" [[package]] -name = "unicode-normalization" -version = "0.1.22" +name = "unicode-width" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + +[[package]] +name = "unscanny" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47" [[package]] name = "untrusted" @@ -3408,9 +3865,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -3418,23 +3875,35 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf8-width" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -3442,17 +3911,26 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "version-ranges" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8d079415ceb2be83fc355adbadafe401307d5c309c7e6ade6638e6f9f42f42d" +dependencies = [ + "smallvec", +] + [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -3469,52 +3947,50 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasm-bindgen" -version = "0.2.91" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "cfg-if", - "wasm-bindgen-macro", + "wit-bindgen", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.91" +name = "wasm-bindgen" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ - "bumpalo", - "log", + "cfg-if", "once_cell", - "proc-macro2", - "quote", - "syn 2.0.48", + "rustversion", + "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3522,28 +3998,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.48", - "wasm-bindgen-backend", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-streams" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -3554,9 +4033,19 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -3564,21 +4053,20 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +checksum = "32b130c0d2d49f8b6889abc456e795e82525204f27c42cf767cf0d7734e089b8" dependencies = [ "rustls-pki-types", ] [[package]] name = "which" -version = "6.0.1" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7" +checksum = "d3fabb953106c3c8eea8306e4393700d7657561cb43122571b172bbfb7c7ba1d" dependencies = [ - "either", - "home", + "env_home", "rustix", "winsafe", ] @@ -3601,11 +4089,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "winapi", + "windows-sys 0.61.2", ] [[package]] @@ -3616,21 +4104,103 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.52.0" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections", + "windows-core", + "windows-future", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" dependencies = [ "windows-core", - "windows-targets 0.52.0", ] [[package]] name = "windows-core" -version = "0.52.0" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core", + "windows-link", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ - "windows-targets 0.52.0", + "windows-core", + "windows-link", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", ] [[package]] @@ -3648,7 +4218,34 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", ] [[package]] @@ -3668,17 +4265,44 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows-threading" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows-link", ] [[package]] @@ -3689,9 +4313,15 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -3701,9 +4331,15 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -3713,9 +4349,27 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -3725,9 +4379,15 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -3737,9 +4397,15 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -3749,9 +4415,15 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -3761,27 +4433,23 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "winnow" -version = "0.5.39" +name = "windows_x86_64_msvc" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29" -dependencies = [ - "memchr", -] +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] -name = "winreg" -version = "0.52.0" +name = "winnow" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ - "cfg-if", - "windows-sys 0.48.0", + "memchr", ] [[package]] @@ -3790,6 +4458,18 @@ version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" + +[[package]] +name = "writeable" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + [[package]] name = "wyz" version = "0.5.1" @@ -3801,71 +4481,205 @@ dependencies = [ [[package]] name = "xattr" -version = "1.3.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "linux-raw-sys", "rustix", ] [[package]] name = "xxhash-rust" -version = "0.8.8" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" + +[[package]] +name = "yoke" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerotrie" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] name = "zip" -version = "0.6.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +checksum = "eb2a05c7c36fde6c09b08576c9f7fb4cda705990f73b58fe011abf7dfb24168b" dependencies = [ "aes", - "byteorder", + "arbitrary", "bzip2", "constant_time_eq", "crc32fast", - "crossbeam-utils", + "deflate64", "flate2", + "getrandom 0.3.4", "hmac", + "indexmap 2.12.0", + "lzma-rust2", + "memchr", "pbkdf2", + "ppmd-rust", "sha1", "time", + "zeroize", + "zopfli", "zstd", ] +[[package]] +name = "zlib-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] + [[package]] name = "zstd" -version = "0.11.2+zstd.1.5.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" +version = "7.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" dependencies = [ - "libc", "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 1e1e3f27..d987ad12 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,9 +11,9 @@ categories = ["development-tools"] homepage = "https://github.com/prefix-dev/rip" repository = "https://github.com/prefix-dev/rip" license = "BSD-3-Clause" -edition = "2021" +edition = "2024" readme = "README.md" -rust-version = "1.70" +rust-version = "1.90" [workspace.metadata.release] allow-branch = ["main"] diff --git a/crates/rattler_installs_packages/Cargo.toml b/crates/rattler_installs_packages/Cargo.toml index d0c4403e..9c7b34f3 100644 --- a/crates/rattler_installs_packages/Cargo.toml +++ b/crates/rattler_installs_packages/Cargo.toml @@ -25,7 +25,7 @@ csv = "1.3.0" data-encoding = "2.5.0" dunce = "1.0.4" elsa = "1.10.0" -fs4 = "0.8.2" +fs4 = "0.13.1" futures = "0.3.30" html-escape = "0.2.13" # reqwest needs an update to 1.0.0 @@ -33,16 +33,16 @@ http = "1.1.0" http-cache-semantics = { version = "2.1.0", default-features = false, features = ["serde", "reqwest"] } include_dir = "0.7.3" indexmap = { version = "2.2.6", features = ["serde"] } -itertools = "0.12.1" +itertools = "0.14.0" miette = "7.2.0" mime = "0.3.17" once_cell = "1.19.0" parking_lot = "0.12.1" peg = "0.8.2" -pep440_rs = { version = "0.4.0", features = ["serde"] } -pep508_rs = { version = "0.3.0", features = ["serde"] } +pep440_rs = { version = "0.7.3" } +pep508_rs = { version = "0.9.2" } pin-project-lite = "0.2.14" -rattler_digest = { version = "0.19.3", features = ["serde"] } +rattler_digest = { version = "1.1.7", features = ["serde"] } regex = "1.10.4" reqwest = { version = "0.12.3", default-features = false, features = ["json", "stream"] } reqwest-middleware = "0.4.0" @@ -51,36 +51,36 @@ serde_json = "1.0.116" serde_with = "3.7.0" smallvec = { version = "1.13.2", features = ["const_generics", "const_new"] } tempfile = "3.10.1" -thiserror = "1.0.58" +thiserror = "2.0.17" tl = "0.7.8" tokio = { version = "1.37.0", features = ["process", "rt-multi-thread"] } tokio-util = { version = "0.7.10", features = ["compat"] } tracing = { version = "0.1.40", default-features = false, features = ["attributes"] } url = { version = "2.5.0", features = ["serde"] } -zip = "0.6.6" -resolvo = { version = "0.4.0", default-features = false, features = ["tokio"] } +zip = "6.0.0" +resolvo = { version = "0.10.1", default-features = false, features = ["tokio"] } pathdiff = "0.2.1" -async_zip = { version = "0.0.16", features = ["tokio", "deflate"] } +async_zip = { version = "0.0.18", features = ["tokio", "deflate"] } tar = "0.4.40" flate2 = "1.0.28" -pyproject-toml = "0.9.0" +pyproject-toml = "0.13.7" async-once-cell = "0.5.3" configparser = "3.0.4" cacache = { version = "13.0.0", default-features = false, features = ["tokio-runtime", "mmap"] } async-recursion = "1.1.0" -fs-err = "2.11.0" +fs-err = "3.1.3" fs_extra = "1.3.0" async_http_range_reader = "0.9.1" -which = "6.0.1" +which = "8.0.0" [dev-dependencies] anyhow = "1.0.82" axum = "0.7.5" -criterion = "0.5" +criterion = "0.7.0" insta = { version = "1.38.0", features = ["ron", "redactions"] } miette = { version = "7.2.0", features = ["fancy"] } once_cell = "1.19.0" -rstest = "0.19.0" +rstest = "0.26.1" test-utils = { path = "../test-utils" } tokio = { version = "1.37.0", features = ["rt", "macros", "rt-multi-thread"] } tokio-test = "0.4.4" diff --git a/crates/rattler_installs_packages/benches/html.rs b/crates/rattler_installs_packages/benches/html.rs index 450399b3..d76c3273 100644 --- a/crates/rattler_installs_packages/benches/html.rs +++ b/crates/rattler_installs_packages/benches/html.rs @@ -1,4 +1,4 @@ -use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion}; +use criterion::{BenchmarkId, Criterion, criterion_group, criterion_main}; use rattler_installs_packages::index::html::{parse_package_names_html, parse_project_info_html}; use std::str::FromStr; use url::Url; @@ -78,7 +78,7 @@ fn parse_package_names(c: &mut Criterion) { "#; c.bench_function("parse_package_names", |b| { - b.iter(|| parse_package_names_html(black_box(html))) + b.iter(|| parse_package_names_html(std::hint::black_box(html))) }); } diff --git a/crates/rattler_installs_packages/src/artifacts/sdist.rs b/crates/rattler_installs_packages/src/artifacts/sdist.rs index 2823eca5..233e242d 100644 --- a/crates/rattler_installs_packages/src/artifacts/sdist.rs +++ b/crates/rattler_installs_packages/src/artifacts/sdist.rs @@ -87,7 +87,7 @@ impl SDist { for i in 0..archive.len() { let mut file = archive.by_index(i)?; if let Some(file_path) = file.enclosed_name() { - if skip_first_component(file_path) == name.as_ref() { + if skip_first_component(&file_path) == name.as_ref() { let mut bytes = Vec::new(); file.read_to_end(&mut bytes)?; return Ok(Some(bytes)); @@ -133,7 +133,7 @@ impl SDist { } /// Get a lock on the inner data - pub fn lock_data(&self) -> parking_lot::MutexGuard> { + pub fn lock_data(&self) -> parking_lot::MutexGuard<'_, Box> { self.file.lock() } } @@ -243,22 +243,28 @@ enum Archives<'a> { fn generic_archive_reader( file: &mut Box, format: SDistFormat, -) -> std::io::Result { +) -> std::io::Result> { file.rewind()?; match format { SDistFormat::TarGz => { let bytes = GzDecoder::new(file); - Ok(Archives::TarArchive(Box::new(Archive::new(RawAndGzReader::Gz(bytes))))) + Ok(Archives::TarArchive(Box::new(Archive::new( + RawAndGzReader::Gz(bytes), + )))) } - SDistFormat::Tar => Ok(Archives::TarArchive(Box::new(Archive::new(RawAndGzReader::Raw(file))))), + SDistFormat::Tar => Ok(Archives::TarArchive(Box::new(Archive::new( + RawAndGzReader::Raw(file), + )))), SDistFormat::Zip => { let zip = ZipArchive::new(file)?; Ok(Archives::Zip(Box::new(zip))) - }, + } unsupported_format => Err(std::io::Error::new( ErrorKind::InvalidData, - format!("sdist archive format currently {unsupported_format} unsupported (only tar | tar.gz | zip are supported)"), + format!( + "sdist archive format currently {unsupported_format} unsupported (only tar | tar.gz | zip are supported)" + ), )), } } @@ -268,8 +274,8 @@ mod tests { use crate::artifacts::SDist; use crate::index::ArtifactRequest; use crate::python_env::{Pep508EnvMakers, PythonLocation, VEnv}; - use crate::resolve::solve_options::{ResolveOptions, SDistResolution}; use crate::resolve::PypiVersion; + use crate::resolve::solve_options::{ResolveOptions, SDistResolution}; use crate::types::{ArtifactFromSource, PackageName}; use crate::types::{ ArtifactInfo, ArtifactName, DistInfoMetadata, Extra, NormalizedPackageName, STreeFilename, @@ -313,7 +319,7 @@ mod tests { assert_ron_snapshot!(build_system, @r###" BuildSystem( requires: [ - "poetry-core >=1.0.0", + "poetry-core>=1.0.0", ], r#build-backend: Some("poetry.core.masonry.api"), r#backend-path: None, @@ -869,14 +875,15 @@ mod tests { venv.install_wheel(&whl, &Default::default()).unwrap(); // Check to make sure that the headers directory was created - assert!(venv - .root() - .join( - venv.install_paths() - .site_packages() - .join("rich/__init__.py") - ) - .exists()); + assert!( + venv.root() + .join( + venv.install_paths() + .site_packages() + .join("rich/__init__.py") + ) + .exists() + ); let whl_metadata = whl.metadata().unwrap(); diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_git_reference_source_code.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_git_reference_source_code.snap index 8c12c94a..b4f64d23 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_git_reference_source_code.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_git_reference_source_code.snap @@ -8,18 +8,7 @@ STree( source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 13, - 7, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.7.0", url: Url { scheme: "git+https", cannot_be_a_base: false, diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_git_reference_with_tag_source_code.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_git_reference_with_tag_source_code.snap index 5daa7e08..ff5281ed 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_git_reference_with_tag_source_code.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_git_reference_with_tag_source_code.snap @@ -7,314 +7,154 @@ WheelCoreMetadata { source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 1, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.0.0", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [ Requirement { - name: "colorama", - extras: None, + name: PackageName( + "colorama", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 4, - 3, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.4.3", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 0, - 5, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.5.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "commonmark", - extras: None, + name: PackageName( + "commonmark", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 9, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.9.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 0, - 10, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.10.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "dataclasses", - extras: None, + name: PackageName( + "dataclasses", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 7, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.7", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 0, - 8, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.8", }, ], ), ), ), - marker: Some( - And( - [ - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: GreaterEqual, - r_value: QuotedString( - "3.6", - ), - }, - ), - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.7", - ), - }, - ), - ], - ), - ), + marker: python_full_version == '3.6.*', + origin: None, }, Requirement { - name: "pprintpp", - extras: None, + name: PackageName( + "pprintpp", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 4, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.4.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 0, - 5, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.5.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "pygments", - extras: None, + name: PackageName( + "pygments", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 6, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.6.1", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 3, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "typing-extensions", - extras: None, + name: PackageName( + "typing-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - 4, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7.4", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 4, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "4.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, ], requires_python: Some( @@ -322,31 +162,11 @@ WheelCoreMetadata { [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 6, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.6", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 4, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "4.0", }, ], ), diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_http_reference_source_code.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_http_reference_source_code.snap index 3b92d371..c435dc25 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_http_reference_source_code.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_http_reference_source_code.snap @@ -7,207 +7,102 @@ WheelCoreMetadata { source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 13, - 7, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.7.0", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [ Requirement { - name: "ipywidgets", - extras: None, + name: PackageName( + "ipywidgets", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 7, - 5, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.5.1", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 9, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "9", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "markdown-it-py", - extras: None, + name: PackageName( + "markdown-it-py", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 2, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.2.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "pygments", - extras: None, + name: PackageName( + "pygments", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 13, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.13.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 3, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "typing-extensions", - extras: None, + name: PackageName( + "typing-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 4, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "4.0.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 5, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "5.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.9", - ), - }, - ), - ), + marker: python_full_version < '3.9', + origin: None, }, ], requires_python: Some( @@ -215,18 +110,7 @@ WheelCoreMetadata { [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7.0", }, ], ), diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_no_metadata.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_no_metadata.snap index e148bc14..79168916 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_no_metadata.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_no_metadata.snap @@ -7,207 +7,102 @@ WheelCoreMetadata { source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 13, - 6, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.6.0", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [ Requirement { - name: "ipywidgets", - extras: None, + name: PackageName( + "ipywidgets", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 7, - 5, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.5.1", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 9, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "9", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "markdown-it-py", - extras: None, + name: PackageName( + "markdown-it-py", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 2, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.2.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "pygments", - extras: None, + name: PackageName( + "pygments", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 13, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.13.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 3, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "typing-extensions", - extras: None, + name: PackageName( + "typing-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 4, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "4.0.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 5, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "5.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.9", - ), - }, - ), - ), + marker: python_full_version < '3.9', + origin: None, }, ], requires_python: Some( @@ -215,18 +110,7 @@ WheelCoreMetadata { [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7.0", }, ], ), diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_sdist_as_source_dependency.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_sdist_as_source_dependency.snap index 14efab57..838300f1 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_sdist_as_source_dependency.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_sdist_as_source_dependency.snap @@ -8,18 +8,7 @@ SDist( source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 13, - 6, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.6.0", format: TarGz, }, ) diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_with_metadata.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_with_metadata.snap index e148bc14..79168916 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_with_metadata.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_rich_with_metadata.snap @@ -7,207 +7,102 @@ WheelCoreMetadata { source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 13, - 6, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.6.0", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [ Requirement { - name: "ipywidgets", - extras: None, + name: PackageName( + "ipywidgets", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 7, - 5, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.5.1", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 9, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "9", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "markdown-it-py", - extras: None, + name: PackageName( + "markdown-it-py", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 2, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.2.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "pygments", - extras: None, + name: PackageName( + "pygments", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 13, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.13.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 3, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "typing-extensions", - extras: None, + name: PackageName( + "typing-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 4, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "4.0.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 5, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "5.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.9", - ), - }, - ), - ), + marker: python_full_version < '3.9', + origin: None, }, ], requires_python: Some( @@ -215,18 +110,7 @@ WheelCoreMetadata { [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7.0", }, ], ), diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_and_pass_env_variables.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_and_pass_env_variables.snap index 7f85af76..40a68448 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_and_pass_env_variables.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_and_pass_env_variables.snap @@ -7,29 +7,9 @@ WheelCoreMetadata { source: "env_package", normalized: "env-package", }, - version: Version { - epoch: 0, - release: [ - 0, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.1", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [], requires_python: None, diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_and_with_clean_env_and_pass_env_variables.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_and_with_clean_env_and_pass_env_variables.snap index 7f85af76..40a68448 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_and_with_clean_env_and_pass_env_variables.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_and_with_clean_env_and_pass_env_variables.snap @@ -7,29 +7,9 @@ WheelCoreMetadata { source: "env_package", normalized: "env-package", }, - version: Version { - epoch: 0, - release: [ - 0, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.1", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [], requires_python: None, diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_with_backend_path.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_with_backend_path.snap index 93f3ad88..4aceb7ed 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_with_backend_path.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__build_wheel_with_backend_path.snap @@ -7,1437 +7,717 @@ WheelCoreMetadata { source: "setuptools", normalized: "setuptools", }, - version: Version { - epoch: 0, - release: [ - 69, - 0, - 2, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "69.0.2", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.1", ), requires_dist: [ Requirement { - name: "sphinx", - extras: None, + name: PackageName( + "sphinx", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 5, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.5", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), - ), + marker: extra == 'docs', + origin: None, }, Requirement { - name: "sphinx", - extras: None, + name: PackageName( + "sphinx", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 7, - 2, - 5, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.2.5", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), - ), + marker: extra == 'docs', + origin: None, }, Requirement { - name: "jaraco.packaging", - extras: None, + name: PackageName( + "jaraco-packaging", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 9, - 3, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "9.3", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), - ), + marker: extra == 'docs', + origin: None, }, Requirement { - name: "rst.linker", - extras: None, + name: PackageName( + "rst-linker", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 1, - 9, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.9", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), - ), + marker: extra == 'docs', + origin: None, }, Requirement { - name: "furo", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), + name: PackageName( + "furo", ), + extras: [], + version_or_url: None, + marker: extra == 'docs', + origin: None, }, Requirement { - name: "sphinx-lint", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), + name: PackageName( + "sphinx-lint", ), + extras: [], + version_or_url: None, + marker: extra == 'docs', + origin: None, }, Requirement { - name: "jaraco.tidelift", - extras: None, + name: PackageName( + "jaraco-tidelift", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 1, - 4, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.4", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), - ), + marker: extra == 'docs', + origin: None, }, Requirement { - name: "pygments-github-lexers", - extras: None, + name: PackageName( + "pygments-github-lexers", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: Equal, - version: Version { - epoch: 0, - release: [ - 0, - 0, - 5, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.0.5", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), - ), + marker: extra == 'docs', + origin: None, }, Requirement { - name: "sphinx-favicon", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), + name: PackageName( + "sphinx-favicon", ), + extras: [], + version_or_url: None, + marker: extra == 'docs', + origin: None, }, Requirement { - name: "sphinx-inline-tabs", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), + name: PackageName( + "sphinx-inline-tabs", ), + extras: [], + version_or_url: None, + marker: extra == 'docs', + origin: None, }, Requirement { - name: "sphinx-reredirects", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), + name: PackageName( + "sphinx-reredirects", ), + extras: [], + version_or_url: None, + marker: extra == 'docs', + origin: None, }, Requirement { - name: "sphinxcontrib-towncrier", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), + name: PackageName( + "sphinxcontrib-towncrier", ), + extras: [], + version_or_url: None, + marker: extra == 'docs', + origin: None, }, Requirement { - name: "sphinx-notfound-page", - extras: None, + name: PackageName( + "sphinx-notfound-page", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { - operator: LessThan, - version: Version { - epoch: 0, - release: [ - 2, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + operator: GreaterThanEqual, + version: "1", }, VersionSpecifier { - operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + operator: LessThan, + version: "2", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "docs", - ), - }, - ), - ), + marker: extra == 'docs', + origin: None, }, Requirement { - name: "pytest", - extras: None, + name: PackageName( + "pytest", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 6, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "6", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ), + marker: extra == 'testing', + origin: None, }, Requirement { - name: "pytest-checkdocs", - extras: None, + name: PackageName( + "pytest-checkdocs", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 4, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.4", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ), + marker: extra == 'testing', + origin: None, }, Requirement { - name: "pytest-enabler", - extras: None, + name: PackageName( + "pytest-enabler", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 2, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.2", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ), + marker: extra == 'testing', + origin: None, }, Requirement { - name: "flake8-2020", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), + name: PackageName( + "flake8-2020", ), + extras: [], + version_or_url: None, + marker: extra == 'testing', + origin: None, }, Requirement { - name: "virtualenv", - extras: None, + name: PackageName( + "virtualenv", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 13, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.0.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ), + marker: extra == 'testing', + origin: None, }, Requirement { - name: "wheel", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), + name: PackageName( + "wheel", ), + extras: [], + version_or_url: None, + marker: extra == 'testing', + origin: None, }, Requirement { - name: "pip", - extras: None, + name: PackageName( + "pip", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 19, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "19.1", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ), + marker: extra == 'testing', + origin: None, }, Requirement { - name: "jaraco.envs", - extras: None, + name: PackageName( + "jaraco-envs", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 2, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.2", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ), + marker: extra == 'testing', + origin: None, }, Requirement { - name: "pytest-xdist", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), + name: PackageName( + "pytest-xdist", ), + extras: [], + version_or_url: None, + marker: extra == 'testing', + origin: None, }, Requirement { - name: "jaraco.path", - extras: None, + name: PackageName( + "jaraco-path", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 2, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.2.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ), + marker: extra == 'testing', + origin: None, }, Requirement { - name: "build", - extras: Some( - [ - "virtualenv", - ], + name: PackageName( + "build", ), - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, + extras: [ + ExtraName( + "virtualenv", ), - ), + ], + version_or_url: None, + marker: extra == 'testing', + origin: None, }, Requirement { - name: "filelock", - extras: None, + name: PackageName( + "filelock", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 4, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.4.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ), + marker: extra == 'testing', + origin: None, }, Requirement { - name: "ini2toml", - extras: Some( - [ - "lite", - ], + name: PackageName( + "ini2toml", ), + extras: [ + ExtraName( + "lite", + ), + ], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 9, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.9", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ), + marker: extra == 'testing', + origin: None, }, Requirement { - name: "tomli-w", - extras: None, + name: PackageName( + "tomli-w", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 1, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.0.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ), + marker: extra == 'testing', + origin: None, }, Requirement { - name: "pytest-timeout", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), + name: PackageName( + "pytest-timeout", ), + extras: [], + version_or_url: None, + marker: extra == 'testing', + origin: None, }, Requirement { - name: "pytest", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing-integration", - ), - }, - ), + name: PackageName( + "pytest", ), + extras: [], + version_or_url: None, + marker: extra == 'testing-integration', + origin: None, }, Requirement { - name: "pytest-xdist", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing-integration", - ), - }, - ), + name: PackageName( + "pytest-xdist", ), + extras: [], + version_or_url: None, + marker: extra == 'testing-integration', + origin: None, }, Requirement { - name: "pytest-enabler", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing-integration", - ), - }, - ), + name: PackageName( + "pytest-enabler", ), + extras: [], + version_or_url: None, + marker: extra == 'testing-integration', + origin: None, }, Requirement { - name: "virtualenv", - extras: None, + name: PackageName( + "virtualenv", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 13, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.0.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing-integration", - ), - }, - ), - ), + marker: extra == 'testing-integration', + origin: None, }, Requirement { - name: "tomli", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing-integration", - ), - }, - ), + name: PackageName( + "tomli", ), + extras: [], + version_or_url: None, + marker: extra == 'testing-integration', + origin: None, }, Requirement { - name: "wheel", - extras: None, - version_or_url: None, - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing-integration", - ), - }, - ), + name: PackageName( + "wheel", ), + extras: [], + version_or_url: None, + marker: extra == 'testing-integration', + origin: None, }, Requirement { - name: "jaraco.path", - extras: None, + name: PackageName( + "jaraco-path", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 2, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.2.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing-integration", - ), - }, - ), - ), + marker: extra == 'testing-integration', + origin: None, }, Requirement { - name: "jaraco.envs", - extras: None, + name: PackageName( + "jaraco-envs", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 2, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.2", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing-integration", - ), - }, - ), - ), + marker: extra == 'testing-integration', + origin: None, }, Requirement { - name: "build", - extras: Some( - [ - "virtualenv", - ], + name: PackageName( + "build", ), + extras: [ + ExtraName( + "virtualenv", + ), + ], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 1, - 0, - 3, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.0.3", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing-integration", - ), - }, - ), - ), + marker: extra == 'testing-integration', + origin: None, }, Requirement { - name: "filelock", - extras: None, + name: PackageName( + "filelock", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 4, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.4.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing-integration", - ), - }, - ), - ), + marker: extra == 'testing-integration', + origin: None, }, Requirement { - name: "packaging", - extras: None, + name: PackageName( + "packaging", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 23, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "23.1", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing-integration", - ), - }, - ), - ), + marker: extra == 'testing-integration', + origin: None, }, Requirement { - name: "pytest-black", - extras: None, + name: PackageName( + "pytest-black", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 3, - 7, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.3.7", }, ], ), ), ), - marker: Some( - And( - [ - Expression( - MarkerExpression { - l_value: MarkerEnvString( - PlatformPythonImplementation, - ), - operator: NotEqual, - r_value: QuotedString( - "PyPy", - ), - }, - ), - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ], - ), - ), + marker: platform_python_implementation != 'PyPy' and extra == 'testing', + origin: None, }, Requirement { - name: "pytest-cov", - extras: None, - version_or_url: None, - marker: Some( - And( - [ - Expression( - MarkerExpression { - l_value: MarkerEnvString( - PlatformPythonImplementation, - ), - operator: NotEqual, - r_value: QuotedString( - "PyPy", - ), - }, - ), - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ], - ), + name: PackageName( + "pytest-cov", ), + extras: [], + version_or_url: None, + marker: platform_python_implementation != 'PyPy' and extra == 'testing', + origin: None, }, Requirement { - name: "pytest-mypy", - extras: None, + name: PackageName( + "pytest-mypy", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 9, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.9.1", }, ], ), ), ), - marker: Some( - And( - [ - Expression( - MarkerExpression { - l_value: MarkerEnvString( - PlatformPythonImplementation, - ), - operator: NotEqual, - r_value: QuotedString( - "PyPy", - ), - }, - ), - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ], - ), - ), + marker: platform_python_implementation != 'PyPy' and extra == 'testing', + origin: None, }, Requirement { - name: "jaraco.develop", - extras: None, + name: PackageName( + "jaraco-develop", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 7, - 21, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.21", }, ], ), ), ), - marker: Some( - And( - [ - And( - [ - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: GreaterEqual, - r_value: QuotedString( - "3.9", - ), - }, - ), - Expression( - MarkerExpression { - l_value: MarkerEnvString( - SysPlatform, - ), - operator: NotEqual, - r_value: QuotedString( - "cygwin", - ), - }, - ), - ], - ), - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ], - ), - ), + marker: python_full_version >= '3.9' and sys_platform != 'cygwin' and extra == 'testing', + origin: None, }, Requirement { - name: "pytest-ruff", - extras: None, - version_or_url: None, - marker: Some( - And( - [ - Expression( - MarkerExpression { - l_value: MarkerEnvString( - SysPlatform, - ), - operator: NotEqual, - r_value: QuotedString( - "cygwin", - ), - }, - ), - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ], - ), + name: PackageName( + "pytest-ruff", ), + extras: [], + version_or_url: None, + marker: sys_platform != 'cygwin' and extra == 'testing', + origin: None, }, Requirement { - name: "pytest-perf", - extras: None, - version_or_url: None, - marker: Some( - And( - [ - Expression( - MarkerExpression { - l_value: MarkerEnvString( - SysPlatform, - ), - operator: NotEqual, - r_value: QuotedString( - "cygwin", - ), - }, - ), - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "testing", - ), - }, - ), - ], - ), + name: PackageName( + "pytest-perf", ), + extras: [], + version_or_url: None, + marker: sys_platform != 'cygwin' and extra == 'testing', + origin: None, }, ], requires_python: Some( @@ -1445,17 +725,7 @@ WheelCoreMetadata { [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 8, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.8", }, ], ), diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_sdist_rich_without_calling_available_artifacts.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_sdist_rich_without_calling_available_artifacts.snap index 61c65b4a..b2798ea1 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_sdist_rich_without_calling_available_artifacts.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_sdist_rich_without_calling_available_artifacts.snap @@ -7,207 +7,102 @@ WheelCoreMetadata { source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 13, - 6, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.6.0", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [ Requirement { - name: "ipywidgets", - extras: None, + name: PackageName( + "ipywidgets", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 7, - 5, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.5.1", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 9, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "9", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "markdown-it-py", - extras: None, + name: PackageName( + "markdown-it-py", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 2, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.2.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "pygments", - extras: None, + name: PackageName( + "pygments", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 13, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.13.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 3, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "typing-extensions", - extras: None, + name: PackageName( + "typing-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 4, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "4.0.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 5, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "5.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.9", - ), - }, - ), - ), + marker: python_full_version < '3.9', + origin: None, }, ], requires_python: Some( @@ -215,18 +110,7 @@ WheelCoreMetadata { [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7.0", }, ], ), diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_stree_rich_without_calling_available_artifacts.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_stree_rich_without_calling_available_artifacts.snap index e46bfc7a..82026a1b 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_stree_rich_without_calling_available_artifacts.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_stree_rich_without_calling_available_artifacts.snap @@ -7,203 +7,114 @@ WheelCoreMetadata { source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 13, - 6, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.6.0", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [ Requirement { - name: "ipywidgets", - extras: None, + name: PackageName( + "ipywidgets", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 7, - 5, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.5.1", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 9, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "9", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "markdown-it-py", - extras: None, + name: PackageName( + "markdown-it-py", + ), + extras: [], version_or_url: Some( Url( - Url { - scheme: "git+https", - cannot_be_a_base: false, - username: "", - password: None, - host: Some( - Domain( - "github.com", + VerbatimUrl { + url: Url { + scheme: "git+https", + cannot_be_a_base: false, + username: "", + password: None, + host: Some( + Domain( + "github.com", + ), ), + port: None, + path: "/executablebooks/markdown-it-py.git", + query: None, + fragment: None, + }, + given: Some( + "git+https://github.com/executablebooks/markdown-it-py.git", ), - port: None, - path: "/executablebooks/markdown-it-py.git", - query: None, - fragment: None, }, ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "pygments", - extras: None, + name: PackageName( + "pygments", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 13, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.13.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 3, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "typing-extensions", - extras: None, + name: PackageName( + "typing-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 4, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "4.0.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 5, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "5.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.9", - ), - }, - ), - ), + marker: python_full_version < '3.9', + origin: None, }, ], requires_python: Some( @@ -211,18 +122,7 @@ WheelCoreMetadata { [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7.0", }, ], ), diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_whl_rich_without_calling_available_artifacts.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_whl_rich_without_calling_available_artifacts.snap index af22f094..70dfcaee 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_whl_rich_without_calling_available_artifacts.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_only_metadata_for_local_whl_rich_without_calling_available_artifacts.snap @@ -4,466 +4,263 @@ expression: wheel_metadata.1.requires_dist --- [ Requirement { - name: "click", - extras: None, + name: PackageName( + "click", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 8, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "8.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "mypy-extensions", - extras: None, + name: PackageName( + "mypy-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 4, - 3, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.4.3", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "packaging", - extras: None, + name: PackageName( + "packaging", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 22, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "22.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "pathspec", - extras: None, + name: PackageName( + "pathspec", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 9, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.9.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "platformdirs", - extras: None, + name: PackageName( + "platformdirs", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "tomli", - extras: None, + name: PackageName( + "tomli", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 1, - 1, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.1.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.11", - ), - }, - ), - ), + marker: python_full_version < '3.11', + origin: None, }, Requirement { - name: "typed-ast", - extras: None, + name: PackageName( + "typed-ast", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 1, - 4, - 2, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.4.2", }, ], ), ), ), - marker: Some( - And( - [ - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.8", - ), - }, - ), - Expression( - MarkerExpression { - l_value: MarkerEnvString( - ImplementationName, - ), - operator: Equal, - r_value: QuotedString( - "cpython", - ), - }, - ), - ], - ), - ), + marker: python_full_version < '3.8' and implementation_name == 'cpython', + origin: None, }, Requirement { - name: "typing-extensions", - extras: None, + name: PackageName( + "typing-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 10, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.10.0.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.10", - ), - }, - ), - ), + marker: python_full_version < '3.10', + origin: None, }, Requirement { - name: "colorama", - extras: None, + name: PackageName( + "colorama", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 4, - 3, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.4.3", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "colorama", - ), - }, - ), - ), + marker: extra == 'colorama', + origin: None, }, Requirement { - name: "aiohttp", - extras: None, + name: PackageName( + "aiohttp", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - 4, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7.4", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "d", - ), - }, - ), - ), + marker: extra == 'd', + origin: None, }, Requirement { - name: "ipython", - extras: None, + name: PackageName( + "ipython", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 7, - 8, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.8.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "tokenize-rt", - extras: None, + name: PackageName( + "tokenize-rt", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 2, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.2.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "uvloop", - extras: None, + name: PackageName( + "uvloop", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 15, - 2, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.15.2", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "uvloop", - ), - }, - ), - ), + marker: extra == 'uvloop', + origin: None, }, ] diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_sdist_rich.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_sdist_rich.snap index fd3b9512..9b909a5b 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_sdist_rich.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_sdist_rich.snap @@ -7,207 +7,102 @@ WheelCoreMetadata { source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 13, - 6, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.6.0", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [ Requirement { - name: "ipywidgets", - extras: None, + name: PackageName( + "ipywidgets", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 7, - 5, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.5.1", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 9, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "9", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "markdown-it-py", - extras: None, + name: PackageName( + "markdown-it-py", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 2, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.2.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "pygments", - extras: None, + name: PackageName( + "pygments", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 13, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.13.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 3, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "typing-extensions", - extras: None, + name: PackageName( + "typing-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 4, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "4.0.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 5, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "5.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.9", - ), - }, - ), - ), + marker: python_full_version < '3.9', + origin: None, }, ], requires_python: Some( @@ -215,18 +110,7 @@ WheelCoreMetadata { [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7.0", }, ], ), diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_stree_rich.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_stree_rich.snap index 4e6fdbce..5517572f 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_stree_rich.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_stree_rich.snap @@ -7,203 +7,114 @@ WheelCoreMetadata { source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 13, - 6, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.6.0", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [ Requirement { - name: "ipywidgets", - extras: None, + name: PackageName( + "ipywidgets", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 7, - 5, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.5.1", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 9, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "9", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "markdown-it-py", - extras: None, + name: PackageName( + "markdown-it-py", + ), + extras: [], version_or_url: Some( Url( - Url { - scheme: "git+https", - cannot_be_a_base: false, - username: "", - password: None, - host: Some( - Domain( - "github.com", + VerbatimUrl { + url: Url { + scheme: "git+https", + cannot_be_a_base: false, + username: "", + password: None, + host: Some( + Domain( + "github.com", + ), ), + port: None, + path: "/executablebooks/markdown-it-py.git", + query: None, + fragment: None, + }, + given: Some( + "git+https://github.com/executablebooks/markdown-it-py.git", ), - port: None, - path: "/executablebooks/markdown-it-py.git", - query: None, - fragment: None, }, ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "pygments", - extras: None, + name: PackageName( + "pygments", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 13, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.13.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 3, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "typing-extensions", - extras: None, + name: PackageName( + "typing-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 4, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "4.0.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 5, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "5.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.9", - ), - }, - ), - ), + marker: python_full_version < '3.9', + origin: None, }, ], requires_python: Some( @@ -211,18 +122,7 @@ WheelCoreMetadata { [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7.0", }, ], ), diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_whl.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_whl.snap index c6499a2f..b65e5378 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_whl.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__get_whl_for_local_whl.snap @@ -4,466 +4,263 @@ expression: whl_metadata.1.requires_dist --- [ Requirement { - name: "click", - extras: None, + name: PackageName( + "click", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 8, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "8.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "mypy-extensions", - extras: None, + name: PackageName( + "mypy-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 4, - 3, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.4.3", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "packaging", - extras: None, + name: PackageName( + "packaging", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 22, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "22.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "pathspec", - extras: None, + name: PackageName( + "pathspec", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 9, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.9.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "platformdirs", - extras: None, + name: PackageName( + "platformdirs", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "tomli", - extras: None, + name: PackageName( + "tomli", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 1, - 1, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.1.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.11", - ), - }, - ), - ), + marker: python_full_version < '3.11', + origin: None, }, Requirement { - name: "typed-ast", - extras: None, + name: PackageName( + "typed-ast", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 1, - 4, - 2, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.4.2", }, ], ), ), ), - marker: Some( - And( - [ - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.8", - ), - }, - ), - Expression( - MarkerExpression { - l_value: MarkerEnvString( - ImplementationName, - ), - operator: Equal, - r_value: QuotedString( - "cpython", - ), - }, - ), - ], - ), - ), + marker: python_full_version < '3.8' and implementation_name == 'cpython', + origin: None, }, Requirement { - name: "typing-extensions", - extras: None, + name: PackageName( + "typing-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 10, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.10.0.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.10", - ), - }, - ), - ), + marker: python_full_version < '3.10', + origin: None, }, Requirement { - name: "colorama", - extras: None, + name: PackageName( + "colorama", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 4, - 3, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.4.3", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "colorama", - ), - }, - ), - ), + marker: extra == 'colorama', + origin: None, }, Requirement { - name: "aiohttp", - extras: None, + name: PackageName( + "aiohttp", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - 4, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7.4", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "d", - ), - }, - ), - ), + marker: extra == 'd', + origin: None, }, Requirement { - name: "ipython", - extras: None, + name: PackageName( + "ipython", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 7, - 8, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.8.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "tokenize-rt", - extras: None, + name: PackageName( + "tokenize-rt", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 2, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.2.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "uvloop", - extras: None, + name: PackageName( + "uvloop", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 0, - 15, - 2, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "0.15.2", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "uvloop", - ), - }, - ), - ), + marker: extra == 'uvloop', + origin: None, }, ] diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__read_zip_metadata.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__read_zip_metadata.snap index 4f1b7dbd..8e41ae95 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__read_zip_metadata.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__read_zip_metadata.snap @@ -7,49 +7,37 @@ WheelCoreMetadata { source: "filterpy", normalized: "filterpy", }, - version: Version { - epoch: 0, - release: [ - 1, - 4, - 5, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.4.5", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [ Requirement { - name: "numpy", - extras: None, + name: PackageName( + "numpy", + ), + extras: [], version_or_url: None, - marker: None, + marker: true, + origin: None, }, Requirement { - name: "scipy", - extras: None, + name: PackageName( + "scipy", + ), + extras: [], version_or_url: None, - marker: None, + marker: true, + origin: None, }, Requirement { - name: "matplotlib", - extras: None, + name: PackageName( + "matplotlib", + ), + extras: [], version_or_url: None, - marker: None, + marker: true, + origin: None, }, ], requires_python: None, diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__sdist_metadata.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__sdist_metadata.snap index a5ed1e11..650e8b56 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__sdist_metadata.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__sdist_metadata.snap @@ -7,207 +7,102 @@ WheelCoreMetadata { source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 13, - 6, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.6.0", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [ Requirement { - name: "ipywidgets", - extras: None, + name: PackageName( + "ipywidgets", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 7, - 5, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.5.1", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 9, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "9", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: Extra, - operator: Equal, - r_value: QuotedString( - "jupyter", - ), - }, - ), - ), + marker: extra == 'jupyter', + origin: None, }, Requirement { - name: "markdown-it-py", - extras: None, + name: PackageName( + "markdown-it-py", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 2, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.2.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "pygments", - extras: None, + name: PackageName( + "pygments", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 2, - 13, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.13.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 3, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.0.0", }, ], ), ), ), - marker: None, + marker: true, + origin: None, }, Requirement { - name: "typing-extensions", - extras: None, + name: PackageName( + "typing-extensions", + ), + extras: [], version_or_url: Some( VersionSpecifier( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 4, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "4.0.0", }, VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 5, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "5.0", }, ], ), ), ), - marker: Some( - Expression( - MarkerExpression { - l_value: MarkerEnvVersion( - PythonVersion, - ), - operator: LessThan, - r_value: QuotedString( - "3.9", - ), - }, - ), - ), + marker: python_full_version < '3.9', + origin: None, }, ], requires_python: Some( @@ -215,18 +110,7 @@ WheelCoreMetadata { [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7.0", }, ], ), diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__sdist_without_name.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__sdist_without_name.snap index 14efab57..838300f1 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__sdist_without_name.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__sdist_without_name.snap @@ -8,18 +8,7 @@ SDist( source: "rich", normalized: "rich", }, - version: Version { - epoch: 0, - release: [ - 13, - 6, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.6.0", format: TarGz, }, ) diff --git a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__zip_timestamps_1980.snap b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__zip_timestamps_1980.snap index 6eb8ee83..f5082019 100644 --- a/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__zip_timestamps_1980.snap +++ b/crates/rattler_installs_packages/src/artifacts/snapshots/rattler_installs_packages__artifacts__sdist__tests__zip_timestamps_1980.snap @@ -25,7 +25,7 @@ Ok( 32, 50, 46, - 51, + 52, 10, 78, 97, @@ -912,6 +912,28 @@ Ok( 101, 100, 10, + 76, + 105, + 99, + 101, + 110, + 115, + 101, + 45, + 70, + 105, + 108, + 101, + 58, + 32, + 76, + 73, + 67, + 69, + 78, + 83, + 69, + 10, 80, 114, 111, @@ -8886,30 +8908,9 @@ Ok( source: "tomli", normalized: "tomli", }, - version: Version { - epoch: 0, - release: [ - 2, - 0, - 1, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.0.1", metadata_version: MetadataVersion( - Version { - epoch: 0, - release: [ - 2, - 3, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + "2.4", ), requires_dist: [], requires_python: Some( @@ -8917,17 +8918,7 @@ Ok( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 3, - 7, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3.7", }, ], ), diff --git a/crates/rattler_installs_packages/src/artifacts/stree.rs b/crates/rattler_installs_packages/src/artifacts/stree.rs index 3e54ba3c..c4a796e7 100644 --- a/crates/rattler_installs_packages/src/artifacts/stree.rs +++ b/crates/rattler_installs_packages/src/artifacts/stree.rs @@ -19,7 +19,7 @@ pub struct STree { impl STree { /// Get a lock on the inner data - pub fn lock_data(&self) -> parking_lot::MutexGuard { + pub fn lock_data(&self) -> parking_lot::MutexGuard<'_, PathBuf> { self.location.lock() } diff --git a/crates/rattler_installs_packages/src/artifacts/wheel.rs b/crates/rattler_installs_packages/src/artifacts/wheel.rs index 749d1f5a..5f141bff 100644 --- a/crates/rattler_installs_packages/src/artifacts/wheel.rs +++ b/crates/rattler_installs_packages/src/artifacts/wheel.rs @@ -18,7 +18,7 @@ use std::{ str::FromStr, }; use thiserror::Error; -use zip::{result::ZipError, ZipArchive}; +use zip::{ZipArchive, result::ZipError}; /// A wheel file (`.whl`) in its archived form that is stored somewhere on disk. pub struct Wheel { diff --git a/crates/rattler_installs_packages/src/index/direct_url/git.rs b/crates/rattler_installs_packages/src/index/direct_url/git.rs index ef009b2a..63d23066 100644 --- a/crates/rattler_installs_packages/src/index/direct_url/git.rs +++ b/crates/rattler_installs_packages/src/index/direct_url/git.rs @@ -1,4 +1,4 @@ -use crate::index::git_interop::{git_clone, GitSource, ParsedUrl}; +use crate::index::git_interop::{GitSource, ParsedUrl, git_clone}; use crate::index::package_database::DirectUrlArtifactResponse; use crate::resolve::PypiVersion; use crate::types::{ @@ -8,7 +8,7 @@ use crate::types::{ use crate::wheel_builder::WheelBuilder; use indexmap::IndexMap; use miette::IntoDiagnostic; -use rattler_digest::{compute_bytes_digest, Sha256}; +use rattler_digest::{Sha256, compute_bytes_digest}; use std::str::FromStr; use std::sync::Arc; use url::Url; diff --git a/crates/rattler_installs_packages/src/index/direct_url/http.rs b/crates/rattler_installs_packages/src/index/direct_url/http.rs index 1842f654..c1ec11bb 100644 --- a/crates/rattler_installs_packages/src/index/direct_url/http.rs +++ b/crates/rattler_installs_packages/src/index/direct_url/http.rs @@ -1,6 +1,6 @@ use crate::artifacts::{SDist, Wheel}; use crate::index::http::Http; -use crate::index::{parse_hash, CacheMode}; +use crate::index::{CacheMode, parse_hash}; use crate::resolve::PypiVersion; use crate::types::{ ArtifactFromBytes, ArtifactHashes, ArtifactInfo, ArtifactType, DirectUrlHashes, DirectUrlJson, @@ -13,8 +13,8 @@ use indexmap::IndexMap; use miette::IntoDiagnostic; use pep440_rs::Version; use rattler_digest::Sha256; -use reqwest::header::HeaderMap; use reqwest::Method; +use reqwest::header::HeaderMap; use std::str::FromStr; use std::sync::Arc; use url::Url; diff --git a/crates/rattler_installs_packages/src/index/file_store.rs b/crates/rattler_installs_packages/src/index/file_store.rs index 63b098b0..ddbb594f 100644 --- a/crates/rattler_installs_packages/src/index/file_store.rs +++ b/crates/rattler_installs_packages/src/index/file_store.rs @@ -3,8 +3,8 @@ use crate::types::ArtifactHashes; use crate::utils::retry_interrupted; -use fs4::FileExt; use fs_err as fs; +use fs4::fs_std::FileExt; use std::{ io, io::{Read, Seek, SeekFrom, Write}, @@ -28,7 +28,7 @@ impl CacheKey for &T { impl CacheKey for [u8] { fn key(&self) -> PathBuf { let hash = rattler_digest::compute_bytes_digest::(self); - bytes_to_path_suffix(hash.as_slice()) + bytes_to_path_suffix(hash.as_ref()) } } @@ -54,7 +54,7 @@ impl CacheKey for ArtifactHashes { let mut path = PathBuf::new(); if let Some(sha256) = &self.sha256 { path.push("sha256"); - path.push(bytes_to_path_suffix(sha256.as_slice())) + path.push(bytes_to_path_suffix(sha256.as_ref())) } else { unreachable!("should never have an artifact hash without any hashes") } @@ -106,11 +106,11 @@ impl FileStore { /// Gets readable access to the data with the specified key. Returns `None` if no such key /// exists in the store. - pub async fn get(&self, key: &K) -> Option { - if let Some(lock) = self.lock_if_exists(key).await { - if let Some(reader) = lock.reader() { - return Some(reader.detach_unlocked()); - } + pub async fn get(&self, key: &K) -> Option> { + if let Some(lock) = self.lock_if_exists(key).await + && let Some(reader) = lock.reader() + { + return Some(reader.detach_unlocked()); } None } @@ -225,7 +225,7 @@ pub struct FileLock { impl FileLock { /// Creates a reader to read the contents of the locked file. Returns `None` if the file could /// not be opened. - pub fn reader(&self) -> Option { + pub fn reader(&self) -> Option> { Some(LockedReader { file: fs::File::open(&self.path).ok()?, _data: Default::default(), @@ -234,7 +234,7 @@ impl FileLock { /// Starts writing the contents of the file returning a writer. Call [`LockedWriter::commit`] to /// persist the data in the store. - pub fn begin(&self) -> io::Result { + pub fn begin(&self) -> io::Result> { Ok(LockedWriter { path: &self.path, f: tempfile::NamedTempFile::new_in(&self.tmp)?, diff --git a/crates/rattler_installs_packages/src/index/git_interop.rs b/crates/rattler_installs_packages/src/index/git_interop.rs index a3497fe0..a447c2c2 100644 --- a/crates/rattler_installs_packages/src/index/git_interop.rs +++ b/crates/rattler_installs_packages/src/index/git_interop.rs @@ -60,13 +60,13 @@ impl GitRev { } } -impl ToString for GitRev { - fn to_string(&self) -> String { +impl std::fmt::Display for GitRev { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { - Self::Branch(branch) => format!("refs/heads/{}", branch), - Self::Tag(tag) => format!("refs/tags/{}", tag), - Self::Head => "HEAD".into(), - Self::Commit(commit) => commit.clone(), + Self::Branch(branch) => write!(f, "refs/heads/{}", branch), + Self::Tag(tag) => write!(f, "refs/tags/{}", tag), + Self::Head => write!(f, "HEAD"), + Self::Commit(commit) => write!(f, "{}", commit), } } } @@ -139,7 +139,8 @@ impl ParsedUrl { /// and return url without revision and the revision fn extract_revision_from_git_url(url: &str) -> Option { // Split the string at '@' and take the second part - let rev = if url.contains('@') { + + if url.contains('@') { let split: Vec<&str> = url.split('@').collect(); if let Some((rev, _)) = split.split_last() { Some(String::from(*rev)) @@ -148,18 +149,16 @@ impl ParsedUrl { } } else { None - }; - - rev + } } fn subdirectory_fragment(url: &str) -> Option { let subdirectory_fragment_re = Regex::new(r#"[#&]subdirectory=([^&]*)"#).unwrap(); - if let Some(captures) = subdirectory_fragment_re.captures(url) { - if let Some(subdirectory) = captures.get(1) { - return Some(subdirectory.as_str().to_string()); - } + if let Some(captures) = subdirectory_fragment_re.captures(url) + && let Some(subdirectory) = captures.get(1) + { + return Some(subdirectory.as_str().to_string()); } None } @@ -172,9 +171,8 @@ impl ParsedUrl { }); // Remove everything after ".git" - let clean_url = url.chars().take(repo_index).collect(); - clean_url + url.chars().take(repo_index).collect() } } @@ -308,13 +306,13 @@ pub fn git_clone(source: &GitSource) -> Result<(PathBuf, GitRev), SourceError> { )); } - let tmp_dir = tempfile::tempdir().unwrap().into_path(); + let tmp_dir = tempfile::tempdir().unwrap().keep(); let cache_dir = tmp_dir.join("rip-git-cache"); let recipe_dir = tmp_dir.join("rip-clone-dir"); let filename = match &source.url() { - GitUrl::Url(url) => (|| Some(url.path_segments()?.last()?.to_string()))() + GitUrl::Url(url) => (|| Some(url.path_segments()?.next_back()?.to_string()))() .ok_or_else(|| SourceError::GitErrorStr("failed to get filename from url"))?, GitUrl::Path(path) => recipe_dir .join(path) diff --git a/crates/rattler_installs_packages/src/index/html.rs b/crates/rattler_installs_packages/src/index/html.rs index 5f7add27..8a449bef 100644 --- a/crates/rattler_installs_packages/src/index/html.rs +++ b/crates/rattler_installs_packages/src/index/html.rs @@ -3,10 +3,10 @@ use std::str::FromStr; use std::{borrow::Borrow, default::Default}; use crate::{types::ArtifactHashes, types::ArtifactName, types::NormalizedPackageName}; -use miette::{miette, IntoDiagnostic}; +use miette::{IntoDiagnostic, miette}; use pep440_rs::VersionSpecifiers; -use rattler_digest::{parse_digest_from_hex, Sha256}; +use rattler_digest::{Sha256, parse_digest_from_hex}; use tl::HTMLTag; use url::Url; diff --git a/crates/rattler_installs_packages/src/index/http.rs b/crates/rattler_installs_packages/src/index/http.rs index 0f0ea053..70b4d53e 100644 --- a/crates/rattler_installs_packages/src/index/http.rs +++ b/crates/rattler_installs_packages/src/index/http.rs @@ -7,7 +7,7 @@ use futures::{Stream, StreamExt, TryStreamExt}; use http_cache_semantics::{AfterResponse, BeforeRequest, CachePolicy}; use miette::Diagnostic; use reqwest::header::{ACCEPT, CACHE_CONTROL}; -use reqwest::{header::HeaderMap, Method}; +use reqwest::{Method, header::HeaderMap}; use reqwest_middleware::ClientWithMiddleware; use serde::{Deserialize, Serialize}; use std::io; @@ -321,12 +321,12 @@ fn verify_cache_bom_and_version( } /// Fill the cache with the -async fn fill_cache_async( +async fn fill_cache_async> + Send + Unpin>( policy: &CachePolicy, url: &Url, - mut body: impl Stream> + Send + Unpin, + mut body: S, handle: FileLock, -) -> Result { +) -> Result, std::io::Error> { let cache_writer = handle.begin()?; let mut buf_cache_writer = BufWriter::new(cache_writer); @@ -369,11 +369,7 @@ async fn fill_cache_async( buf_cache_writer.seek(SeekFrom::Start(body_start)).unwrap(); while let Some(bytes) = body.next().await { - buf_cache_writer.write_all( - bytes - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))? - .as_ref(), - )?; + buf_cache_writer.write_all(bytes.map_err(std::io::Error::other)?.as_ref())?; } let body_end = buf_cache_writer.stream_position()?; @@ -424,7 +420,7 @@ fn body_to_streaming_or_local( ) -> StreamingOrLocal { StreamingOrLocal::Streaming(Box::new( stream - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e)) + .map_err(std::io::Error::other) .into_async_read() .compat(), )) @@ -434,16 +430,16 @@ fn body_to_streaming_or_local( mod tests { use crate::index::{ file_store::FileStore, - http::{write_cache_bom_and_metadata, CACHE_BOM, CURRENT_VERSION}, + http::{CACHE_BOM, CURRENT_VERSION, write_cache_bom_and_metadata}, }; - use http::{header::CACHE_CONTROL, HeaderMap, HeaderValue, Method}; + use http::{HeaderMap, HeaderValue, Method, header::CACHE_CONTROL}; use reqwest::Client; use reqwest_middleware::ClientWithMiddleware; use std::{fs, io::BufWriter, sync::Arc}; use tempfile::TempDir; - use super::{key_for_request, read_cache, CacheMode, Http}; + use super::{CacheMode, Http, key_for_request, read_cache}; fn get_http_client() -> (Arc, TempDir) { let tempdir = tempfile::tempdir().unwrap(); diff --git a/crates/rattler_installs_packages/src/index/lazy_metadata.rs b/crates/rattler_installs_packages/src/index/lazy_metadata.rs index 582fbcef..fc14e52d 100644 --- a/crates/rattler_installs_packages/src/index/lazy_metadata.rs +++ b/crates/rattler_installs_packages/src/index/lazy_metadata.rs @@ -1,7 +1,8 @@ -use crate::artifacts::wheel::{find_dist_info_metadata, WheelVitalsError}; +use crate::artifacts::wheel::{WheelVitalsError, find_dist_info_metadata}; use crate::types::{WheelCoreMetadata, WheelFilename}; use async_http_range_reader::AsyncHttpRangeReader; use async_zip::base::read::seek::ZipFileReader; +use tokio::io::BufReader; use tokio_util::compat::TokioAsyncReadCompatExt; /// Reads the metadata from a wheel by only reading parts of the wheel zip. @@ -23,7 +24,8 @@ pub(crate) async fn lazy_read_wheel_metadata( .await; // Construct a zip reader to uses the stream. - let mut reader = ZipFileReader::new(stream.compat()) + // Wrap in BufReader since async_zip now requires AsyncBufRead + let mut reader = ZipFileReader::new(BufReader::new(stream).compat()) .await .map_err(|err| WheelVitalsError::from_async_zip("/".into(), err))?; @@ -50,12 +52,13 @@ pub(crate) async fn lazy_read_wheel_metadata( // The zip archive uses as BufReader which reads in chunks of 8192. To ensure we prefetch // enough data we round the size up to the nearest multiple of the buffer size. let buffer_size = 8192; - let size = ((size + buffer_size - 1) / buffer_size) * buffer_size; + let size = size.div_ceil(buffer_size) * buffer_size; // Fetch the bytes from the zip archive that contain the requested file. reader .inner_mut() .get_mut() + .get_mut() .prefetch(offset..offset + size) .await; @@ -72,7 +75,7 @@ pub(crate) async fn lazy_read_wheel_metadata( // Parse the wheel data let metadata = WheelCoreMetadata::try_from(contents.as_slice())?; - let stream = reader.into_inner().into_inner(); + let stream = reader.into_inner().into_inner().into_inner(); let ranges = stream.requested_ranges().await; let total_bytes_fetched: u64 = ranges.iter().map(|r| r.end - r.start).sum(); tracing::debug!( diff --git a/crates/rattler_installs_packages/src/index/package_database.rs b/crates/rattler_installs_packages/src/index/package_database.rs index 2212c164..4ac46603 100644 --- a/crates/rattler_installs_packages/src/index/package_database.rs +++ b/crates/rattler_installs_packages/src/index/package_database.rs @@ -18,13 +18,13 @@ use crate::{ use async_http_range_reader::{AsyncHttpRangeReader, CheckSupportMethod}; use async_recursion::async_recursion; use elsa::sync::FrozenMap; -use futures::{pin_mut, stream, StreamExt}; +use futures::{StreamExt, pin_mut, stream}; use indexmap::IndexMap; use miette::{self, Diagnostic, IntoDiagnostic}; -use reqwest::header::{HeaderMap, HeaderValue, CONTENT_TYPE}; use reqwest::Method; +use reqwest::header::{CONTENT_TYPE, HeaderMap, HeaderValue}; -use reqwest::{header::CACHE_CONTROL, StatusCode}; +use reqwest::{StatusCode, header::CACHE_CONTROL}; use reqwest_middleware::ClientWithMiddleware; use std::borrow::Borrow; @@ -648,7 +648,9 @@ impl PackageDb { return Ok(Some(metadata)); } Err(err) => { - tracing::warn!("failed to sparsely read wheel file: {err}, falling back to downloading the whole file"); + tracing::warn!( + "failed to sparsely read wheel file: {err}, falling back to downloading the whole file" + ); } } @@ -762,10 +764,10 @@ async fn fetch_simple_api( { Ok(response) => response, Err(err) => { - if let HttpRequestError::HttpError(err) = &err { - if err.status() == Some(StatusCode::NOT_FOUND) { - return Ok(None); - } + if let HttpRequestError::HttpError(err) = &err + && err.status() == Some(StatusCode::NOT_FOUND) + { + return Ok(None); } return Err(err.into()); } @@ -810,9 +812,9 @@ mod test { use tokio::task::JoinHandle; use crate::index::package_sources::PackageSourcesBuilder; + use axum::Router; use axum::response::{Html, IntoResponse}; use axum::routing::get; - use axum::Router; use insta::assert_debug_snapshot; use std::future::IntoFuture; use std::net::SocketAddr; @@ -963,17 +965,7 @@ mod test { assert_debug_snapshot!(test_package_result.keys(), @r###" [ Version { - version: Version { - epoch: 0, - release: [ - 1, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.0", package_allows_prerelease: false, }, ] diff --git a/crates/rattler_installs_packages/src/install/install_paths.rs b/crates/rattler_installs_packages/src/install/install_paths.rs index 481f7bbe..49990454 100644 --- a/crates/rattler_installs_packages/src/install/install_paths.rs +++ b/crates/rattler_installs_packages/src/install/install_paths.rs @@ -96,7 +96,7 @@ impl InstallPaths { } /// Matches the different categories to their install paths. - pub fn match_category(&self, category: &str, distribution_name: &str) -> Option> { + pub fn match_category(&self, category: &str, distribution_name: &str) -> Option> { match category { "purelib" => Some(self.purelib().into()), "platlib" => Some(self.platlib().into()), diff --git a/crates/rattler_installs_packages/src/install/mod.rs b/crates/rattler_installs_packages/src/install/mod.rs index 34f67d23..1f81bf15 100644 --- a/crates/rattler_installs_packages/src/install/mod.rs +++ b/crates/rattler_installs_packages/src/install/mod.rs @@ -1,12 +1,12 @@ //! Functionality to install wheels. use crate::{ - artifacts::wheel::WheelVitalsError, artifacts::Wheel, + artifacts::wheel::WheelVitalsError, python_env::{ByteCodeCompiler, CompilationError}, types::{DirectUrlJson, EntryPoint, Extra, Record, RecordEntry}, utils::ReadAndSeek, - win::launcher::{build_windows_launcher, LauncherType, WindowsLauncherArch}, + win::launcher::{LauncherType, WindowsLauncherArch, build_windows_launcher}, }; use configparser::ini::Ini; use data_encoding::BASE64URL_NOPAD; @@ -22,8 +22,8 @@ use std::{ sync::mpsc::channel, }; use thiserror::Error; -use zip::result::ZipError; use zip::ZipArchive; +use zip::result::ZipError; mod install_paths; @@ -185,7 +185,7 @@ pub fn install_wheel( let mut zip_entry = archive .by_index(index) .map_err(|e| InstallError::from_zip_error(format!(""), e))?; - let Some(relative_path) = zip_entry.enclosed_name().map(ToOwned::to_owned) else { + let Some(relative_path) = zip_entry.enclosed_name() else { // Skip invalid paths continue; }; @@ -196,7 +196,7 @@ pub fn install_wheel( // > 6. RECORD.jws is used for digital signatures. It is not mentioned in RECORD. // > 7. RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME // > signatures to secure their wheel files. It is not mentioned in RECORD. - if relative_path == record_relative_path + if relative_path == *record_relative_path || relative_path == record_relative_path.with_extension("jws") || relative_path == record_relative_path.with_extension("p7s") { @@ -277,22 +277,19 @@ pub fn install_wheel( }; // If the file is a python file we need to compile it to bytecode - if let Some(bytecode_compiler) = options.byte_code_compiler.as_ref() { - if destination.extension() == Some(OsStr::new("py")) { - let pyc_tx = pyc_tx.clone(); - let cloned_destination = destination.clone(); - bytecode_compiler - .compile(&destination, move |result| { - // Ignore any error that might occur due to the receiver being closed. - let _ = pyc_tx.send((cloned_destination, result)); - }) - .map_err(|err| { - InstallError::ByteCodeCompilationFailed( - destination.display().to_string(), - err, - ) - })?; - } + if let Some(bytecode_compiler) = options.byte_code_compiler.as_ref() + && destination.extension() == Some(OsStr::new("py")) + { + let pyc_tx = pyc_tx.clone(); + let cloned_destination = destination.clone(); + bytecode_compiler + .compile(&destination, move |result| { + // Ignore any error that might occur due to the receiver being closed. + let _ = pyc_tx.send((cloned_destination, result)); + }) + .map_err(|err| { + InstallError::ByteCodeCompilationFailed(destination.display().to_string(), err) + })?; } // Make sure the hash matches with what we expect @@ -821,7 +818,7 @@ mod test { use super::*; use crate::{ artifacts::wheel::*, - python_env::{system_python_executable, ByteCodeCompiler, PythonLocation, VEnv, WheelTags}, + python_env::{ByteCodeCompiler, PythonLocation, VEnv, WheelTags, system_python_executable}, types::{ DirectUrlHashes, DirectUrlJson, DirectUrlSource, NormalizedPackageName, WheelFilename, }, @@ -831,15 +828,21 @@ mod test { use std::fs; use std::path::{Path, PathBuf}; use std::str::FromStr; - use tempfile::{tempdir, TempDir}; + use tempfile::{TempDir, tempdir}; use test_utils::download_and_cache_file_async; use url::Url; const INSTALLER: &str = "pixi_test"; #[rstest] - #[case("https://files.pythonhosted.org/packages/58/76/705b5c776f783d1ba7c630347463d4ae323282bbd859a8e9420c7ff79581/selenium-4.1.0-py3-none-any.whl", "27e7b64df961d609f3d57237caa0df123abbbe22d038f2ec9e332fb90ec1a939")] - #[case("https://files.pythonhosted.org/packages/1e/27/47f73510c6b80d1ff0829474947537ae9ab8d516cc48c6320b7f3677fa54/selenium-2.53.2-py2.py3-none-any.whl", "fa8333cf3013497e60d87ba68cae65ead8e7fa208be88ab9c561556103f540ef")] + #[case( + "https://files.pythonhosted.org/packages/58/76/705b5c776f783d1ba7c630347463d4ae323282bbd859a8e9420c7ff79581/selenium-4.1.0-py3-none-any.whl", + "27e7b64df961d609f3d57237caa0df123abbbe22d038f2ec9e332fb90ec1a939" + )] + #[case( + "https://files.pythonhosted.org/packages/1e/27/47f73510c6b80d1ff0829474947537ae9ab8d516cc48c6320b7f3677fa54/selenium-2.53.2-py2.py3-none-any.whl", + "fa8333cf3013497e60d87ba68cae65ead8e7fa208be88ab9c561556103f540ef" + )] fn test_wheels(#[case] url: Url, #[case] sha256: &str) { test_wheel_unpack( test_utils::download_and_cache_file(url, sha256).unwrap(), @@ -936,6 +939,7 @@ mod test { } #[test] + #[cfg_attr(target_os = "macos", ignore)] fn test_byte_code_compilation() { // We check this specific package because some of the files will fail to compile. let package_path = test_utils::download_and_cache_file( diff --git a/crates/rattler_installs_packages/src/python_env/byte_code_compiler.rs b/crates/rattler_installs_packages/src/python_env/byte_code_compiler.rs index e13b989c..72e68f72 100644 --- a/crates/rattler_installs_packages/src/python_env/byte_code_compiler.rs +++ b/crates/rattler_installs_packages/src/python_env/byte_code_compiler.rs @@ -5,7 +5,7 @@ use std::{ io::{self, BufRead, BufReader, Write}, path::{Path, PathBuf}, process::{Command, Stdio}, - sync::mpsc::{channel, Sender}, + sync::mpsc::{Sender, channel}, }; use tempfile::NamedTempFile; use thiserror::Error; diff --git a/crates/rattler_installs_packages/src/python_env/distribution_finder.rs b/crates/rattler_installs_packages/src/python_env/distribution_finder.rs index 9596983e..654d0b00 100644 --- a/crates/rattler_installs_packages/src/python_env/distribution_finder.rs +++ b/crates/rattler_installs_packages/src/python_env/distribution_finder.rs @@ -67,14 +67,14 @@ pub fn find_distributions_in_directory( let mut result = Vec::new(); for entry in search_dir.read_dir()? { let entry = entry?; - if entry.file_type()?.is_dir() { - if let Some(dist) = analyze_distribution(entry.path())? { - result.push(Distribution { - dist_info: pathdiff::diff_paths(&dist.dist_info, search_dir) - .unwrap_or(dist.dist_info), - ..dist - }) - } + if entry.file_type()?.is_dir() + && let Some(dist) = analyze_distribution(entry.path())? + { + result.push(Distribution { + dist_info: pathdiff::diff_paths(&dist.dist_info, search_dir) + .unwrap_or(dist.dist_info), + ..dist + }) } } diff --git a/crates/rattler_installs_packages/src/python_env/env_markers/from_env.rs b/crates/rattler_installs_packages/src/python_env/env_markers/from_env.rs index 9bdd308f..f8cc6b2a 100644 --- a/crates/rattler_installs_packages/src/python_env/env_markers/from_env.rs +++ b/crates/rattler_installs_packages/src/python_env/env_markers/from_env.rs @@ -1,5 +1,5 @@ use super::Pep508EnvMakers; -use crate::python_env::{system_python_executable, FindPythonError}; +use crate::python_env::{FindPythonError, system_python_executable}; use std::io; use std::io::ErrorKind; use std::path::Path; @@ -44,7 +44,7 @@ impl Pep508EnvMakers { Err(e) if e.kind() == ErrorKind::NotFound => { return Err(FromPythonError::CouldNotFindPythonExecutable( FindPythonError::NotFound, - )) + )); } Err(e) => return Err(FromPythonError::FailedToExecute(e)), Ok(output) => output, diff --git a/crates/rattler_installs_packages/src/python_env/mod.rs b/crates/rattler_installs_packages/src/python_env/mod.rs index 80de3503..ec33907b 100644 --- a/crates/rattler_installs_packages/src/python_env/mod.rs +++ b/crates/rattler_installs_packages/src/python_env/mod.rs @@ -18,11 +18,11 @@ pub use tags::{WheelTag, WheelTags}; pub use byte_code_compiler::{ByteCodeCompiler, CompilationError, SpawnCompilerError}; pub use distribution_finder::{ - find_distributions_in_directory, find_distributions_in_venv, Distribution, - FindDistributionError, + Distribution, FindDistributionError, find_distributions_in_directory, + find_distributions_in_venv, }; pub use env_markers::Pep508EnvMakers; -pub(crate) use system_python::{system_python_executable, FindPythonError}; +pub(crate) use system_python::{FindPythonError, system_python_executable}; pub use system_python::{ParsePythonInterpreterVersionError, PythonInterpreterVersion}; -pub use uninstall::{uninstall_distribution, UninstallDistributionError}; +pub use uninstall::{UninstallDistributionError, uninstall_distribution}; pub use venv::{PythonLocation, VEnv, VEnvError}; diff --git a/crates/rattler_installs_packages/src/python_env/tags/from_env.rs b/crates/rattler_installs_packages/src/python_env/tags/from_env.rs index d2ab7a95..507d375b 100644 --- a/crates/rattler_installs_packages/src/python_env/tags/from_env.rs +++ b/crates/rattler_installs_packages/src/python_env/tags/from_env.rs @@ -1,4 +1,4 @@ -use crate::python_env::{system_python_executable, FindPythonError, WheelTag, WheelTags}; +use crate::python_env::{FindPythonError, WheelTag, WheelTags, system_python_executable}; use crate::utils::VENDORED_PACKAGING_DIR; use serde::Deserialize; use std::io; @@ -52,7 +52,7 @@ impl WheelTags { Err(e) if e.kind() == ErrorKind::NotFound => { return Err(FromPythonError::CouldNotFindPythonExecutable( FindPythonError::NotFound, - )) + )); } Err(e) => return Err(FromPythonError::FailedToExecute(e)), Ok(output) => output, diff --git a/crates/rattler_installs_packages/src/python_env/uninstall.rs b/crates/rattler_installs_packages/src/python_env/uninstall.rs index 7271aee7..36436fec 100644 --- a/crates/rattler_installs_packages/src/python_env/uninstall.rs +++ b/crates/rattler_installs_packages/src/python_env/uninstall.rs @@ -60,12 +60,12 @@ pub fn uninstall_distribution( let mut directories = HashSet::new(); for entry in record.into_iter() { let entry_path = site_packages_dir.join(&entry.path); - if let Err(e) = fs::remove_file(&entry_path) { - if e.kind() != std::io::ErrorKind::NotFound { - return Err(UninstallDistributionError::FailedToDeleteFile( - entry.path, e, - )); - } + if let Err(e) = fs::remove_file(&entry_path) + && e.kind() != std::io::ErrorKind::NotFound + { + return Err(UninstallDistributionError::FailedToDeleteFile( + entry.path, e, + )); } if let Some(parent) = entry_path.parent() { directories.insert(parent.to_path_buf()); diff --git a/crates/rattler_installs_packages/src/python_env/venv.rs b/crates/rattler_installs_packages/src/python_env/venv.rs index 046ef96b..46a274f4 100644 --- a/crates/rattler_installs_packages/src/python_env/venv.rs +++ b/crates/rattler_installs_packages/src/python_env/venv.rs @@ -4,11 +4,11 @@ //! and creating the necessary files. See: [VEnv](https://packaging.python.org/en/latest/specifications/virtual-environments/#declaring-installation-environments-as-python-virtual-environments) use crate::artifacts::wheel::Wheel; use crate::install::{ - install_wheel, InstallError, InstallPaths, InstallWheelOptions, InstalledWheel, + InstallError, InstallPaths, InstallWheelOptions, InstalledWheel, install_wheel, }; use crate::python_env::{ - system_python_executable, FindPythonError, ParsePythonInterpreterVersionError, - PythonInterpreterVersion, + FindPythonError, ParsePythonInterpreterVersionError, PythonInterpreterVersion, + system_python_executable, }; use fs_err as fs; use std::ffi::OsStr; diff --git a/crates/rattler_installs_packages/src/resolve/dependency_provider.rs b/crates/rattler_installs_packages/src/resolve/dependency_provider.rs index 0a5a4f7a..cb483b2d 100644 --- a/crates/rattler_installs_packages/src/resolve/dependency_provider.rs +++ b/crates/rattler_installs_packages/src/resolve/dependency_provider.rs @@ -1,7 +1,7 @@ use super::{ + PypiVersion, PypiVersionSet, pypi_version_types::PypiPackageName, solve_options::{PreReleaseResolution, ResolveOptions, SDistResolution}, - PypiVersion, PypiVersionSet, }; use crate::{ artifacts::{SDist, Wheel}, @@ -16,11 +16,12 @@ use elsa::FrozenMap; use itertools::Itertools; use miette::{Diagnostic, MietteDiagnostic}; use parking_lot::Mutex; -use pep440_rs::{Operator, VersionSpecifier, VersionSpecifiers}; -use pep508_rs::{MarkerEnvironment, Requirement, VersionOrUrl}; +use pep440_rs::{VersionSpecifier, VersionSpecifiers}; +use pep508_rs::{ExtraName, MarkerEnvironment, Requirement, VerbatimUrl, VersionOrUrl}; use resolvo::{ - Candidates, Dependencies, DependencyProvider, KnownDependencies, NameId, Pool, SolvableId, - SolverCache, + Candidates, ConditionalRequirement, Dependencies, DependencyProvider, KnownDependencies, + NameId, Requirement as ResolvoRequirement, SolvableId, SolverCache, StringId, VersionSetId, + utils::Pool, }; use std::{any::Any, borrow::Borrow, cmp::Ordering, rc::Rc, str::FromStr, sync::Arc}; use thiserror::Error; @@ -65,7 +66,7 @@ impl PypiDependencyProvider { }) } - fn filter_candidates<'a, A: Borrow>( + fn filter_artifact_candidates<'a, A: Borrow>( &self, artifacts: &'a [A], ) -> Result, &'static str> { @@ -169,7 +170,9 @@ impl PypiDependencyProvider { } if wheels.is_empty() && sdists.is_empty() { - return Err("none of the artifacts are compatible with the Python interpreter or glibc version and there are no supported sdists"); + return Err( + "none of the artifacts are compatible with the Python interpreter or glibc version and there are no supported sdists", + ); } } @@ -206,7 +209,9 @@ impl PypiDependencyProvider { #[derive(Debug, Error, Diagnostic, Clone)] pub(crate) enum MetadataError { - #[error("Extraction of metadata in case of wheels or building in case of sdists returned no results for following artifacts:\n{0}")] + #[error( + "Extraction of metadata in case of wheels or building in case of sdists returned no results for following artifacts:\n{0}" + )] NoMetadata(String), #[error("No metadata could be extracted for the following available artifacts:\n{artifacts}")] @@ -217,9 +222,65 @@ pub(crate) enum MetadataError { }, } -impl<'p> DependencyProvider for &'p PypiDependencyProvider { - fn pool(&self) -> Rc> { - self.pool.clone() +impl resolvo::Interner for &PypiDependencyProvider { + fn display_solvable(&self, solvable: SolvableId) -> impl std::fmt::Display + '_ { + let solvable = self.pool.resolve_solvable(solvable); + let name = self.pool.resolve_package_name(solvable.name); + let version = &solvable.record; + format!("{name}=={version}") + } + + fn display_name(&self, name: NameId) -> impl std::fmt::Display + '_ { + self.pool.resolve_package_name(name).to_string() + } + + fn display_version_set(&self, version_set: VersionSetId) -> impl std::fmt::Display + '_ { + let version_set = self.pool.resolve_version_set(version_set); + version_set.to_string() + } + + fn display_string(&self, string_id: StringId) -> impl std::fmt::Display + '_ { + self.pool.resolve_string(string_id) + } + + fn version_set_name(&self, version_set: VersionSetId) -> NameId { + self.pool.resolve_version_set_package_name(version_set) + } + + fn solvable_name(&self, solvable: SolvableId) -> NameId { + self.pool.resolve_solvable(solvable).name + } + + fn version_sets_in_union( + &self, + _version_set_union: resolvo::VersionSetUnionId, + ) -> impl Iterator { + std::iter::empty() + } + + fn resolve_condition(&self, _condition: resolvo::ConditionId) -> resolvo::Condition { + // For now, we don't use conditional requirements, so we just return a simple requirement condition + resolvo::Condition::Requirement(VersionSetId::default()) + } +} + +impl DependencyProvider for &PypiDependencyProvider { + async fn filter_candidates( + &self, + candidates: &[SolvableId], + version_set: VersionSetId, + inverse: bool, + ) -> Vec { + let version_set = self.pool.resolve_version_set(version_set); + candidates + .iter() + .copied() + .filter(|&candidate| { + let solvable = self.pool.resolve_solvable(candidate); + let contains = version_set.contains(&solvable.record); + if inverse { !contains } else { contains } + }) + .collect() } fn should_cancel_with_value(&self) -> Option> { @@ -230,11 +291,7 @@ impl<'p> DependencyProvider for &'p PypiDepende .map(|s| Box::new(s.clone()) as Box) } - async fn sort_candidates( - &self, - _: &SolverCache, - solvables: &mut [SolvableId], - ) { + async fn sort_candidates(&self, _: &SolverCache, solvables: &mut [SolvableId]) { solvables.sort_by(|&a, &b| { // First sort the solvables based on the artifact types we have available for them and // whether some of them are preferred. If one artifact type is preferred over another @@ -260,7 +317,7 @@ impl<'p> DependencyProvider for &'p PypiDepende let solvable_a = self.pool.resolve_solvable(a); let solvable_b = self.pool.resolve_solvable(b); - match (&solvable_a.inner(), &solvable_b.inner()) { + match (&solvable_a.record, &solvable_b.record) { // Sort Urls alphabetically // TODO: Do better (PypiVersion::Url(a), PypiVersion::Url(b)) => a.cmp(b), @@ -371,7 +428,7 @@ impl<'p> DependencyProvider for &'p PypiDepende candidates.candidates.push(solvable_id); // Determine the candidates - match self.filter_candidates(artifacts) { + match self.filter_artifact_candidates(artifacts) { Ok(artifacts) => { self.cached_artifacts .insert(solvable_id, artifacts.into_iter().cloned().collect()); @@ -423,8 +480,8 @@ impl<'p> DependencyProvider for &'p PypiDepende async fn get_dependencies(&self, solvable_id: SolvableId) -> Dependencies { let solvable = self.pool.resolve_solvable(solvable_id); - let package_name = self.pool.resolve_package_name(solvable.name_id()); - let package_version = solvable.inner(); + let package_name = self.pool.resolve_package_name(solvable.name); + let package_version = &solvable.record; tracing::info!( "obtaining dependency information from {}={}", @@ -444,18 +501,22 @@ impl<'p> DependencyProvider for &'p PypiDepende let specifiers = match package_version { PypiVersion::Version { version, .. } => { VersionOrUrl::VersionSpecifier(VersionSpecifiers::from_iter([ - VersionSpecifier::new(Operator::ExactEqual, version.clone(), false) - .expect("failed to construct equality version specifier"), + VersionSpecifier::equals_version(version.clone()), ])) } - PypiVersion::Url(url_version) => VersionOrUrl::Url(url_version.clone()), + PypiVersion::Url(url_version) => { + VersionOrUrl::Url(VerbatimUrl::from_url(url_version.clone())) + } }; let version_set_id = self.pool.intern_version_set( base_name_id, PypiVersionSet::from_spec(Some(specifiers), &self.options.pre_release_resolution), ); - dependencies.requirements.push(version_set_id); + dependencies.requirements.push(ConditionalRequirement { + condition: None, + requirement: ResolvoRequirement::Single(version_set_id), + }); } // Retrieve the artifacts that are applicable for this version @@ -556,11 +617,12 @@ impl<'p> DependencyProvider for &'p PypiDepende let specifiers = match package_version { PypiVersion::Version { version, .. } => { VersionOrUrl::VersionSpecifier(VersionSpecifiers::from_iter([ - VersionSpecifier::new(Operator::ExactEqual, version.clone(), false) - .expect("failed to construct equality version specifier"), + VersionSpecifier::equals_version(version.clone()), ])) } - PypiVersion::Url(url_version) => VersionOrUrl::Url(url_version.clone()), + PypiVersion::Url(url_version) => { + VersionOrUrl::Url(VerbatimUrl::from_url(url_version.clone())) + } }; let version_set_id = self.pool.intern_version_set( extra_name_id, @@ -573,30 +635,31 @@ impl<'p> DependencyProvider for &'p PypiDepende } } - let extras = package_name + let extras: Vec = package_name .extra() .into_iter() - .map(|e| e.as_str()) - .collect::>(); + .map(|e| ExtraName::new(e.as_str().to_string()).unwrap()) + .collect(); for requirement in metadata.requires_dist { // Evaluate environment markers - if let Some(markers) = requirement.marker.as_ref() { - if !markers.evaluate(&self.markers, &extras) { - continue; - } + if !requirement + .marker + .evaluate(&self.markers, extras.as_slice()) + { + continue; } // Add the dependency to the pool let Requirement { name, version_or_url, - extras, + extras: req_extras, .. } = requirement; - let name = PackageName::from_str(&name).expect("invalid package name"); + let package_name = PackageName::from_str(name.as_ref()).expect("invalid package name"); let dependency_name_id = self .pool - .intern_package_name(PypiPackageName::Base(name.clone().into())); + .intern_package_name(PypiPackageName::Base(package_name.clone().into())); let version_set_id = self.pool.intern_version_set( dependency_name_id, @@ -606,19 +669,25 @@ impl<'p> DependencyProvider for &'p PypiDepende ), ); - if let Some(VersionOrUrl::Url(url)) = version_or_url.clone() { + if let Some(VersionOrUrl::Url(url)) = version_or_url.clone() + && let Some(given) = url.given() + { self.name_to_url - .insert(name.clone().into(), url.clone().as_str().to_owned()); + .insert(package_name.clone().into(), given.to_owned()); } - dependencies.requirements.push(version_set_id); + dependencies.requirements.push(ConditionalRequirement { + condition: None, + requirement: ResolvoRequirement::Single(version_set_id), + }); // Add a unique package for each extra/optional dependency - for extra in extras.into_iter().flatten() { - let extra = Extra::from_str(&extra).expect("invalid extra name"); - let dependency_name_id = self - .pool - .intern_package_name(PypiPackageName::Extra(name.clone().into(), extra)); + for extra in req_extras { + let extra = Extra::from_str(extra.as_ref()).expect("invalid extra name"); + let dependency_name_id = self.pool.intern_package_name(PypiPackageName::Extra( + package_name.clone().into(), + extra, + )); let version_set_id = self.pool.intern_version_set( dependency_name_id, PypiVersionSet::from_spec( @@ -626,7 +695,10 @@ impl<'p> DependencyProvider for &'p PypiDepende &self.options.pre_release_resolution, ), ); - dependencies.requirements.push(version_set_id); + dependencies.requirements.push(ConditionalRequirement { + condition: None, + requirement: ResolvoRequirement::Single(version_set_id), + }); } } diff --git a/crates/rattler_installs_packages/src/resolve/mod.rs b/crates/rattler_installs_packages/src/resolve/mod.rs index 8bd8a96c..cd40cb8a 100644 --- a/crates/rattler_installs_packages/src/resolve/mod.rs +++ b/crates/rattler_installs_packages/src/resolve/mod.rs @@ -16,4 +16,4 @@ mod solve_types; pub use pypi_version_types::PypiVersion; pub use pypi_version_types::PypiVersionSet; -pub use solve::{resolve, PinnedPackage}; +pub use solve::{PinnedPackage, resolve}; diff --git a/crates/rattler_installs_packages/src/resolve/pypi_version_types.rs b/crates/rattler_installs_packages/src/resolve/pypi_version_types.rs index 238c6e04..e4dfbfcb 100644 --- a/crates/rattler_installs_packages/src/resolve/pypi_version_types.rs +++ b/crates/rattler_installs_packages/src/resolve/pypi_version_types.rs @@ -6,7 +6,7 @@ use crate::resolve::solve_options::PreReleaseResolution; use crate::types::{Extra, NormalizedPackageName}; use pep440_rs::Version; use pep508_rs::VersionOrUrl; -use resolvo::VersionSet; +use resolvo::utils::VersionSet; use serde::{Deserialize, Serialize}; use std::fmt::{Display, Formatter}; use url::Url; @@ -101,10 +101,13 @@ impl PypiVersion { impl VersionSet for PypiVersionSet { type V = PypiVersion; +} - fn contains(&self, v: &Self::V) -> bool { +impl PypiVersionSet { + /// Returns true if the given version is contained in this version set. + pub fn contains(&self, v: &PypiVersion) -> bool { match (self.spec.as_ref(), v) { - (Some(VersionOrUrl::Url(a)), PypiVersion::Url(b)) => a == b, + (Some(VersionOrUrl::Url(a)), PypiVersion::Url(b)) => a.given() == Some(b.as_str()), ( Some(VersionOrUrl::VersionSpecifier(spec)), PypiVersion::Version { diff --git a/crates/rattler_installs_packages/src/resolve/solve.rs b/crates/rattler_installs_packages/src/resolve/solve.rs index a46f5124..b92965d1 100644 --- a/crates/rattler_installs_packages/src/resolve/solve.rs +++ b/crates/rattler_installs_packages/src/resolve/solve.rs @@ -8,7 +8,10 @@ use crate::{types::ArtifactInfo, types::Extra, types::NormalizedPackageName}; use elsa::FrozenMap; use pep440_rs::Version; use pep508_rs::{MarkerEnvironment, Requirement, VersionOrUrl}; -use resolvo::{DefaultSolvableDisplay, Pool, Solver, UnsolvableOrCancelled}; +use resolvo::{ + ConditionalRequirement, Problem, Requirement as ResolvoRequirement, Solver, + UnsolvableOrCancelled, utils::Pool, +}; use std::collections::HashMap; use std::str::FromStr; use url::Url; @@ -104,32 +107,42 @@ fn resolve_inner<'r>( for Requirement { name, version_or_url, - extras, + extras: req_extras, .. } in requirements { - let name = PackageName::from_str(name).expect("invalid package name"); - let pypi_name = PypiPackageName::Base(name.clone().into()); + let package_name = PackageName::from_str(name.as_ref()).expect("invalid package name"); + let pypi_name = PypiPackageName::Base(package_name.clone().into()); let dependency_package_name = pool.intern_package_name(pypi_name.clone()); let version_set_id = pool.intern_version_set( dependency_package_name, PypiVersionSet::from_spec(version_or_url.clone(), &options.pre_release_resolution), ); - root_requirements.push(version_set_id); - - if let Some(VersionOrUrl::Url(url)) = version_or_url { - name_to_url.insert(pypi_name.base().clone(), url.clone().as_str().to_owned()); + root_requirements.push(ConditionalRequirement { + condition: None, + requirement: ResolvoRequirement::Single(version_set_id), + }); + + if let Some(VersionOrUrl::Url(url)) = &version_or_url + && let Some(given) = url.given() + { + name_to_url.insert(pypi_name.base().clone(), given.to_owned()); } - for extra in extras.iter().flatten() { - let extra: Extra = extra.parse().expect("invalid extra"); - let dependency_package_name = pool - .intern_package_name(PypiPackageName::Extra(name.clone().into(), extra.clone())); + for extra in req_extras { + let extra: Extra = extra.as_ref().parse().expect("invalid extra"); + let dependency_package_name = pool.intern_package_name(PypiPackageName::Extra( + package_name.clone().into(), + extra.clone(), + )); let version_set_id = pool.intern_version_set( dependency_package_name, PypiVersionSet::from_spec(version_or_url.clone(), &options.pre_release_resolution), ); - root_requirements.push(version_set_id); + root_requirements.push(ConditionalRequirement { + condition: None, + requirement: ResolvoRequirement::Single(version_set_id), + }); } } @@ -146,20 +159,14 @@ fn resolve_inner<'r>( // Invoke the solver to get a solution to the requirements let mut solver = Solver::new(&provider).with_runtime(tokio::runtime::Handle::current()); - let solvables = match solver.solve(root_requirements) { + let problem = Problem::default().requirements(root_requirements); + let solvables = match solver.solve(problem) { Ok(solvables) => solvables, Err(e) => { return match e { UnsolvableOrCancelled::Unsolvable(problem) => Err(miette::miette!( "{}", - problem - .display_user_friendly( - &solver, - solver.pool.clone(), - &DefaultSolvableDisplay - ) - .to_string() - .trim() + problem.display_user_friendly(&solver).to_string().trim() )), UnsolvableOrCancelled::Cancelled(e) => { let e = e.downcast::().expect("invalid cancellation error message, expected a MetadataError, this indicates an error in the code"); @@ -171,9 +178,9 @@ fn resolve_inner<'r>( }; let mut result: HashMap = HashMap::new(); for solvable_id in solvables { - let solvable = solver.pool.resolve_solvable(solvable_id); - let name = solver.pool.resolve_package_name(solvable.name_id()); - let version = solvable.inner(); + let solvable = provider.pool.resolve_solvable(solvable_id); + let name = provider.pool.resolve_package_name(solvable.name); + let version = &solvable.record; let artifacts: Vec<_> = provider .cached_artifacts diff --git a/crates/rattler_installs_packages/src/resolve/solve_options.rs b/crates/rattler_installs_packages/src/resolve/solve_options.rs index 306cb8ac..ebb3e209 100644 --- a/crates/rattler_installs_packages/src/resolve/solve_options.rs +++ b/crates/rattler_installs_packages/src/resolve/solve_options.rs @@ -2,12 +2,10 @@ use crate::{python_env::PythonLocation, types::NormalizedPackageName}; use pep508_rs::{Requirement, VersionOrUrl}; +use std::collections::HashMap; use std::sync::Arc; -use std::{collections::HashMap, str::FromStr}; use tokio::sync::Semaphore; -use crate::types::PackageName; - use super::PinnedPackage; /// Defines how to handle sdists during resolution. @@ -156,8 +154,8 @@ impl PreReleaseResolution { match &spec.version_or_url { Some(VersionOrUrl::VersionSpecifier(v)) => { if v.iter().any(|s| s.version().any_prerelease()) { - let name = PackageName::from_str(&spec.name).expect("invalid package name"); - allow_names.push(name.as_str().to_string()); + let name = &spec.name; + allow_names.push(name.as_ref().to_string()); } } _ => continue, diff --git a/crates/rattler_installs_packages/src/types/artifact_name.rs b/crates/rattler_installs_packages/src/types/artifact_name.rs index 49dcef58..cedca2d0 100644 --- a/crates/rattler_installs_packages/src/types/artifact_name.rs +++ b/crates/rattler_installs_packages/src/types/artifact_name.rs @@ -410,10 +410,10 @@ fn split_into_filename_rest<'a>( if char == '-' { let (name, rest) = (&s[..idx], &s[idx + 1..]); let parsed = name.parse::(); - if let Ok(parsed) = parsed { - if parsed == *normalized_package_name { - return Some((name, rest)); - } + if let Ok(parsed) = parsed + && parsed == *normalized_package_name + { + return Some((name, rest)); } } } diff --git a/crates/rattler_installs_packages/src/types/core_metadata.rs b/crates/rattler_installs_packages/src/types/core_metadata.rs index e4f558fd..9e2aaccf 100644 --- a/crates/rattler_installs_packages/src/types/core_metadata.rs +++ b/crates/rattler_installs_packages/src/types/core_metadata.rs @@ -7,7 +7,7 @@ use crate::{ types::Version, types::VersionSpecifiers, }; use once_cell::sync::Lazy; -use pep440_rs::Pep440Error; +use pep440_rs::{VersionParseError, VersionSpecifiersParseError}; use pep508_rs::Requirement; use std::{collections::HashSet, str::FromStr}; use thiserror::Error; @@ -91,7 +91,7 @@ pub enum WheelCoreMetaDataError { InvalidVersion(String), #[error("invalid Requires-Python: {0}")] - InvalidRequiresPython(#[source] Pep440Error), + InvalidRequiresPython(#[source] VersionSpecifiersParseError), #[error("unsupported METADATA version {0}")] UnsupportedVersion(Version), @@ -186,9 +186,9 @@ fn parse_common( let metadata_version = parsed .take("Metadata-Version") .map_err(|_| WheelCoreMetaDataError::MissingKey(String::from("Metadata-Version")))?; - let metadata_version: Version = metadata_version - .parse() - .map_err(WheelCoreMetaDataError::InvalidMetadataVersion)?; + let metadata_version: Version = metadata_version.parse().map_err(|e: VersionParseError| { + WheelCoreMetaDataError::InvalidMetadataVersion(e.to_string()) + })?; if metadata_version >= *NEXT_MAJOR_METADATA_VERSION { return Err(WheelCoreMetaDataError::UnsupportedVersion(metadata_version)); } @@ -202,9 +202,9 @@ fn parse_common( .take("Name") .map_err(|_| WheelCoreMetaDataError::MissingKey(String::from("Name")))? .parse()?, - version_str - .parse() - .map_err(WheelCoreMetaDataError::InvalidVersion)?, + version_str.parse().map_err(|e: VersionParseError| { + WheelCoreMetaDataError::InvalidVersion(e.to_string()) + })?, MetadataVersion(metadata_version), parsed, )) diff --git a/crates/rattler_installs_packages/src/types/entry_points.rs b/crates/rattler_installs_packages/src/types/entry_points.rs index 81b8e121..305cc60b 100644 --- a/crates/rattler_installs_packages/src/types/entry_points.rs +++ b/crates/rattler_installs_packages/src/types/entry_points.rs @@ -76,16 +76,16 @@ impl EntryPoint { .ok_or(ParseEntryPointError::InvalidFormat)?; // Check the extras part - if let Some(script_extras) = captures.name("extras") { - if let Some(extras) = extras { - let entry_point_extras = script_extras - .as_str() - .split(',') - .map(|extra| Extra::from_str(extra.trim())); - for entry_point_extras in entry_point_extras { - if !extras.contains(&entry_point_extras?) { - return Ok(None); - } + if let Some(script_extras) = captures.name("extras") + && let Some(extras) = extras + { + let entry_point_extras = script_extras + .as_str() + .split(',') + .map(|extra| Extra::from_str(extra.trim())); + for entry_point_extras in entry_point_extras { + if !extras.contains(&entry_point_extras?) { + return Ok(None); } } } diff --git a/crates/rattler_installs_packages/src/types/project_info.rs b/crates/rattler_installs_packages/src/types/project_info.rs index 504671c8..56d24bc3 100644 --- a/crates/rattler_installs_packages/src/types/project_info.rs +++ b/crates/rattler_installs_packages/src/types/project_info.rs @@ -3,9 +3,9 @@ use crate::types::ArtifactName; use crate::types::HasArtifactName; use pep440_rs::VersionSpecifiers; -use rattler_digest::{serde::SerializableHash, Sha256}; +use rattler_digest::{Sha256, serde::SerializableHash}; use serde::{Deserialize, Serialize}; -use serde_with::{serde_as, skip_serializing_none, DisplayFromStr, VecSkipError}; +use serde_with::{DisplayFromStr, VecSkipError, serde_as, skip_serializing_none}; /// Represents the result of the response from the Simple API. #[serde_as] diff --git a/crates/rattler_installs_packages/src/types/record.rs b/crates/rattler_installs_packages/src/types/record.rs index b83fdddc..9100fbb9 100644 --- a/crates/rattler_installs_packages/src/types/record.rs +++ b/crates/rattler_installs_packages/src/types/record.rs @@ -58,7 +58,7 @@ impl Record { } /// Returns an iterator over the entries in this instance. - pub fn iter(&self) -> std::slice::Iter { + pub fn iter(&self) -> std::slice::Iter<'_, RecordEntry> { self.entries.iter() } } diff --git a/crates/rattler_installs_packages/src/types/rfc822ish.rs b/crates/rattler_installs_packages/src/types/rfc822ish.rs index f8807db2..bf5801db 100644 --- a/crates/rattler_installs_packages/src/types/rfc822ish.rs +++ b/crates/rattler_installs_packages/src/types/rfc822ish.rs @@ -13,10 +13,9 @@ pub struct RFC822ish { impl RFC822ish { pub fn take_all(&mut self, key: &str) -> Vec { - match self.fields.remove(&key.to_ascii_lowercase()) { - Some(vec) => vec, - None => Vec::new(), - } + self.fields + .remove(&key.to_ascii_lowercase()) + .unwrap_or_default() } pub fn maybe_take(&mut self, key: &str) -> miette::Result> { diff --git a/crates/rattler_installs_packages/src/utils/mod.rs b/crates/rattler_installs_packages/src/utils/mod.rs index 8c1fde42..127c7a59 100644 --- a/crates/rattler_installs_packages/src/utils/mod.rs +++ b/crates/rattler_installs_packages/src/utils/mod.rs @@ -9,7 +9,7 @@ pub use test::{get_package_db, setup}; use std::path::{Component, Path, PathBuf}; -use include_dir::{include_dir, Dir}; +use include_dir::{Dir, include_dir}; use url::Url; pub use read_and_seek::ReadAndSeek; diff --git a/crates/rattler_installs_packages/src/utils/seek_slice.rs b/crates/rattler_installs_packages/src/utils/seek_slice.rs index 87a192b6..11562143 100644 --- a/crates/rattler_installs_packages/src/utils/seek_slice.rs +++ b/crates/rattler_installs_packages/src/utils/seek_slice.rs @@ -37,7 +37,10 @@ impl Seek for SeekSlice { if goal_idx < self.start || goal_idx > self.end { Err(io::Error::new( io::ErrorKind::InvalidInput, - format!("invalid seek to a negative or overflowing position (goal: {}, start: {}, end: {})", goal_idx, self.start, self.end), + format!( + "invalid seek to a negative or overflowing position (goal: {}, start: {}, end: {})", + goal_idx, self.start, self.end + ), )) } else { self.current = self.inner.seek(SeekFrom::Start(goal_idx))?; diff --git a/crates/rattler_installs_packages/src/wheel_builder/build_environment.rs b/crates/rattler_installs_packages/src/wheel_builder/build_environment.rs index 8243873b..d6688a1b 100644 --- a/crates/rattler_installs_packages/src/wheel_builder/build_environment.rs +++ b/crates/rattler_installs_packages/src/wheel_builder/build_environment.rs @@ -2,13 +2,13 @@ use crate::install::InstallWheelOptions; use crate::types::ArtifactFromSource; use crate::python_env::{PythonLocation, VEnv}; -use crate::resolve::{resolve, PinnedPackage}; +use crate::resolve::{PinnedPackage, resolve}; use crate::utils::normalize_path; use crate::wheel_builder::{WheelBuildError, WheelBuilder}; use fs_err as fs; use fs_err::read_dir; use parking_lot::RwLock; -use pep508_rs::Requirement; +use pep508_rs::{MarkerTree, PackageName, Requirement}; use std::collections::{HashMap, HashSet}; use std::ffi::OsString; @@ -32,7 +32,7 @@ impl DeleteOrPersist { if let Self::Delete(temp_dir) = self { // This operation makes sure that the tempdir is not deleted // when the BuildEnvironment is dropped - Self::Persist(temp_dir.into_path()) + Self::Persist(temp_dir.keep()) } else { self } @@ -319,10 +319,7 @@ impl BuildEnvironment { std::env::join_paths(paths.iter()).map_err(|e| { WheelBuildError::CouldNotRunCommand( stage.into(), - std::io::Error::new( - std::io::ErrorKind::Other, - format!("could not setup env path: {}", e), - ), + std::io::Error::other(format!("could not setup env path: {}", e)), ) })? } @@ -357,16 +354,18 @@ impl BuildEnvironment { pyproject_toml::BuildSystem { requires: vec![ Requirement { - name: "setuptools".into(), - extras: None, - marker: None, + name: PackageName::new("setuptools".to_string()).unwrap(), + extras: Vec::new(), + marker: MarkerTree::default(), version_or_url: None, + origin: None, }, Requirement { - name: "wheel".into(), - extras: None, - marker: None, + name: PackageName::new("wheel".to_string()).unwrap(), + extras: Vec::new(), + marker: MarkerTree::default(), version_or_url: None, + origin: None, }, ], build_backend: Some("setuptools.build_meta:__legacy__".into()), diff --git a/crates/rattler_installs_packages/src/wheel_builder/error.rs b/crates/rattler_installs_packages/src/wheel_builder/error.rs index a5a865df..2e1b4a3e 100644 --- a/crates/rattler_installs_packages/src/wheel_builder/error.rs +++ b/crates/rattler_installs_packages/src/wheel_builder/error.rs @@ -45,9 +45,7 @@ pub enum WheelBuildError { #[error("backend path in pyproject.toml not relative: {0}")] BackendPathNotRelative(PathBuf), - #[error( - "backend path in pyproject.toml not resolving to a path in the package directory: {0}" - )] + #[error("backend path in pyproject.toml not resolving to a path in the package directory: {0}")] BackendPathNotInPackageDir(PathBuf), #[error("could not join path: {0}")] diff --git a/crates/rattler_installs_packages/src/wheel_builder/mod.rs b/crates/rattler_installs_packages/src/wheel_builder/mod.rs index f87b5cdd..5d887fab 100644 --- a/crates/rattler_installs_packages/src/wheel_builder/mod.rs +++ b/crates/rattler_installs_packages/src/wheel_builder/mod.rs @@ -378,8 +378,8 @@ mod tests { use crate::index::{PackageDb, PackageSourcesBuilder}; use crate::python_env::{Pep508EnvMakers, PythonInterpreterVersion}; use crate::resolve::solve_options::{OnWheelBuildFailure, ResolveOptions}; - use crate::wheel_builder::wheel_cache::WheelCacheKey; use crate::wheel_builder::WheelBuilder; + use crate::wheel_builder::wheel_cache::WheelCacheKey; use futures::future::TryJoinAll; use reqwest::Client; use reqwest_middleware::ClientWithMiddleware; @@ -442,12 +442,14 @@ mod tests { // No one will be using 1.0.0, I reckon let older_python = PythonInterpreterVersion::new(1, 0, 0); let key = WheelCacheKey::from_sdist(&sdist, &older_python).unwrap(); - assert!(wheel_builder - .package_db - .local_wheel_cache() - .wheel_for_key(&key) - .unwrap() - .is_none()); + assert!( + wheel_builder + .package_db + .local_wheel_cache() + .wheel_for_key(&key) + .unwrap() + .is_none() + ); } #[tokio::test(flavor = "multi_thread")] diff --git a/crates/rattler_installs_packages/src/wheel_builder/wheel_cache.rs b/crates/rattler_installs_packages/src/wheel_builder/wheel_cache.rs index 7e9f02fe..1cdaed15 100644 --- a/crates/rattler_installs_packages/src/wheel_builder/wheel_cache.rs +++ b/crates/rattler_installs_packages/src/wheel_builder/wheel_cache.rs @@ -55,11 +55,10 @@ struct WheelKeyMetadata { integrity: String, } -impl ToString for WheelCacheKey { - /// Get WheelKey string representation without suffix - fn to_string(&self) -> String { +impl std::fmt::Display for WheelCacheKey { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let mut parts = self.0.split(':'); - parts.nth(1).unwrap_or_default().to_owned() + write!(f, "{}", parts.nth(1).unwrap_or_default()) } } @@ -206,7 +205,7 @@ mod tests { #[test] pub fn save_retrieve_wheel() { - let cache = WheelCache::new(tempfile::tempdir().unwrap().into_path()); + let cache = WheelCache::new(tempfile::tempdir().unwrap().keep()); // Load the wheel file let path = Path::new(env!("CARGO_MANIFEST_DIR")) diff --git a/crates/rattler_installs_packages/src/win/launcher.rs b/crates/rattler_installs_packages/src/win/launcher.rs index 8d633e5c..bb5b4416 100644 --- a/crates/rattler_installs_packages/src/win/launcher.rs +++ b/crates/rattler_installs_packages/src/win/launcher.rs @@ -4,7 +4,7 @@ use std::{ env, io::{Cursor, Write}, }; -use zip::{write::FileOptions, ZipWriter}; +use zip::ZipWriter; /// Defines the type of script to run. This is either a GUI application or a console application. /// When running a console application a terminal is expected. When running a GUI application the @@ -73,7 +73,8 @@ pub fn build_windows_launcher( // https://github.com/pypa/distlib/blob/8ed03aab48add854f377ce392efffb79bb4d6091/PC/launcher.c#L259-L271 let mut stream: Vec = Vec::new(); { - let stored = FileOptions::default().compression_method(zip::CompressionMethod::Stored); + let stored = zip::write::FileOptions::<()>::default() + .compression_method(zip::CompressionMethod::Stored); let mut archive = ZipWriter::new(Cursor::new(&mut stream)); let error_msg = "Writing to Vec should never fail"; archive.start_file("__main__.py", stored).expect(error_msg); diff --git a/crates/rattler_installs_packages/tests/resolver.rs b/crates/rattler_installs_packages/tests/resolver.rs deleted file mode 100644 index f8883624..00000000 --- a/crates/rattler_installs_packages/tests/resolver.rs +++ /dev/null @@ -1,180 +0,0 @@ -#![cfg(feature = "resolvo")] - -use pep508_rs::{MarkerEnvironment, Requirement}; -use rattler_installs_packages::resolve::solve_options::{ResolveOptions, SDistResolution}; -use rattler_installs_packages::{ - index::PackageDb, - python_env::{WheelTag, WheelTags}, - resolve::resolve, - resolve::PinnedPackage, - types::NormalizedPackageName, -}; -use std::{collections::HashMap, path::Path, str::FromStr, sync::OnceLock}; - -#[tokio::test(flavor = "multi_thread")] -async fn no_sdists() { - let error = ResolveBuilder::default() - .with_requirement("sdist") - .with_sdist_resolution(SDistResolution::OnlyWheels) - .resolve() - .await - .unwrap_err(); - - insta::assert_display_snapshot!(error) -} - -#[tokio::test(flavor = "multi_thread")] -async fn local_sdists() { - let res = ResolveBuilder::default() - .with_requirement( - "rich@file:///Users/graf/projects/oss/rip/test-data/sdists/rich-13.6.0.tar.gz", - ) - .resolve() - .await - .unwrap(); - - insta::assert_display_snapshot!(error) -} - -/// Tests that the `SDistResolution::PreferWheels` option selects the highest version with a wheel -/// over any version with an sdist. -/// -/// PySDL2 is a package that has newer versions that only have sdists available. -#[tokio::test(flavor = "multi_thread")] -async fn prefer_wheel() { - let result = ResolveBuilder::default() - .with_requirement("pysdl2") - .with_sdist_resolution(SDistResolution::PreferWheels) - .resolve() - .await; - - // Get the pysdl2 package from the resolution - let packages = result.expect("expected a valid solution"); - let pysdl_pkg = packages - .iter() - .find(|p| p.name.as_str() == "pysdl2") - .unwrap(); - - // A version should be selected that has wheels (which is not the latest version!) - assert_eq!(pysdl_pkg.version.to_string(), "0.9.12"); -} - -/// Returns a package database that uses pypi as its index. The cache directory is stored in the -/// `target/` folder to make it easier to share the cache between tests. -/// TODO: Instead of relying on the public mutable pypi index, it would be very nice to have a copy -/// locally that we can run tests against. -fn package_database() -> &'static PackageDb { - static PACKAGE_DB: OnceLock = OnceLock::new(); - PACKAGE_DB.get_or_init(|| { - PackageDb::new( - Default::default(), - &["https://pypi.org/simple/".parse().unwrap()], - &Path::new(env!("CARGO_TARGET_TMPDIR")).join("pypi-cache"), - ) - .unwrap() - }) -} - -/// Returns a `MarkerEnvironment` instance for a Windows system. -pub fn win_environment_markers() -> MarkerEnvironment { - MarkerEnvironment { - implementation_name: "cpython".to_string(), - implementation_version: "3.10.4".parse().unwrap(), - os_name: "nt".to_string(), - platform_machine: "AMD64".to_string(), - platform_python_implementation: "CPython".to_string(), - platform_release: "10".to_string(), - platform_system: "Windows".to_string(), - platform_version: "10.0.22635".to_string(), - python_full_version: "3.10.4".parse().unwrap(), - python_version: "3.10".parse().unwrap(), - sys_platform: "win32".to_string(), - } -} - -/// Returns `WheelTags` instance for a Windows system. -pub fn win_compatible_tags() -> WheelTags { - [ - "cp310-cp310-win_amd64", - "cp310-abi3-win_amd64", - "cp310-none-win_amd64", - "cp39-abi3-win_amd64", - "cp38-abi3-win_amd64", - "cp37-abi3-win_amd64", - "cp36-abi3-win_amd64", - "cp35-abi3-win_amd64", - "cp34-abi3-win_amd64", - "cp33-abi3-win_amd64", - "cp32-abi3-win_amd64", - "py310-none-win_amd64", - "py3-none-win_amd64", - "py39-none-win_amd64", - "py38-none-win_amd64", - "py37-none-win_amd64", - "py36-none-win_amd64", - "py35-none-win_amd64", - "py34-none-win_amd64", - "py33-none-win_amd64", - "py32-none-win_amd64", - "py31-none-win_amd64", - "py30-none-win_amd64", - "cp310-none-any", - "py310-none-any", - "py3-none-any", - "py39-none-any", - "py38-none-any", - "py37-none-any", - "py36-none-any", - "py35-none-any", - "py34-none-any", - "py33-none-any", - "py32-none-any", - "py31-none-any", - "py30-none-any", - ] - .iter() - .map(|s| WheelTag::from_str(s).unwrap()) - .collect() -} - -/// A helper struct that makes writing tests easier. This struct allows customizing the a resolve -/// task without having to specify all the parameters required. If a parameter is not specified a -/// sane default is chosen. -#[derive(Default, Clone)] -struct ResolveBuilder { - requirements: Vec, - marker_env: Option, - compatible_tags: Option>, - locked_packages: HashMap>, - pinned_packages: HashMap>, - options: ResolveOptions, -} - -impl ResolveBuilder { - pub fn with_requirement(mut self, req: &str) -> Self { - let req = Requirement::from_str(req).unwrap(); - self.requirements.push(req); - self - } - - pub fn with_sdist_resolution(mut self, sdist_resolution: SDistResolution) -> Self { - self.options.sdist_resolution = sdist_resolution; - self - } - - pub async fn resolve(self) -> Result>, String> { - resolve( - package_database(), - self.requirements.iter(), - &self.marker_env.unwrap_or(win_environment_markers()), - self.compatible_tags - .unwrap_or(Some(win_compatible_tags())) - .as_ref(), - self.locked_packages, - self.pinned_packages, - &self.options, - ) - .await - .map_err(|e| e.to_string()) - } -} diff --git a/crates/rip_bin/src/cli/resolve.rs b/crates/rip_bin/src/cli/resolve.rs index d8b80db8..510fe27e 100644 --- a/crates/rip_bin/src/cli/resolve.rs +++ b/crates/rip_bin/src/cli/resolve.rs @@ -5,10 +5,10 @@ use miette::{Context, IntoDiagnostic}; use rattler_installs_packages::index::PackageDb; use rattler_installs_packages::install::InstallWheelOptions; use rattler_installs_packages::python_env::{Pep508EnvMakers, PythonLocation, WheelTags}; +use rattler_installs_packages::resolve::PinnedPackage; use rattler_installs_packages::resolve::solve_options::{ OnWheelBuildFailure, PreReleaseResolution, ResolveOptions, SDistResolution, }; -use rattler_installs_packages::resolve::PinnedPackage; use rattler_installs_packages::types::Requirement; use rattler_installs_packages::wheel_builder::WheelBuilder; use serde::Serialize; @@ -208,7 +208,7 @@ pub async fn execute(package_db: Arc, commands: Commands) -> miette:: return Ok(()); } else { Err(err.wrap_err("Could not solve for requested requirements")) - } + }; } }; diff --git a/crates/rip_bin/src/main.rs b/crates/rip_bin/src/main.rs index 2be428e2..25ea7fd5 100644 --- a/crates/rip_bin/src/main.rs +++ b/crates/rip_bin/src/main.rs @@ -1,4 +1,4 @@ -use rip_bin::{cli, global_multi_progress, IndicatifWriter}; +use rip_bin::{IndicatifWriter, cli, global_multi_progress}; use std::str::FromStr; use std::sync::Arc; @@ -6,7 +6,7 @@ use std::sync::Arc; use clap::{Parser, Subcommand}; use miette::Context; use tracing_subscriber::filter::Directive; -use tracing_subscriber::{fmt, layer::SubscriberExt, util::SubscriberInitExt, EnvFilter}; +use tracing_subscriber::{EnvFilter, fmt, layer::SubscriberExt, util::SubscriberInitExt}; use rattler_installs_packages::index::{CheckAvailablePackages, PackageSourcesBuilder}; diff --git a/rust-toolchain b/rust-toolchain index 9242d8e7..82e24bf2 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -1.76 +1.90.0