diff --git a/Cargo.lock b/Cargo.lock index 89bddfbb0..b1bcf0dde 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -155,6 +155,12 @@ dependencies = [ "sysctl", ] +[[package]] +name = "arcstr" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03918c3dbd7701a85c6b9887732e2921175f26c350b4563841d0958c21d57e6d" + [[package]] name = "assert_matches" version = "1.5.0" @@ -390,16 +396,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] -name = "backoff" -version = "0.4.0" +name = "backon" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +checksum = "ba5289ec98f68f28dd809fd601059e6aa908bb8f6108620930828283d4ee23d7" dependencies = [ - "futures-core", - "getrandom", - "instant", - "pin-project-lite", - "rand", + "fastrand", + "gloo-timers 0.3.0", "tokio", ] @@ -1397,12 +1400,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - [[package]] name = "fixedbitset" version = "0.5.7" @@ -1608,7 +1605,7 @@ version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ - "gloo-timers", + "gloo-timers 0.2.6", "send_wrapper", ] @@ -1732,6 +1729,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "gloo-utils" version = "0.2.0" @@ -3484,7 +3493,7 @@ dependencies = [ "serde", "unicode-width 0.2.0", "unscanny", - "version-ranges", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=57832d0588fbb7aab824813481104761dc1c7740)", ] [[package]] @@ -3506,7 +3515,7 @@ dependencies = [ "unicode-width 0.2.0", "url", "urlencoding", - "version-ranges", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=57832d0588fbb7aab824813481104761dc1c7740)", ] [[package]] @@ -3515,23 +3524,13 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset 0.4.2", - "indexmap 2.7.0", -] - [[package]] name = "petgraph" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ - "fixedbitset 0.5.7", + "fixedbitset", "indexmap 2.7.0", ] @@ -4246,14 +4245,14 @@ dependencies = [ [[package]] name = "pubgrub" version = "0.2.1" -source = "git+https://github.com/astral-sh/pubgrub?rev=57832d0588fbb7aab824813481104761dc1c7740#57832d0588fbb7aab824813481104761dc1c7740" +source = "git+https://github.com/astral-sh/pubgrub?rev=648aa343486e5529953153781fc86025c73c4a61#648aa343486e5529953153781fc86025c73c4a61" dependencies = [ "indexmap 2.7.0", "log", "priority-queue", "rustc-hash", "thiserror 2.0.10", - "version-ranges", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=648aa343486e5529953153781fc86025c73c4a61)", ] [[package]] @@ -5041,7 +5040,7 @@ dependencies = [ "futures", "indexmap 2.7.0", "itertools 0.14.0", - "petgraph 0.7.1", + "petgraph", "tracing", ] @@ -5084,6 +5083,7 @@ dependencies = [ "rancor", "rend", "rkyv_derive", + "smallvec", "tinyvec", "uuid", ] @@ -6058,9 +6058,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.16" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" +checksum = "dc12939a1c9b9d391e0b7135f72fd30508b73450753e28341fed159317582a77" [[package]] name = "tempfile" @@ -6607,7 +6607,7 @@ dependencies = [ [[package]] name = "uv-auth" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anyhow", "async-trait", @@ -6626,16 +6626,47 @@ dependencies = [ "uv-static", ] +[[package]] +name = "uv-build-backend" +version = "0.1.0" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" +dependencies = [ + "csv", + "flate2", + "fs-err", + "globset", + "itertools 0.14.0", + "serde", + "sha2", + "spdx", + "tar", + "thiserror 2.0.10", + "toml", + "tracing", + "uv-distribution-filename", + "uv-fs", + "uv-globfilter", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-version", + "uv-warnings", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=648aa343486e5529953153781fc86025c73c4a61)", + "walkdir", + "zip 0.6.6", +] + [[package]] name = "uv-build-frontend" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anstream", - "anyhow", "fs-err", "indoc", - "itertools 0.13.0", + "itertools 0.14.0", "owo-colors", "regex", "rustc-hash", @@ -6662,7 +6693,7 @@ dependencies = [ [[package]] name = "uv-cache" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "fs-err", "nanoid", @@ -6686,7 +6717,7 @@ dependencies = [ [[package]] name = "uv-cache-info" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "fs-err", "globwalk", @@ -6694,12 +6725,13 @@ dependencies = [ "thiserror 2.0.10", "toml", "tracing", + "walkdir", ] [[package]] name = "uv-cache-key" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "hex", "seahash", @@ -6709,7 +6741,7 @@ dependencies = [ [[package]] name = "uv-client" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anyhow", "async-trait", @@ -6720,7 +6752,7 @@ dependencies = [ "futures", "html-escape", "http", - "itertools 0.13.0", + "itertools 0.14.0", "jiff", "reqwest", "reqwest-middleware", @@ -6758,7 +6790,7 @@ dependencies = [ [[package]] name = "uv-configuration" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "either", "fs-err", @@ -6775,6 +6807,7 @@ dependencies = [ "uv-cache-info", "uv-cache-key", "uv-normalize", + "uv-pep440", "uv-pep508", "uv-platform-tags", "uv-pypi-types", @@ -6785,7 +6818,7 @@ dependencies = [ [[package]] name = "uv-console" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "console", "ctrlc", @@ -6794,7 +6827,7 @@ dependencies = [ [[package]] name = "uv-dirs" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "etcetera", "uv-static", @@ -6803,32 +6836,38 @@ dependencies = [ [[package]] name = "uv-dispatch" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anyhow", "futures", - "itertools 0.13.0", + "itertools 0.14.0", "rustc-hash", + "thiserror 2.0.10", + "tokio", "tracing", + "uv-build-backend", "uv-build-frontend", "uv-cache", "uv-client", "uv-configuration", "uv-distribution", + "uv-distribution-filename", "uv-distribution-types", "uv-git", "uv-install-wheel", "uv-installer", + "uv-platform-tags", "uv-pypi-types", "uv-python", "uv-resolver", "uv-types", + "uv-version", ] [[package]] name = "uv-distribution" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anyhow", "either", @@ -6873,28 +6912,33 @@ dependencies = [ [[package]] name = "uv-distribution-filename" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ + "memchr", "rkyv", "serde", + "smallvec", "thiserror 2.0.10", "url", "uv-normalize", "uv-pep440", "uv-platform-tags", + "uv-small-str", ] [[package]] name = "uv-distribution-types" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anyhow", + "arcstr", "bitflags 2.6.0", "fs-err", - "itertools 0.13.0", + "itertools 0.14.0", "jiff", - "petgraph 0.6.5", + "owo-colors", + "petgraph", "rkyv", "rustc-hash", "serde", @@ -6914,13 +6958,13 @@ dependencies = [ "uv-pep508", "uv-platform-tags", "uv-pypi-types", - "version-ranges", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=648aa343486e5529953153781fc86025c73c4a61)", ] [[package]] name = "uv-extract" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "async-compression", "async_zip", @@ -6946,9 +6990,9 @@ dependencies = [ [[package]] name = "uv-fs" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ - "backoff", + "backon", "cachedir", "dunce", "either", @@ -6970,7 +7014,7 @@ dependencies = [ [[package]] name = "uv-git" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anyhow", "cargo-util", @@ -6990,10 +7034,23 @@ dependencies = [ "which", ] +[[package]] +name = "uv-globfilter" +version = "0.1.0" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" +dependencies = [ + "globset", + "regex", + "regex-automata 0.4.9", + "thiserror 2.0.10", + "tracing", + "walkdir", +] + [[package]] name = "uv-install-wheel" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "configparser", "csv", @@ -7030,7 +7087,7 @@ dependencies = [ [[package]] name = "uv-installer" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anyhow", "async-channel", @@ -7067,7 +7124,7 @@ dependencies = [ [[package]] name = "uv-macros" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "proc-macro2", "quote", @@ -7078,7 +7135,7 @@ dependencies = [ [[package]] name = "uv-metadata" version = "0.1.0" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "async_zip", "fs-err", @@ -7095,17 +7152,18 @@ dependencies = [ [[package]] name = "uv-normalize" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "rkyv", "schemars", "serde", + "uv-small-str", ] [[package]] name = "uv-once-map" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "dashmap", "futures", @@ -7115,7 +7173,7 @@ dependencies = [ [[package]] name = "uv-options-metadata" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "serde", ] @@ -7123,24 +7181,25 @@ dependencies = [ [[package]] name = "uv-pep440" version = "0.7.0" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "rkyv", "serde", "tracing", "unicode-width 0.1.14", "unscanny", - "version-ranges", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=648aa343486e5529953153781fc86025c73c4a61)", ] [[package]] name = "uv-pep508" version = "0.6.0" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ + "arcstr", "boxcar", "indexmap 2.7.0", - "itertools 0.13.0", + "itertools 0.14.0", "regex", "rustc-hash", "schemars", @@ -7152,27 +7211,30 @@ dependencies = [ "uv-fs", "uv-normalize", "uv-pep440", - "version-ranges", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=648aa343486e5529953153781fc86025c73c4a61)", ] [[package]] name = "uv-platform-tags" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ + "memchr", + "rkyv", "rustc-hash", "serde", "thiserror 2.0.10", + "uv-small-str", ] [[package]] name = "uv-pypi-types" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "hashbrown 0.15.2", "indexmap 2.7.0", - "itertools 0.13.0", + "itertools 0.14.0", "jiff", "mailparse", "regex", @@ -7196,14 +7258,14 @@ dependencies = [ [[package]] name = "uv-python" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anyhow", "configparser", "fs-err", "futures", "goblin", - "itertools 0.13.0", + "itertools 0.14.0", "owo-colors", "procfs", "regex", @@ -7239,15 +7301,15 @@ dependencies = [ "uv-trampoline-builder", "uv-warnings", "which", - "windows-registry 0.3.0", - "windows-result 0.2.0", + "windows-registry 0.4.0", + "windows-result 0.3.0", "windows-sys 0.59.0", ] [[package]] name = "uv-requirements" version = "0.1.0" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anyhow", "configparser", @@ -7282,7 +7344,7 @@ dependencies = [ [[package]] name = "uv-requirements-txt" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "fs-err", "regex", @@ -7299,24 +7361,25 @@ dependencies = [ "uv-normalize", "uv-pep508", "uv-pypi-types", + "uv-warnings", ] [[package]] name = "uv-resolver" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ - "anyhow", + "arcstr", "clap", "dashmap", "either", "futures", "hashbrown 0.15.2", "indexmap 2.7.0", - "itertools 0.13.0", + "itertools 0.14.0", "jiff", "owo-colors", - "petgraph 0.6.5", + "petgraph", "pubgrub", "rkyv", "rustc-hash", @@ -7356,7 +7419,7 @@ dependencies = [ [[package]] name = "uv-shell" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anyhow", "home", @@ -7367,10 +7430,21 @@ dependencies = [ "winreg", ] +[[package]] +name = "uv-small-str" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" +dependencies = [ + "arcstr", + "rkyv", + "schemars", + "serde", +] + [[package]] name = "uv-state" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "fs-err", "tempfile", @@ -7380,7 +7454,7 @@ dependencies = [ [[package]] name = "uv-static" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "uv-macros", ] @@ -7388,7 +7462,7 @@ dependencies = [ [[package]] name = "uv-trampoline-builder" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "fs-err", "thiserror 2.0.10", @@ -7399,7 +7473,7 @@ dependencies = [ [[package]] name = "uv-types" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anyhow", "rustc-hash", @@ -7407,6 +7481,7 @@ dependencies = [ "url", "uv-cache", "uv-configuration", + "uv-distribution-filename", "uv-distribution-types", "uv-git", "uv-normalize", @@ -7419,17 +7494,18 @@ dependencies = [ [[package]] name = "uv-version" -version = "0.5.6" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +version = "0.5.20" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" [[package]] name = "uv-virtualenv" version = "0.0.4" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "fs-err", - "itertools 0.13.0", + "itertools 0.14.0", "pathdiff", + "self-replace", "thiserror 2.0.10", "tracing", "uv-fs", @@ -7443,7 +7519,7 @@ dependencies = [ [[package]] name = "uv-warnings" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "anstream", "owo-colors", @@ -7453,11 +7529,11 @@ dependencies = [ [[package]] name = "uv-workspace" version = "0.0.1" -source = "git+https://github.com/wolfv/uv?branch=ignore-rayon-init#878234ba6b9a3b143e079ca9baa4bec99af93600" +source = "git+https://github.com/astral-sh/uv?tag=0.5.20#1c17662b371f50ffce1ea2b335875350f9f87d46" dependencies = [ "fs-err", "glob", - "itertools 0.13.0", + "itertools 0.14.0", "owo-colors", "rustc-hash", "same-file", @@ -7514,6 +7590,14 @@ dependencies = [ "smallvec", ] +[[package]] +name = "version-ranges" +version = "0.1.1" +source = "git+https://github.com/astral-sh/pubgrub?rev=648aa343486e5529953153781fc86025c73c4a61#648aa343486e5529953153781fc86025c73c4a61" +dependencies = [ + "smallvec", +] + [[package]] name = "version_check" version = "0.9.5" @@ -7839,13 +7923,13 @@ dependencies = [ [[package]] name = "windows-registry" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bafa604f2104cf5ae2cc2db1dee84b7e6a5d11b05f737b60def0ffdc398cbc0a" +checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" dependencies = [ - "windows-result 0.2.0", - "windows-strings 0.2.0", - "windows-targets 0.52.6", + "windows-result 0.3.0", + "windows-strings 0.3.0", + "windows-targets 0.53.0", ] [[package]] @@ -7885,15 +7969,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-strings" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978d65aedf914c664c510d9de43c8fd85ca745eaff1ed53edf409b479e441663" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-strings" version = "0.3.0" @@ -8126,9 +8201,9 @@ dependencies = [ [[package]] name = "winreg" -version = "0.52.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +checksum = "89a47b489f8fc5b949477e89dca4d1617f162c6c53fbcbefde553ab17b342ff9" dependencies = [ "cfg-if", "windows-sys 0.48.0", diff --git a/Cargo.toml b/Cargo.toml index 10f7e7cea..f72826fd2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -98,14 +98,14 @@ toml_edit = "0.22.22" tracing = "0.1.41" tracing-subscriber = "0.3.19" typed-path = "0.10.0" -uv-distribution-filename = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-distribution-types = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-install-wheel = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-pep440 = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-pep508 = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-platform-tags = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-pypi-types = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-requirements-txt = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } +uv-distribution-filename = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-install-wheel = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-pep440 = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-pep508 = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-pypi-types = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-requirements-txt = { git = "https://github.com/astral-sh/uv", tag = "0.5.6" } wax = "0.6.0" which = "7.0.1" @@ -130,19 +130,19 @@ rattler_virtual_packages = { version = "1.1.17", default-features = false } # Bumping this to a higher version breaks the Windows path handling. url = "2.5.4" -uv-auth = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-cache = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-client = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-configuration = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-dispatch = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-distribution = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-git = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-installer = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-normalize = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-python = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-requirements = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-resolver = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } -uv-types = { git = "https://github.com/wolfv/uv", branch = "ignore-rayon-init" } +uv-auth = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-cache = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-client = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-configuration = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-dispatch = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-distribution = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-git = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-installer = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-python = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-requirements = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } +uv-types = { git = "https://github.com/astral-sh/uv", tag = "0.5.20" } winapi = { version = "0.3.9", default-features = false } xxhash-rust = "0.8.13" zip = { version = "2.2.2", default-features = false } diff --git a/crates/pixi_build_frontend/src/protocol_builder.rs b/crates/pixi_build_frontend/src/protocol_builder.rs index 094a7bb1a..f95fc9f84 100644 --- a/crates/pixi_build_frontend/src/protocol_builder.rs +++ b/crates/pixi_build_frontend/src/protocol_builder.rs @@ -36,6 +36,7 @@ impl Default for EnabledProtocols { } #[derive(Debug)] +#[allow(clippy::large_enum_variant)] pub(crate) enum ProtocolBuilder { /// A pixi project. Pixi(pixi_protocol::ProtocolBuilder), diff --git a/crates/pixi_build_frontend/src/tool/cache.rs b/crates/pixi_build_frontend/src/tool/cache.rs index b5c0e88da..6c9acb7d8 100644 --- a/crates/pixi_build_frontend/src/tool/cache.rs +++ b/crates/pixi_build_frontend/src/tool/cache.rs @@ -405,7 +405,12 @@ mod tests { .await .unwrap(); - tool.command().arg("--version").spawn().unwrap(); + tool.command() + .arg("--version") + .spawn() + .unwrap() + .wait() + .unwrap(); } #[tokio::test(flavor = "multi_thread", worker_threads = 2)] diff --git a/crates/pixi_build_types/src/project_model.rs b/crates/pixi_build_types/src/project_model.rs index f147d3ea1..cc5b3cbb6 100644 --- a/crates/pixi_build_types/src/project_model.rs +++ b/crates/pixi_build_types/src/project_model.rs @@ -150,6 +150,7 @@ pub struct TargetV1 { #[derive(Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] +#[allow(clippy::large_enum_variant)] pub enum PackageSpecV1 { /// This is a binary dependency Binary(BinaryPackageSpecV1), diff --git a/crates/pixi_manifest/src/utils/package_map.rs b/crates/pixi_manifest/src/utils/package_map.rs index 0f4aad016..4ee23f6d8 100644 --- a/crates/pixi_manifest/src/utils/package_map.rs +++ b/crates/pixi_manifest/src/utils/package_map.rs @@ -91,7 +91,7 @@ impl<'de> Deserialize<'de> for UniquePackageMap { struct PackageMap<'a>(&'a IndexMap); -impl<'de, 'a> DeserializeSeed<'de> for PackageMap<'a> { +impl<'de> DeserializeSeed<'de> for PackageMap<'_> { type Value = PixiSpanned; fn deserialize(self, deserializer: D) -> Result diff --git a/crates/pixi_pty/src/unix/pty_process.rs b/crates/pixi_pty/src/unix/pty_process.rs index bceb0df63..7bc80d1c0 100644 --- a/crates/pixi_pty/src/unix/pty_process.rs +++ b/crates/pixi_pty/src/unix/pty_process.rs @@ -114,7 +114,7 @@ impl PtyProcess { // flags.local_flags |= termios::LocalFlags::ECHO; // termios::tcsetattr(io::stdin(), termios::SetArg::TCSANOW, &flags)?; - command.exec(); + let _ = command.exec(); Err(nix::Error::last()) } ForkResult::Parent { child: child_pid } => Ok(PtyProcess { diff --git a/crates/pixi_record/src/lib.rs b/crates/pixi_record/src/lib.rs index 00a8ef981..a8abd5daa 100644 --- a/crates/pixi_record/src/lib.rs +++ b/crates/pixi_record/src/lib.rs @@ -37,7 +37,6 @@ impl PixiRecord { } /// Converts this instance into a binary record if it is a binary record. - pub fn into_binary(self) -> Option { match self { PixiRecord::Binary(record) => Some(record), diff --git a/crates/pixi_spec/src/lib.rs b/crates/pixi_spec/src/lib.rs index 5cebdf2c5..e6efd0a37 100644 --- a/crates/pixi_spec/src/lib.rs +++ b/crates/pixi_spec/src/lib.rs @@ -55,6 +55,7 @@ pub enum SpecConversionError { /// type that only represents binary packages. #[derive(Debug, Clone, Hash, ::serde::Serialize, PartialEq, Eq)] #[serde(untagged)] +#[allow(clippy::large_enum_variant)] pub enum PixiSpec { /// The spec is represented solely by a version string. The package should /// be retrieved from a channel. @@ -396,6 +397,7 @@ impl From for toml_edit::Value { /// /// This type only represents binary packages. Use [`PixiSpec`] to represent /// both binary and source packages. +#[allow(clippy::large_enum_variant)] #[derive(Debug, Clone, Hash, PartialEq, Eq)] pub enum BinarySpec { /// The spec is represented solely by a version string. The package should diff --git a/crates/pixi_uv_conversions/src/conversions.rs b/crates/pixi_uv_conversions/src/conversions.rs index 0cdbdf818..dec16b5fb 100644 --- a/crates/pixi_uv_conversions/src/conversions.rs +++ b/crates/pixi_uv_conversions/src/conversions.rs @@ -143,11 +143,11 @@ fn packages_to_build_isolation<'a>( names: Option<&'a [PackageName]>, python_environment: &'a PythonEnvironment, ) -> uv_types::BuildIsolation<'a> { - return if let Some(package_names) = names { + if let Some(package_names) = names { uv_types::BuildIsolation::SharedPackage(python_environment, package_names) } else { uv_types::BuildIsolation::default() - }; + } } /// Convert optional list of strings to package names diff --git a/crates/pixi_uv_conversions/src/requirements.rs b/crates/pixi_uv_conversions/src/requirements.rs index afb6b9836..31af6cb82 100644 --- a/crates/pixi_uv_conversions/src/requirements.rs +++ b/crates/pixi_uv_conversions/src/requirements.rs @@ -188,6 +188,8 @@ pub fn as_uv_req( .iter() .map(|e| uv_pep508::ExtraName::new(e.to_string()).expect("conversion failed")) .collect(), + // TODO: implement groups + groups: vec![], marker: Default::default(), source, origin: None, diff --git a/crates/pypi_mapping/src/lib.rs b/crates/pypi_mapping/src/lib.rs index 3a5507891..afa73c41e 100644 --- a/crates/pypi_mapping/src/lib.rs +++ b/crates/pypi_mapping/src/lib.rs @@ -189,7 +189,7 @@ pub fn is_conda_forge_record(record: &RepoDataRecord) -> bool { .channel .as_ref() .and_then(|channel| Url::from_str(channel).ok()) - .map_or(false, |u| is_conda_forge_url(&u)) + .is_some_and(|u| is_conda_forge_url(&u)) } /// Returns `true` if the specified url refers to a conda-forge channel. diff --git a/pixi.lock b/pixi.lock index b6d66ccc1..9f74a6d61 100644 --- a/pixi.lock +++ b/pixi.lock @@ -121,8 +121,8 @@ environments: - conda: https://prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda - conda: https://prefix.dev/conda-forge/linux-64/ruamel.yaml-0.18.10-py312h66e93f0_0.conda - conda: https://prefix.dev/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h66e93f0_1.conda - - conda: https://prefix.dev/conda-forge/linux-64/rust-1.81.0-h1a8d7c4_0.conda - - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.81.0-h2c6d0dc_0.conda + - conda: https://prefix.dev/conda-forge/linux-64/rust-1.84.0-h1a8d7c4_0.conda + - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.84.0-h2c6d0dc_0.conda - conda: https://prefix.dev/conda-forge/noarch/schema-0.7.7-pyhd8ed1ab_0.conda - conda: https://prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda @@ -254,8 +254,8 @@ environments: - conda: https://prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda - conda: https://prefix.dev/conda-forge/linux-aarch64/ruamel.yaml-0.18.10-py312hb2c0f52_0.conda - conda: https://prefix.dev/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py312hb2c0f52_1.conda - - conda: https://prefix.dev/conda-forge/linux-aarch64/rust-1.81.0-h21fc29f_0.conda - - conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-unknown-linux-gnu-1.81.0-hbe8e118_0.conda + - conda: https://prefix.dev/conda-forge/linux-aarch64/rust-1.84.0-h21fc29f_0.conda + - conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-unknown-linux-gnu-1.84.0-hbe8e118_0.conda - conda: https://prefix.dev/conda-forge/noarch/schema-0.7.7-pyhd8ed1ab_0.conda - conda: https://prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda @@ -390,8 +390,8 @@ environments: - conda: https://prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda - conda: https://prefix.dev/conda-forge/osx-64/ruamel.yaml-0.18.10-py312h01d7ebd_0.conda - conda: https://prefix.dev/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py312h3d0f464_1.conda - - conda: https://prefix.dev/conda-forge/osx-64/rust-1.81.0-h6c54e5d_0.conda - - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.81.0-h38e4360_0.conda + - conda: https://prefix.dev/conda-forge/osx-64/rust-1.84.0-h34a2095_0.conda + - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.84.0-h38e4360_0.conda - conda: https://prefix.dev/conda-forge/noarch/schema-0.7.7-pyhd8ed1ab_0.conda - conda: https://prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://prefix.dev/conda-forge/osx-64/sigtool-0.1.3-h88f4db0_0.tar.bz2 @@ -529,8 +529,8 @@ environments: - conda: https://prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda - conda: https://prefix.dev/conda-forge/osx-arm64/ruamel.yaml-0.18.10-py312hea69d52_0.conda - conda: https://prefix.dev/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py312h0bf5046_1.conda - - conda: https://prefix.dev/conda-forge/osx-arm64/rust-1.81.0-h4ff7c5d_0.conda - - conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.81.0-hf6ec828_0.conda + - conda: https://prefix.dev/conda-forge/osx-arm64/rust-1.84.0-h4ff7c5d_0.conda + - conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.84.0-hf6ec828_0.conda - conda: https://prefix.dev/conda-forge/noarch/schema-0.7.7-pyhd8ed1ab_0.conda - conda: https://prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://prefix.dev/conda-forge/osx-arm64/sigtool-0.1.3-h44b9a77_0.tar.bz2 @@ -638,8 +638,8 @@ environments: - conda: https://prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda - conda: https://prefix.dev/conda-forge/win-64/ruamel.yaml-0.18.10-py312h4389bb4_0.conda - conda: https://prefix.dev/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py312h4389bb4_1.conda - - conda: https://prefix.dev/conda-forge/win-64/rust-1.81.0-hf8d6059_0.conda - - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.81.0-h17fc481_0.conda + - conda: https://prefix.dev/conda-forge/win-64/rust-1.84.0-hf8d6059_0.conda + - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.84.0-h17fc481_0.conda - conda: https://prefix.dev/conda-forge/noarch/schema-0.7.7-pyhd8ed1ab_0.conda - conda: https://prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda @@ -1349,8 +1349,8 @@ environments: - conda: https://prefix.dev/conda-forge/linux-64/ruamel.yaml-0.18.10-py312h66e93f0_0.conda - conda: https://prefix.dev/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h66e93f0_1.conda - conda: https://prefix.dev/conda-forge/linux-64/ruff-0.4.10-py312h5715c7c_0.conda - - conda: https://prefix.dev/conda-forge/linux-64/rust-1.81.0-h1a8d7c4_0.conda - - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.81.0-h2c6d0dc_0.conda + - conda: https://prefix.dev/conda-forge/linux-64/rust-1.84.0-h1a8d7c4_0.conda + - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.84.0-h2c6d0dc_0.conda - conda: https://prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://prefix.dev/conda-forge/linux-64/shellcheck-0.10.0-ha770c72_0.conda - conda: https://prefix.dev/conda-forge/noarch/syrupy-4.8.1-pyhd8ed1ab_0.conda @@ -1469,8 +1469,8 @@ environments: - conda: https://prefix.dev/conda-forge/linux-aarch64/ruamel.yaml-0.18.10-py312hb2c0f52_0.conda - conda: https://prefix.dev/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py312hb2c0f52_1.conda - conda: https://prefix.dev/conda-forge/linux-aarch64/ruff-0.4.10-py312h18b2cab_0.conda - - conda: https://prefix.dev/conda-forge/linux-aarch64/rust-1.81.0-h21fc29f_0.conda - - conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-unknown-linux-gnu-1.81.0-hbe8e118_0.conda + - conda: https://prefix.dev/conda-forge/linux-aarch64/rust-1.84.0-h21fc29f_0.conda + - conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-unknown-linux-gnu-1.84.0-hbe8e118_0.conda - conda: https://prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://prefix.dev/conda-forge/linux-aarch64/shellcheck-0.10.0-h8af1aa0_0.conda - conda: https://prefix.dev/conda-forge/noarch/syrupy-4.8.1-pyhd8ed1ab_0.conda @@ -1591,8 +1591,8 @@ environments: - conda: https://prefix.dev/conda-forge/osx-64/ruamel.yaml-0.18.10-py312h01d7ebd_0.conda - conda: https://prefix.dev/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py312h3d0f464_1.conda - conda: https://prefix.dev/conda-forge/osx-64/ruff-0.4.10-py312h8b25c6c_0.conda - - conda: https://prefix.dev/conda-forge/osx-64/rust-1.81.0-h6c54e5d_0.conda - - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.81.0-h38e4360_0.conda + - conda: https://prefix.dev/conda-forge/osx-64/rust-1.84.0-h34a2095_0.conda + - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.84.0-h38e4360_0.conda - conda: https://prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://prefix.dev/conda-forge/osx-64/shellcheck-0.10.0-h7dd6a17_0.conda - conda: https://prefix.dev/conda-forge/osx-64/sigtool-0.1.3-h88f4db0_0.tar.bz2 @@ -1715,8 +1715,8 @@ environments: - conda: https://prefix.dev/conda-forge/osx-arm64/ruamel.yaml-0.18.10-py312hea69d52_0.conda - conda: https://prefix.dev/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py312h0bf5046_1.conda - conda: https://prefix.dev/conda-forge/osx-arm64/ruff-0.4.10-py312h3402d49_0.conda - - conda: https://prefix.dev/conda-forge/osx-arm64/rust-1.81.0-h4ff7c5d_0.conda - - conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.81.0-hf6ec828_0.conda + - conda: https://prefix.dev/conda-forge/osx-arm64/rust-1.84.0-h4ff7c5d_0.conda + - conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.84.0-hf6ec828_0.conda - conda: https://prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://prefix.dev/conda-forge/osx-arm64/shellcheck-0.10.0-hecfb573_0.conda - conda: https://prefix.dev/conda-forge/osx-arm64/sigtool-0.1.3-h44b9a77_0.tar.bz2 @@ -1808,8 +1808,8 @@ environments: - conda: https://prefix.dev/conda-forge/win-64/ruamel.yaml-0.18.10-py312h4389bb4_0.conda - conda: https://prefix.dev/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py312h4389bb4_1.conda - conda: https://prefix.dev/conda-forge/win-64/ruff-0.4.10-py312h7a6832a_0.conda - - conda: https://prefix.dev/conda-forge/win-64/rust-1.81.0-hf8d6059_0.conda - - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.81.0-h17fc481_0.conda + - conda: https://prefix.dev/conda-forge/win-64/rust-1.84.0-hf8d6059_0.conda + - conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.84.0-h17fc481_0.conda - conda: https://prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://prefix.dev/conda-forge/win-64/shellcheck-0.10.0-h57928b3_0.conda - conda: https://prefix.dev/conda-forge/noarch/syrupy-4.8.1-pyhd8ed1ab_0.conda @@ -9126,115 +9126,115 @@ packages: license_family: MIT size: 6273796 timestamp: 1718951278593 -- conda: https://prefix.dev/conda-forge/linux-64/rust-1.81.0-h1a8d7c4_0.conda - sha256: 0620c44414d140f63e215b8555770acb94e473787f84cb1ab051bb6ebd3a808f - md5: 0e4d3f6598c7b770b1ac73ca8689c300 +- conda: https://prefix.dev/conda-forge/linux-64/rust-1.84.0-h1a8d7c4_0.conda + sha256: a71f8e4fcfdb2ef40e8c1631c4cbe3bbad45b11e9317e6ea125783717d43920b + md5: a0d0badd8f8d61bb70aeeee701b7db07 depends: - __glibc >=2.17,<3.0.a0 - gcc_impl_linux-64 - libgcc >=13 - libzlib >=1.3.1,<2.0a0 - - rust-std-x86_64-unknown-linux-gnu 1.81.0 h2c6d0dc_0 + - rust-std-x86_64-unknown-linux-gnu 1.84.0 h2c6d0dc_0 - sysroot_linux-64 >=2.17 license: MIT license_family: MIT - size: 200303283 - timestamp: 1726504386467 -- conda: https://prefix.dev/conda-forge/linux-aarch64/rust-1.81.0-h21fc29f_0.conda - sha256: 0e7aa280c67e71d50e96125b563f56d78319cd07ac795895d908f5b1f86627ab - md5: 30d55cdedda7fb36eb257392931a0c08 + size: 209737774 + timestamp: 1736474000046 +- conda: https://prefix.dev/conda-forge/linux-aarch64/rust-1.84.0-h21fc29f_0.conda + sha256: 83c4c7affa6d0932e9e4b78ab7956fd25e60b18d03438eb1859555ff90cfa9bd + md5: 1ed03242e5b7b820312caccc32c09c9a depends: - gcc_impl_linux-aarch64 - libgcc >=13 - libzlib >=1.3.1,<2.0a0 - - rust-std-aarch64-unknown-linux-gnu 1.81.0 hbe8e118_0 + - rust-std-aarch64-unknown-linux-gnu 1.84.0 hbe8e118_0 - sysroot_linux-aarch64 >=2.17 license: MIT license_family: MIT - size: 299144483 - timestamp: 1726506160353 -- conda: https://prefix.dev/conda-forge/osx-64/rust-1.81.0-h6c54e5d_0.conda - sha256: 84e3131a0441e2694849bd0c8de3fd3eac2a1b4e3ae49f37114c2b4c876d4bec - md5: ae4382936ab0a7ba617410f3371dba8c + size: 310131075 + timestamp: 1736476336922 +- conda: https://prefix.dev/conda-forge/osx-64/rust-1.84.0-h34a2095_0.conda + sha256: 69103b8c408205bc9f3b15a56b91eba648f8f02183cf3f7f1d73e357c4f2323a + md5: aaf1ba71ae6c381f972a357d83a0a518 depends: - - rust-std-x86_64-apple-darwin 1.81.0 h38e4360_0 + - rust-std-x86_64-apple-darwin 1.84.0 h38e4360_0 license: MIT license_family: MIT - size: 205216960 - timestamp: 1726505981140 -- conda: https://prefix.dev/conda-forge/osx-arm64/rust-1.81.0-h4ff7c5d_0.conda - sha256: aa6dffbf4b6441512f9dcce572913b2cfff2a2f71b0ffe9b29c04efa4e1e15d7 - md5: 9421a9205351eb673c57af9e491dc2bf + size: 213524127 + timestamp: 1736476834574 +- conda: https://prefix.dev/conda-forge/osx-arm64/rust-1.84.0-h4ff7c5d_0.conda + sha256: 24367eaa937b113cd90308c3a503f13e0043f76997f8b0fdca83ae0200e723d5 + md5: c36f037e209638e8713ed6abee2ce3d8 depends: - - rust-std-aarch64-apple-darwin 1.81.0 hf6ec828_0 + - rust-std-aarch64-apple-darwin 1.84.0 hf6ec828_0 license: MIT license_family: MIT - size: 199771549 - timestamp: 1726506487060 -- conda: https://prefix.dev/conda-forge/win-64/rust-1.81.0-hf8d6059_0.conda - sha256: 47b0f34453bc347739cb1b5eaaefe6a86aff2f4d91a333ecb56075714a188f3f - md5: 08ba4c469f11512a07583ace97766ee2 + size: 208393099 + timestamp: 1736476362423 +- conda: https://prefix.dev/conda-forge/win-64/rust-1.84.0-hf8d6059_0.conda + sha256: e6299801b089c2e818bc67d1639e59892148f773303a15c905c45be90103e690 + md5: d754cf07f458fee0af0a5b052aaf23bc depends: - - rust-std-x86_64-pc-windows-msvc 1.81.0 h17fc481_0 + - rust-std-x86_64-pc-windows-msvc 1.84.0 h17fc481_0 license: MIT license_family: MIT - size: 193252613 - timestamp: 1726506914739 -- conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.81.0-hf6ec828_0.conda - sha256: a8a31df1ef430f8dda4689f49e09e43dce333b02cfca39d61281652b950a69da - md5: 5f228231eb202cbd06b98e57697c470f + size: 208721230 + timestamp: 1736476305714 +- conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.84.0-hf6ec828_0.conda + sha256: 3d8155aa30c5b32cc41bdfe0a161cf84838499109e22e9c1a333eb170753d79a + md5: 5db6792d2b1e6c71034b60b90f44ac21 depends: - __unix constrains: - - rust >=1.81.0,<1.81.1.0a0 + - rust >=1.84.0,<1.84.1.0a0 license: MIT license_family: MIT - size: 31264180 - timestamp: 1726503800830 -- conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-unknown-linux-gnu-1.81.0-hbe8e118_0.conda - sha256: 72d9b46e6c435d8abc016192b95181b6588d1c2c5fb34be9ba52ec77c552619c - md5: 40d1e7bc7fd710eee6d1ed07d7acd8fc + size: 32511793 + timestamp: 1736473247984 +- conda: https://prefix.dev/conda-forge/noarch/rust-std-aarch64-unknown-linux-gnu-1.84.0-hbe8e118_0.conda + sha256: 573ee585eff709d44bb27b37300ba721408fb2c8da32130368f54b8e23e98621 + md5: 006fde22a6ac8419cddb9e64a00ba5e0 depends: - __unix constrains: - - rust >=1.81.0,<1.81.1.0a0 + - rust >=1.84.0,<1.84.1.0a0 license: MIT license_family: MIT - size: 41840446 - timestamp: 1726504722402 -- conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.81.0-h38e4360_0.conda - sha256: 18a2ceedf84a9b002e5bf68db3f9e5a4dd0fcb8c3d6c380004f094a3d0caae9d - md5: 37da4f96842452abf1b047a2b4b74893 + size: 42101079 + timestamp: 1736474687293 +- conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.84.0-h38e4360_0.conda + sha256: 1d2ac0830774c94f3745e15d128ec3633296171fbe2d5c8bef01e7b926631ddb + md5: 808dfe797d4dd29a5ef62074550f16ae depends: - __unix constrains: - - rust >=1.81.0,<1.81.1.0a0 + - rust >=1.84.0,<1.84.1.0a0 license: MIT license_family: MIT - size: 32202262 - timestamp: 1726503655773 -- conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.81.0-h17fc481_0.conda - sha256: 2a7d0ac2035c09d31078602e194082e44a641ecfa5ca4edf47c16f25590b4fda - md5: 809e64792fbf0bd55fdf9e4577e46bae + size: 34506766 + timestamp: 1736473356761 +- conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.84.0-h17fc481_0.conda + sha256: 035ee32df30dcf44e0b5ab296a7e347d5bc506c4ed5ed30cc1fdb42aa0fb0d36 + md5: 31898c1bd6c241d91de43d8ffd070510 depends: - __win constrains: - - rust >=1.81.0,<1.81.1.0a0 + - rust >=1.84.0,<1.84.1.0a0 license: MIT license_family: MIT - size: 25578327 - timestamp: 1726506658685 -- conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.81.0-h2c6d0dc_0.conda - sha256: 6539b9c5f787c9e579d4f0af763527fe890a0935357f99d5410e71fbbb165ee3 - md5: e6d687c017e8af51a673081a2964ed1c + size: 27557021 + timestamp: 1736476015199 +- conda: https://prefix.dev/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.84.0-h2c6d0dc_0.conda + sha256: f3846cb70ff45ecbb82da5b3689b85244d047f71bff4c8cbaa27c76464641105 + md5: 8d8fbfcb06f37d113812c5f86695fd67 depends: - __unix constrains: - - rust >=1.81.0,<1.81.1.0a0 + - rust >=1.84.0,<1.84.1.0a0 license: MIT license_family: MIT - size: 34828353 - timestamp: 1726504171219 + size: 37433391 + timestamp: 1736473845771 - conda: https://prefix.dev/conda-forge/noarch/schema-0.7.7-pyhd8ed1ab_0.conda sha256: e2341ab1cf6128bde5037a6ba3c48ee33abc6bbe8d3db10f5f73f24b9f28b83c md5: 1add6f6b99191efab14f16e6aa9b6461 diff --git a/pixi.toml b/pixi.toml index ea80c26eb..ff9f0a1c0 100644 --- a/pixi.toml +++ b/pixi.toml @@ -110,7 +110,7 @@ compilers = ">=1.9.0,<2" git = ">=2.46.0,<3" openssl = "3.*" pkg-config = "0.29.*" -rust = "~=1.81.0" +rust = "1.84.*" [feature.build.target.linux-64.dependencies] clang = ">=18.1.8,<19.0" diff --git a/rust-toolchain b/rust-toolchain index dbd41264a..bd0f9e6c2 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -1.81.0 +1.84.0 diff --git a/src/build/cache/build_cache.rs b/src/build/cache/build_cache.rs index d579af435..07cdf44c9 100644 --- a/src/build/cache/build_cache.rs +++ b/src/build/cache/build_cache.rs @@ -38,7 +38,6 @@ pub enum BuildCacheError { /// the metadata of a source checkout. pub struct BuildInput { /// TODO: I think this should also include the build backend used! Maybe? - /// The URL channels used in the build. pub channel_urls: Vec, diff --git a/src/build/cache/source_metadata_cache.rs b/src/build/cache/source_metadata_cache.rs index 19fb5ff35..5688eca57 100644 --- a/src/build/cache/source_metadata_cache.rs +++ b/src/build/cache/source_metadata_cache.rs @@ -41,7 +41,6 @@ pub enum SourceMetadataError { /// the metadata of a source checkout. pub struct SourceMetadataInput { /// TODO: I think this should also include the build backend used! Maybe? - /// The URL of the source. pub channel_urls: Vec, diff --git a/src/cli/list.rs b/src/cli/list.rs index bd660fe80..c11b5bea7 100644 --- a/src/cli/list.rs +++ b/src/cli/list.rs @@ -20,6 +20,7 @@ use pypi_modifiers::pypi_tags::{get_pypi_tags, is_python_record}; use rattler_conda_types::Platform; use rattler_lock::{CondaPackageData, LockedPackageRef, PypiPackageData, UrlOrPath}; use serde::Serialize; +use uv_configuration::ConfigSettings; use uv_distribution::RegistryWheelIndex; // an enum to sort by size or name @@ -184,6 +185,7 @@ pub async fn execute(args: Args) -> miette::Result<()> { let tags; let uv_context; let index_locations; + let config_settings = ConfigSettings::default(); let mut registry_index = if let Some(python_record) = python_record { if environment.has_pypi_dependencies() { uv_context = UvResolutionContext::from_project(&project)?; @@ -200,6 +202,7 @@ pub async fn execute(args: Args) -> miette::Result<()> { &tags, &index_locations, &uv_types::HashStrategy::None, + &config_settings, )) } else { None diff --git a/src/cli/mod.rs b/src/cli/mod.rs index 3cd1a395c..0611e92c1 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -5,11 +5,13 @@ use miette::IntoDiagnostic; use pixi_consts::consts; use pixi_progress::global_multi_progress; use pixi_utils::indicatif::IndicatifWriter; +use std::sync::LazyLock; use std::{env, io::IsTerminal}; use tracing_subscriber::{ filter::LevelFilter, prelude::__tracing_subscriber_SubscriberExt, util::SubscriberInitExt, EnvFilter, }; +use uv_configuration::RAYON_INITIALIZE; pub mod add; mod build; @@ -174,6 +176,9 @@ pub async fn execute() -> miette::Result<()> { set_console_colors(&args); let use_colors = console::colors_enabled_stderr(); + // initialize rayon in uv so it doesn't crash later + LazyLock::force(&RAYON_INITIALIZE); + // Set up the default miette handler based on whether we want colors or not. miette::set_hook(Box::new(move |_| { Box::new( diff --git a/src/cli/run.rs b/src/cli/run.rs index b449c13fe..3a020310a 100644 --- a/src/cli/run.rs +++ b/src/cli/run.rs @@ -291,8 +291,8 @@ enum TaskExecutionError { /// Called to execute a single command. /// /// This function is called from [`execute`]. -async fn execute_task<'p>( - task: &ExecutableTask<'p>, +async fn execute_task( + task: &ExecutableTask<'_>, command_env: &HashMap, ) -> Result<(), TaskExecutionError> { let Some(script) = task.as_deno_script()? else { diff --git a/src/install_pypi/mod.rs b/src/install_pypi/mod.rs index d17d773d7..8ab4a97ff 100644 --- a/src/install_pypi/mod.rs +++ b/src/install_pypi/mod.rs @@ -15,10 +15,10 @@ use rattler_lock::{PypiIndexes, PypiPackageData, PypiPackageEnvironmentData}; use utils::elapsed; use uv_auth::store_credentials_from_url; use uv_client::{Connectivity, FlatIndexClient, RegistryClientBuilder}; -use uv_configuration::{ConfigSettings, Constraints, IndexStrategy, LowerBound}; +use uv_configuration::{ConfigSettings, Constraints, IndexStrategy, LowerBound, PreviewMode}; use uv_dispatch::{BuildDispatch, SharedState}; use uv_distribution::{DistributionDatabase, RegistryWheelIndex}; -use uv_distribution_types::{DependencyMetadata, IndexLocations, Name}; +use uv_distribution_types::{DependencyMetadata, IndexLocations, Name, Resolution}; use uv_git::GitResolver; use uv_install_wheel::linker::LinkMode; use uv_installer::{Preparer, SitePackages, UninstallError}; @@ -149,6 +149,7 @@ pub async fn update_python_distributions( LowerBound::default(), uv_context.source_strategy, uv_context.concurrency, + PreviewMode::Disabled, ) // ! Important this passes any CONDA activation to the uv build process .with_build_extra_env_vars(environment_variables.iter()); @@ -168,12 +169,15 @@ pub async fn update_python_distributions( site_packages.iter().count(), ); + let config_settings = ConfigSettings::default(); + // This is used to find wheels that are available from the registry let registry_index = RegistryWheelIndex::new( &uv_context.cache, &tags, &index_locations, &HashStrategy::None, + &config_settings, ); // Create a map of the required packages @@ -327,12 +331,14 @@ pub async fn update_python_distributions( &uv_context.build_options, distribution_database, ) - .with_reporter(UvReporter::new(options)); + .with_reporter(Arc::new(UvReporter::new(options))); let remote_dists = preparer .prepare( remote.iter().map(|(d, _)| d.clone()).collect(), &uv_context.in_flight, + // TODO: Not confident this is the right way to handle this but I can't see what the resolution would be. + &Resolution::default(), ) .await .into_diagnostic() @@ -466,7 +472,7 @@ pub async fn update_python_distributions( uv_installer::Installer::new(&venv) .with_link_mode(LinkMode::default()) .with_installer_name(Some(consts::PIXI_UV_INSTALLER.to_string())) - .with_reporter(UvReporter::new(options)) + .with_reporter(Arc::new(UvReporter::new(options))) .install(all_dists.clone()) .await .unwrap(); diff --git a/src/lock_file/resolve/pypi.rs b/src/lock_file/resolve/pypi.rs index 0aa69bb4f..2f1542710 100644 --- a/src/lock_file/resolve/pypi.rs +++ b/src/lock_file/resolve/pypi.rs @@ -1,14 +1,3 @@ -use std::{ - cell::RefCell, - collections::HashMap, - iter::once, - ops::Deref, - path::{Path, PathBuf}, - rc::Rc, - str::FromStr, - sync::Arc, -}; - use indexmap::{IndexMap, IndexSet}; use indicatif::ProgressBar; use itertools::{Either, Itertools}; @@ -28,15 +17,29 @@ use rattler_digest::{parse_digest_from_hex, Md5, Sha256}; use rattler_lock::{ PackageHashes, PypiPackageData, PypiPackageEnvironmentData, PypiSourceTreeHashable, UrlOrPath, }; +use std::collections::BTreeSet; +use std::{ + cell::RefCell, + collections::HashMap, + iter::once, + ops::Deref, + path::{Path, PathBuf}, + rc::Rc, + str::FromStr, + sync::Arc, +}; use typed_path::Utf8TypedPathBuf; use url::Url; use uv_client::{Connectivity, FlatIndexClient, RegistryClient, RegistryClientBuilder}; -use uv_configuration::{ConfigSettings, Constraints, IndexStrategy, LowerBound, Overrides}; +use uv_configuration::{ + ConfigSettings, Constraints, IndexStrategy, LowerBound, Overrides, PreviewMode, +}; use uv_dispatch::{BuildDispatch, SharedState}; use uv_distribution::DistributionDatabase; use uv_distribution_types::{ BuiltDist, DependencyMetadata, Diagnostic, Dist, FileLocation, HashPolicy, IndexCapabilities, IndexUrl, InstalledDist, InstalledRegistryDist, Name, Resolution, ResolvedDist, SourceDist, + ToUrlError, }; use uv_git::GitResolver; use uv_install_wheel::linker::LinkMode; @@ -44,8 +47,8 @@ use uv_pypi_types::{Conflicts, HashAlgorithm, HashDigest, RequirementSource}; use uv_python::{Interpreter, PythonEnvironment}; use uv_requirements::LookaheadResolver; use uv_resolver::{ - AllowedYanks, DefaultResolverProvider, FlatIndex, InMemoryIndex, Manifest, Options, Preference, - Preferences, PythonRequirement, Resolver, ResolverEnvironment, + AllowedYanks, DefaultResolverProvider, Exclusions, FlatIndex, InMemoryIndex, Manifest, Options, + Preference, Preferences, PythonRequirement, Resolver, ResolverEnvironment, }; use uv_types::EmptyInstalledPackages; @@ -365,6 +368,7 @@ pub async fn resolve_pypi( LowerBound::default(), context.source_strategy, context.concurrency, + PreviewMode::default(), ) .with_build_extra_env_vars(env_variables.iter()); @@ -388,6 +392,7 @@ pub async fn resolve_pypi( Ok::<_, ConversionError>(uv_pypi_types::Requirement { name: to_uv_normalize(p.name.as_normalized())?, extras: vec![], + groups: vec![], marker: Default::default(), source, origin: None, @@ -426,7 +431,6 @@ pub async fn resolve_pypi( &requirements, &constraints, &Overrides::default(), - &[], &context.hash_strategy, &lookahead_index, DistributionDatabase::new( @@ -435,9 +439,9 @@ pub async fn resolve_pypi( context.concurrency.downloads, ), ) - .with_reporter(UvReporter::new( + .with_reporter(Arc::new(UvReporter::new( UvReporterOptions::new().with_existing(pb.clone()), - )) + ))) .resolve(&resolver_env) .await .into_diagnostic()?; @@ -446,11 +450,10 @@ pub async fn resolve_pypi( requirements, constraints, Overrides::default(), - Default::default(), Preferences::from_iter(preferences, &resolver_env), None, - None, - uv_resolver::Exclusions::None, + BTreeSet::new(), + Exclusions::default(), lookaheads, ); @@ -484,6 +487,8 @@ pub async fn resolve_pypi( options, &context.hash_strategy, resolver_env, + // TODO: This can contain tags. Which might improve the solver results on request. + None, &PythonRequirement::from_marker_environment(&marker_environment, requires_python.clone()), Conflicts::default(), &resolver_in_memory_index, @@ -495,9 +500,9 @@ pub async fn resolve_pypi( ) .into_diagnostic() .context("failed to resolve pypi dependencies")? - .with_reporter(UvReporter::new( + .with_reporter(Arc::new(UvReporter::new( UvReporterOptions::new().with_existing(pb.clone()), - )) + ))) .resolve() .await .into_diagnostic() @@ -535,6 +540,8 @@ enum GetUrlOrPathError { CannotJoin(String, String), #[error("expected path found: {0}")] ExpectedPath(String), + #[error(transparent)] + ToUrlError(#[from] ToUrlError), } /// Get the UrlOrPath from the index url and file location @@ -580,7 +587,7 @@ fn get_url_or_path( FileLocation::AbsoluteUrl(url) => { // Convert to a relative path from the base path let absolute = url - .to_url() + .to_url()? .to_file_path() .map_err(|_| GetUrlOrPathError::ExpectedPath(url.to_string()))?; // !IMPORTANT! We need to strip the base path from the absolute path @@ -635,9 +642,9 @@ fn get_url_or_path( } /// Create a vector of locked packages from a resolution -async fn lock_pypi_packages<'a>( +async fn lock_pypi_packages( conda_python_packages: CondaPythonPackages, - build_dispatch: &BuildDispatch<'a>, + build_dispatch: &BuildDispatch<'_>, registry_client: &Arc, resolution: Resolution, index_capabilities: &IndexCapabilities, diff --git a/src/lock_file/resolve/resolver_provider.rs b/src/lock_file/resolve/resolver_provider.rs index 074662fbf..155921b95 100644 --- a/src/lock_file/resolve/resolver_provider.rs +++ b/src/lock_file/resolve/resolver_provider.rs @@ -1,3 +1,7 @@ +use futures::{Future, FutureExt}; +use pixi_consts::consts; +use pixi_record::PixiRecord; +use std::sync::Arc; use std::{ cell::RefCell, collections::{BTreeMap, HashMap}, @@ -5,15 +9,11 @@ use std::{ rc::Rc, str::FromStr, }; - -use futures::{Future, FutureExt}; -use pixi_consts::consts; -use pixi_record::PixiRecord; use uv_distribution::{ArchiveMetadata, Metadata}; use uv_distribution_filename::SourceDistExtension; use uv_distribution_types::{ - Dist, File, FileLocation, HashComparison, IndexUrl, PrioritizedDist, RegistrySourceDist, - SourceDist, SourceDistCompatibility, UrlString, + Dist, File, FileLocation, HashComparison, IndexUrl, InstalledDist, PrioritizedDist, + RegistrySourceDist, SourceDist, SourceDistCompatibility, UrlString, }; use uv_resolver::{ DefaultResolverProvider, FlatDistributions, MetadataResponse, ResolverProvider, VersionMap, @@ -32,7 +32,7 @@ pub(super) struct CondaResolverProvider<'a, Context: BuildContext> { pub(super) package_requests: Rc>>, } -impl<'a, Context: BuildContext> ResolverProvider for CondaResolverProvider<'a, Context> { +impl ResolverProvider for CondaResolverProvider<'_, Context> { fn get_package_versions<'io>( &'io self, package_name: &'io uv_normalize::PackageName, @@ -145,6 +145,7 @@ impl<'a, Context: BuildContext> ResolverProvider for CondaResolverProvider<'a, C requires_python: None, provides_extras: iden.extras.iter().cloned().collect(), dependency_groups: Default::default(), + dynamic: Default::default(), }, hashes: vec![], }))) @@ -158,7 +159,15 @@ impl<'a, Context: BuildContext> ResolverProvider for CondaResolverProvider<'a, C .right_future() } - fn with_reporter(self, reporter: impl uv_distribution::Reporter + 'static) -> Self { + // TODO: Actually implement this.... + fn get_installed_metadata<'io>( + &'io self, + dist: &'io InstalledDist, + ) -> impl Future + 'io { + self.fallback.get_installed_metadata(dist) + } + + fn with_reporter(self, reporter: Arc) -> Self { Self { fallback: self.fallback.with_reporter(reporter), ..self diff --git a/src/lock_file/satisfiability.rs b/src/lock_file/satisfiability.rs index 38a2647e1..80463450e 100644 --- a/src/lock_file/satisfiability.rs +++ b/src/lock_file/satisfiability.rs @@ -124,6 +124,7 @@ impl Display for SourceTreeHashMismatch { } #[derive(Debug, Error, Diagnostic)] +#[allow(clippy::large_enum_variant)] pub enum PlatformUnsat { #[error("the requirement '{0}' could not be satisfied (required by '{1}')")] UnsatisfiableMatchSpec(MatchSpec, String), @@ -1418,6 +1419,7 @@ mod tests { use crate::Project; #[derive(Error, Debug, Diagnostic)] + #[allow(clippy::large_enum_variant)] enum LockfileUnsat { #[error("environment '{0}' is missing")] EnvironmentMissing(String), diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index 43d390954..46b2c3737 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -223,7 +223,7 @@ impl<'p> LockFileDerivedData<'p> { if environment_file.environment_lock_file_hash == *hash { let contains_source_packages = self.lock_file.environments().any(|(_, env)| { env.conda_packages(Platform::current()) - .map_or(false, |mut packages| { + .is_some_and(|mut packages| { packages.any(|package| package.as_source().is_some()) }) }); diff --git a/src/project/environment.rs b/src/project/environment.rs index e9876e047..eb455b7ff 100644 --- a/src/project/environment.rs +++ b/src/project/environment.rs @@ -51,14 +51,14 @@ impl Debug for Environment<'_> { } } -impl<'p> PartialEq for Environment<'p> { +impl PartialEq for Environment<'_> { fn eq(&self, other: &Self) -> bool { std::ptr::eq(self.project, other.project) && std::ptr::eq(self.environment, other.environment) } } -impl<'p> Eq for Environment<'p> {} +impl Eq for Environment<'_> {} impl<'p> Environment<'p> { /// Return new instance of Environment @@ -351,7 +351,7 @@ impl<'p> HasFeaturesIter<'p> for Environment<'p> { } } -impl<'p> Hash for Environment<'p> { +impl Hash for Environment<'_> { fn hash(&self, state: &mut H) { self.environment.name.hash(state); } diff --git a/src/rlimit.rs b/src/rlimit.rs index 67e32d085..3331d39a5 100644 --- a/src/rlimit.rs +++ b/src/rlimit.rs @@ -1,6 +1,5 @@ /// The desired value for the RLIMIT_NOFILE resource limit. This is the number /// of file descriptors that pixi should be able to open. - #[cfg(not(target_os = "windows"))] pub const DESIRED_RLIMIT_NOFILE: u64 = 1024; diff --git a/src/task/executable_task.rs b/src/task/executable_task.rs index 95169eeb5..f48e79be6 100644 --- a/src/task/executable_task.rs +++ b/src/task/executable_task.rs @@ -307,7 +307,7 @@ struct ExecutableTaskConsoleDisplay<'p, 't> { task: &'t ExecutableTask<'p>, } -impl<'p, 't> Display for ExecutableTaskConsoleDisplay<'p, 't> { +impl Display for ExecutableTaskConsoleDisplay<'_, '_> { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { let command = self.task.task.as_single_command(); write!( @@ -354,8 +354,8 @@ fn get_export_specific_task_env(task: &Task) -> String { /// Determine the environment variables to use when executing a command. The method combines the /// activation environment with the system environment variables. -pub async fn get_task_env<'p>( - environment: &Environment<'p>, +pub async fn get_task_env( + environment: &Environment<'_>, clean_env: bool, lock_file: Option<&LockFile>, force_activate: bool, diff --git a/src/task/task_graph.rs b/src/task/task_graph.rs index a29a49d1e..42110bc3e 100644 --- a/src/task/task_graph.rs +++ b/src/task/task_graph.rs @@ -72,7 +72,7 @@ impl fmt::Display for TaskNode<'_> { } } -impl<'p> TaskNode<'p> { +impl TaskNode<'_> { /// Returns the full command that should be executed for this task. This /// includes any additional arguments that should be passed to the /// command. diff --git a/tests/integration_rust/common/mod.rs b/tests/integration_rust/common/mod.rs index f17560411..48e275600 100644 --- a/tests/integration_rust/common/mod.rs +++ b/tests/integration_rust/common/mod.rs @@ -4,12 +4,11 @@ pub mod builders; pub mod client; pub mod package_database; -use std::{ - path::{Path, PathBuf}, - process::Output, - str::FromStr, +use self::builders::{HasDependencyConfig, RemoveBuilder}; +use crate::common::builders::{ + AddBuilder, InitBuilder, InstallBuilder, ProjectChannelAddBuilder, ProjectChannelRemoveBuilder, + ProjectEnvironmentAddBuilder, TaskAddBuilder, TaskAliasBuilder, UpdateBuilder, }; - use builders::SearchBuilder; use indicatif::ProgressDrawTarget; use miette::{Context, Diagnostic, IntoDiagnostic}; @@ -35,14 +34,15 @@ use pixi_manifest::{EnvironmentName, FeatureName}; use pixi_progress::global_multi_progress; use rattler_conda_types::{MatchSpec, ParseStrictness::Lenient, Platform}; use rattler_lock::{LockFile, LockedPackageRef, UrlOrPath}; +use std::sync::LazyLock; +use std::{ + path::{Path, PathBuf}, + process::Output, + str::FromStr, +}; use tempfile::TempDir; use thiserror::Error; - -use self::builders::{HasDependencyConfig, RemoveBuilder}; -use crate::common::builders::{ - AddBuilder, InitBuilder, InstallBuilder, ProjectChannelAddBuilder, ProjectChannelRemoveBuilder, - ProjectEnvironmentAddBuilder, TaskAddBuilder, TaskAliasBuilder, UpdateBuilder, -}; +use uv_configuration::RAYON_INITIALIZE; const DEFAULT_PROJECT_CONFIG: &str = r#" [repodata-config."https://prefix.dev"] @@ -213,6 +213,9 @@ impl LockFileExt for LockFile { impl PixiControl { /// Create a new PixiControl instance pub fn new() -> miette::Result { + // Initialize rayon using the `uv` initializer + LazyLock::force(&RAYON_INITIALIZE); + let tempdir = tempfile::tempdir().into_diagnostic()?; // Add default project config