From 41a97b0d33933d9f0939ec38d056da5dfa7d06f5 Mon Sep 17 00:00:00 2001 From: Wolf Vollprecht Date: Tue, 5 Nov 2024 16:40:37 +0100 Subject: [PATCH] feat: implement CEP-17 and prepare release (#1161) --- Cargo.lock | 971 +++++++++--------- Cargo.toml | 59 +- rust-tests/Cargo.toml | 2 +- src/metadata.rs | 1 + src/packaging.rs | 3 + src/packaging/metadata.rs | 7 + src/post_process/python.rs | 18 +- src/recipe/parser/build.rs | 11 +- ...ecipe__parser__tests__complete_recipe.snap | 1 + ...recipe__parser__tests__recipe_windows.snap | 1 + ...d__recipe__parser__tests__unix_recipe.snap | 1 + .../recipes/test-parsing/single_output.yaml | 1 + 12 files changed, 576 insertions(+), 500 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0250511d5..505b89093 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -79,9 +79,9 @@ dependencies = [ [[package]] name = "ansi-to-tui" -version = "6.0.1" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd01ee70df708c9ecb68705af08cee6fe85493992a7e205c52ddbe569314ba47" +checksum = "67555e1f1ece39d737e28c8a017721287753af3f93225e4a445b29ccb0f5912c" dependencies = [ "nom", "ratatui", @@ -92,9 +92,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.17" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -107,9 +107,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" @@ -141,15 +141,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.91" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" +checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "775a8770d29db3dadcb858482cc240af7b2ffde4ac4de67d1d4955728103f0e2" dependencies = [ "derive_arbitrary", ] @@ -372,7 +372,7 @@ dependencies = [ "http-content-range", "itertools 0.12.1", "memmap2 0.9.5", - "reqwest 0.12.9", + "reqwest", "reqwest-middleware", "thiserror", "tokio", @@ -456,12 +456,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "021e079a1bab0ecce6cf4b4b74c0c37afa4a697136eb3b127875c84a8f04a8c3" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.6.0" @@ -634,9 +628,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.31" +version = "1.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "0f57c4b4da2a9d619dd035f27316d7a426305b75be93d09e92f2b9229c34feaf" dependencies = [ "jobserver", "libc", @@ -741,9 +735,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.36" +version = "4.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86bc73de94bc81e52f3bebec71bc4463e9748f7a59166663e32044669577b0e2" +checksum = "11611dca53440593f38e6b25ec629de50b14cdfa63adc0fb856115a2c6d97595" dependencies = [ "clap", ] @@ -791,7 +785,7 @@ dependencies = [ "crossterm 0.27.0", "strum", "strum_macros", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -832,7 +826,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "unicode-width", + "unicode-width 0.1.14", "windows-sys 0.52.0", ] @@ -926,7 +920,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bitflags 2.6.0", + "bitflags", "crossterm_winapi", "libc", "parking_lot", @@ -939,7 +933,7 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 2.6.0", + "bitflags", "crossterm_winapi", "futures-core", "mio", @@ -1092,9 +1086,9 @@ dependencies = [ [[package]] name = "derive_arbitrary" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +checksum = "d475dfebcb4854d596b17b09f477616f80f17a550517f2b3615d8c205d5c802b" dependencies = [ "proc-macro2", "quote", @@ -1304,9 +1298,9 @@ checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "file_url" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e581e35fcfcf40b1767a88e44e3e1ef27faa11fc7383287d47bd3efef1cfe199" +checksum = "eff487eda48708def359958613c6c9762d9c4f8396db240e37083758ccb01c79" dependencies = [ "itertools 0.13.0", "percent-encoding", @@ -1352,15 +1346,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "fluent-uri" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17c704e9dbe1ddd863da1e6ff3567795087b1eb201ce80d8fa81162e1516500d" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "fnv" version = "1.0.7" @@ -1414,6 +1399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bb60e7409f34ef959985bc9d9c5ee8f5db24ee46ed9775850548021710f807f" dependencies = [ "autocfg", + "tokio", ] [[package]] @@ -1428,9 +1414,9 @@ dependencies = [ [[package]] name = "fs4" -version = "0.9.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c6b3bd49c37d2aa3f3f2220233b29a7cd23f79d1fe70e5337d25fb390793de" +checksum = "adc91b3da7f1a7968b00f9f65a4971252f6a927d3cb9eec05d91cbeaff678f9a" dependencies = [ "fs-err 2.11.0", "rustix", @@ -1509,9 +1495,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +checksum = "3f1fa2f9765705486b33fd2acf1577f8ec449c2ba1f318ae5447697b7c08d210" dependencies = [ "fastrand", "futures-core", @@ -1638,9 +1624,9 @@ dependencies = [ [[package]] name = "google-cloud-auth" -version = "0.13.2" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf7cb7864f08a92e77c26bb230d021ea57691788fb5dd51793f96965d19e7f9" +checksum = "357160f51a60ec3e32169ad687f4abe0ee1e90c73b449aa5d11256c4f1cf2ff6" dependencies = [ "async-trait", "base64 0.21.7", @@ -1648,7 +1634,7 @@ dependencies = [ "google-cloud-token", "home", "jsonwebtoken", - "reqwest 0.11.27", + "reqwest", "serde", "serde_json", "thiserror", @@ -1660,11 +1646,11 @@ dependencies = [ [[package]] name = "google-cloud-metadata" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc279bfb50487d7bcd900e8688406475fc750fe474a835b2ab9ade9eb1fc90e2" +checksum = "04f945a208886a13d07636f38fb978da371d0abc3e34bad338124b9f8c135a8f" dependencies = [ - "reqwest 0.11.27", + "reqwest", "thiserror", "tokio", ] @@ -1678,25 +1664,6 @@ dependencies = [ "async-trait", ] -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.6.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "h2" version = "0.4.6" @@ -1708,7 +1675,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.1.0", + "http", "indexmap 2.6.0", "slab", "tokio", @@ -1754,9 +1721,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" dependencies = [ "allocator-api2", "equivalent", @@ -1850,17 +1817,6 @@ dependencies = [ "utf8-width", ] -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http" version = "1.1.0" @@ -1872,17 +1828,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -1890,7 +1835,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http", ] [[package]] @@ -1901,8 +1846,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] @@ -1912,9 +1857,9 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92baf25cf0b8c9246baecf3a444546360a97b569168fdf92563ee6a47829920c" dependencies = [ - "http 1.1.0", + "http", "http-serde", - "reqwest 0.12.9", + "reqwest", "serde", "time", ] @@ -1931,7 +1876,7 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f056c8559e3757392c8d091e796416e4649d8e49e88b8d76df6c002f05027fd" dependencies = [ - "http 1.1.0", + "http", "serde", ] @@ -1941,12 +1886,6 @@ version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - [[package]] name = "humansize" version = "2.1.3" @@ -1962,30 +1901,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "hyper" -version = "0.14.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.5.0" @@ -1995,9 +1910,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", "itoa", "pin-project-lite", @@ -2006,20 +1921,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.31", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - [[package]] name = "hyper-rustls" version = "0.27.3" @@ -2027,29 +1928,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.5.0", + "http", + "hyper", "hyper-util", - "rustls 0.23.16", + "rustls", "rustls-native-certs", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tower-service", - "webpki-roots 0.26.6", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.31", - "native-tls", - "tokio", - "tokio-native-tls", + "webpki-roots", ] [[package]] @@ -2060,7 +1948,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-util", "native-tls", "tokio", @@ -2077,9 +1965,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.5.0", + "http", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -2110,6 +1998,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2118,12 +2124,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", ] [[package]] @@ -2179,7 +2196,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.1", "serde", ] @@ -2193,10 +2210,16 @@ dependencies = [ "instant", "number_prefix", "portable-atomic", - "unicode-width", + "unicode-width 0.1.14", "vt100", ] +[[package]] +name = "indoc" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" + [[package]] name = "inout" version = "0.1.3" @@ -2209,9 +2232,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.41.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f72d3e19488cf7d8ea52d2fc0f8754fc933398b337cd3cbdb28aaeb35159ef" +checksum = "7e9ffc4d4892617c50a928c52b2961cb5174b6fc6ebf252b2fac9d21955c48b8" dependencies = [ "console", "lazy_static", @@ -2301,9 +2324,9 @@ dependencies = [ [[package]] name = "json-patch" -version = "2.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" dependencies = [ "jsonptr", "serde", @@ -2313,11 +2336,10 @@ dependencies = [ [[package]] name = "jsonptr" -version = "0.4.7" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c6e529149475ca0b2820835d3dce8fcc41c6b943ca608d32f35b449255e4627" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" dependencies = [ - "fluent-uri", "serde", "serde_json", ] @@ -2419,7 +2441,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags", "libc", "redox_syscall", ] @@ -2436,6 +2458,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "lock_api" version = "0.4.12" @@ -2464,7 +2492,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.0", + "hashbrown 0.15.1", ] [[package]] @@ -2550,7 +2578,7 @@ dependencies = [ "miette-derive 5.10.0", "once_cell", "thiserror", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -2570,7 +2598,7 @@ dependencies = [ "terminal_size 0.3.0", "textwrap", "thiserror", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -2678,7 +2706,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "cfg_aliases", "libc", @@ -2841,7 +2869,7 @@ version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -3063,7 +3091,7 @@ dependencies = [ "once_cell", "regex", "serde", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -3078,7 +3106,7 @@ dependencies = [ "serde", "thiserror", "tracing", - "unicode-width", + "unicode-width 0.1.14", "url", ] @@ -3325,7 +3353,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.16", + "rustls", "socket2", "thiserror", "tokio", @@ -3342,7 +3370,7 @@ dependencies = [ "rand", "ring", "rustc-hash", - "rustls 0.23.16", + "rustls", "slab", "thiserror", "tinyvec", @@ -3351,9 +3379,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e346e016eacfff12233c243718197ca12f148c84e1e84268a896699b41c71780" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" dependencies = [ "cfg_aliases", "libc", @@ -3410,37 +3438,37 @@ dependencies = [ [[package]] name = "ratatui" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdef7f9be5c0122f890d58bdf4d964349ba6a6161f705907526d891efabba57d" +checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cassowary", "compact_str", "crossterm 0.28.1", + "indoc", "instability", "itertools 0.13.0", "lru", "paste", "strum", - "strum_macros", "unicode-segmentation", "unicode-truncate", - "unicode-width", + "unicode-width 0.2.0", ] [[package]] name = "rattler" -version = "0.27.16" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b1afb401b5ae69ef0c20beabdf822c650cc6c387bd01369876a3cc05807b65" +checksum = "bd22dfa274c4d52295491906de6eaebc7e50ad60ffa63f15923f7a5c86278b09" dependencies = [ "anyhow", "clap", "console", "digest", "dirs", - "fs-err 2.11.0", + "fs-err 3.0.0", "futures", "humantime", "indexmap 2.6.0", @@ -3452,13 +3480,13 @@ dependencies = [ "parking_lot", "rattler_cache", "rattler_conda_types", - "rattler_digest 1.0.2", + "rattler_digest 1.0.3", "rattler_networking", "rattler_package_streaming", "rattler_shell", "reflink-copy", "regex", - "reqwest 0.12.9", + "reqwest", "reqwest-middleware", "simple_spawn_blocking", "smallvec", @@ -3472,7 +3500,7 @@ dependencies = [ [[package]] name = "rattler-build" -version = "0.28.2" +version = "0.29.0" dependencies = [ "ansi-to-tui", "anyhow", @@ -3515,7 +3543,7 @@ dependencies = [ "rattler", "rattler_cache", "rattler_conda_types", - "rattler_digest 1.0.2", + "rattler_digest 1.0.3", "rattler_index", "rattler_installs_packages", "rattler_networking", @@ -3528,7 +3556,7 @@ dependencies = [ "rayon", "reflink-copy", "regex", - "reqwest 0.12.9", + "reqwest", "reqwest-middleware", "rstest", "scroll", @@ -3556,7 +3584,7 @@ dependencies = [ "tui-input", "url", "walkdir", - "which", + "which 7.0.0", "xz2", "zip 2.2.0", "zstd 0.13.2", @@ -3564,24 +3592,24 @@ dependencies = [ [[package]] name = "rattler_cache" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abdd55d83e6b1a573920b0b40b79fe11b4957abef45e2fac3144c323f48a2f60" +checksum = "89e57222ac28f224f675de54452b239f532e4f55ea36836526ae75e5a73cce01" dependencies = [ "anyhow", "dashmap", "digest", "dirs", - "fs4 0.9.1", + "fs4 0.11.0", "futures", "fxhash", "itertools 0.13.0", "parking_lot", "rattler_conda_types", - "rattler_digest 1.0.2", + "rattler_digest 1.0.3", "rattler_networking", "rattler_package_streaming", - "reqwest 0.12.9", + "reqwest", "reqwest-middleware", "simple_spawn_blocking", "thiserror", @@ -3592,9 +3620,9 @@ dependencies = [ [[package]] name = "rattler_conda_types" -version = "0.28.3" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ada4de35daa5b8ef2eecf18f51eaec355c52c5a6f9ca21b6413807b72cb90d0f" +checksum = "3679ee51d7869950d778b2acab10df50fa0b52a0acbb00d9ca95e880e5a2bb95" dependencies = [ "chrono", "dirs", @@ -3607,7 +3635,7 @@ dependencies = [ "lazy-regex", "nom", "purl", - "rattler_digest 1.0.2", + "rattler_digest 1.0.3", "rattler_macros", "rattler_redaction", "regex", @@ -3644,9 +3672,9 @@ dependencies = [ [[package]] name = "rattler_digest" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a87e1ed2c7df1dbbfaa79d8f520c347d511231c77f4dd5327a6c389758a98db0" +checksum = "a6a97526971dd357657ea4c88f6d39b31b2875c87dfe9fd12aac305fec6c0f60" dependencies = [ "blake2", "digest", @@ -3661,13 +3689,13 @@ dependencies = [ [[package]] name = "rattler_index" -version = "0.19.33" +version = "0.19.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee0c6f1aa7b5efa02175627f85873dd2e6b1058c05a4d38638cbd3671882f209" +checksum = "bd0b9c029d12289236d3c6509aada6822fa99ae549894eafe1e218af64ae4a20" dependencies = [ - "fs-err 2.11.0", + "fs-err 3.0.0", "rattler_conda_types", - "rattler_digest 1.0.2", + "rattler_digest 1.0.3", "rattler_package_streaming", "serde_json", "tracing", @@ -3699,7 +3727,7 @@ dependencies = [ "fs_extra", "futures", "html-escape", - "http 1.1.0", + "http", "http-cache-semantics", "include_dir", "indexmap 2.6.0", @@ -3716,7 +3744,7 @@ dependencies = [ "pyproject-toml", "rattler_digest 0.19.5", "regex", - "reqwest 0.12.9", + "reqwest", "reqwest-middleware", "resolvo 0.4.1", "serde", @@ -3731,15 +3759,15 @@ dependencies = [ "tokio-util", "tracing", "url", - "which", + "which 6.0.3", "zip 0.6.6", ] [[package]] name = "rattler_macros" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0306a96eb7216c786fa6234fd26207bf3769cbb48b2373d682eabb36ff11c175" +checksum = "19eadf6fea87bd67d9d4c372caa3c2bed33cd91cdc235ce86210d7bc513ae0a4" dependencies = [ "quote", "syn", @@ -3747,9 +3775,9 @@ dependencies = [ [[package]] name = "rattler_networking" -version = "0.21.4" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ada69629cc3ea204055f4d13604b32cb108fca456cc87d97d4280f041ac5708" +checksum = "89bc7a2698db24e4849a527528ec2ccb8c5c8c88c4e821e46c9124530b89c407" dependencies = [ "anyhow", "async-trait", @@ -3759,11 +3787,11 @@ dependencies = [ "fslock", "getrandom", "google-cloud-auth", - "http 1.1.0", + "http", "itertools 0.13.0", "keyring", "netrc-rs", - "reqwest 0.12.9", + "reqwest", "reqwest-middleware", "retry-policies", "serde", @@ -3775,19 +3803,19 @@ dependencies = [ [[package]] name = "rattler_package_streaming" -version = "0.22.10" +version = "0.22.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac020482d1e8eac6aa1114bc87f2af426a8c719e56b7798afe331354a41d1e5e" +checksum = "c46c1c690a668ed3bb740b078192301931a99126d4892748839535f2018b0c81" dependencies = [ "bzip2", "chrono", "futures-util", "num_cpus", "rattler_conda_types", - "rattler_digest 1.0.2", + "rattler_digest 1.0.3", "rattler_networking", "rattler_redaction", - "reqwest 0.12.9", + "reqwest", "reqwest-middleware", "serde_json", "tar", @@ -3803,20 +3831,20 @@ dependencies = [ [[package]] name = "rattler_redaction" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b3a430398cc4ecd0350204087377bc31d977dfd897d3b6930f195f39c515b" +checksum = "aa822f7a897914ff30e372814234047d556c98f3813fad616c93147b38dab7e7" dependencies = [ - "reqwest 0.12.9", + "reqwest", "reqwest-middleware", "url", ] [[package]] name = "rattler_repodata_gateway" -version = "0.21.18" +version = "0.21.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05726dde3ce7a7f46d67b9b41c6515af96219453043f0ba61359df40fbcff4db" +checksum = "f9398d9e0a091286617c92f3a9f0c37c868371c9d9fd4cb46463d5d2a622fec3" dependencies = [ "anyhow", "async-compression", @@ -3829,10 +3857,10 @@ dependencies = [ "dashmap", "dirs", "file_url", - "fs-err 2.11.0", + "fs-err 3.0.0", "futures", "hex", - "http 1.1.0", + "http", "http-cache-semantics", "humansize", "humantime", @@ -3846,10 +3874,10 @@ dependencies = [ "pin-project-lite", "rattler_cache", "rattler_conda_types", - "rattler_digest 1.0.2", + "rattler_digest 1.0.3", "rattler_networking", "rattler_redaction", - "reqwest 0.12.9", + "reqwest", "reqwest-middleware", "rmp-serde", "serde", @@ -3863,15 +3891,15 @@ dependencies = [ "tokio-util", "tracing", "url", - "windows-sys 0.52.0", + "windows-sys 0.59.0", "zstd 0.13.2", ] [[package]] name = "rattler_shell" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ab12a632b2a9641c4935d160ac181564a66ca56767780bf6ffa9814161dd5" +checksum = "f0dc935692eedf40b7135827b0eca92872b4f26c321c8a47d6f59d5fd99aaf09" dependencies = [ "enum_dispatch", "indexmap 2.6.0", @@ -3887,16 +3915,16 @@ dependencies = [ [[package]] name = "rattler_solve" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726c21f9119981b47fab512da5d94ddd139617a45ed2863aa709958badc26510" +checksum = "73e8e5d356515cc815cd514255ac99c061ee770a6f3d087062a4bb6b0edd4a9a" dependencies = [ "chrono", "futures", "itertools 0.13.0", "rattler_conda_types", - "rattler_digest 1.0.2", - "resolvo 0.8.2", + "rattler_digest 1.0.3", + "resolvo 0.8.4", "serde", "tempfile", "thiserror", @@ -3906,9 +3934,9 @@ dependencies = [ [[package]] name = "rattler_virtual_packages" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6d62812b0b3050fb63ebb3368dd1b64eac3a4d6eb2509bae04d49200b036c5" +checksum = "5dea1e5f560e837bba8c540c4595f4fc59a6671549637bf94aa6626c2cc519f7" dependencies = [ "archspec", "libloading", @@ -3948,7 +3976,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 2.6.0", + "bitflags", ] [[package]] @@ -4043,50 +4071,6 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.31", - "hyper-rustls 0.24.2", - "hyper-tls 0.5.0", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration", - "tokio", - "tokio-native-tls", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.25.4", - "winreg", -] - [[package]] name = "reqwest" version = "0.12.9" @@ -4096,15 +4080,16 @@ dependencies = [ "async-compression", "base64 0.22.1", "bytes", + "encoding_rs", "futures-core", "futures-util", - "h2 0.4.6", - "http 1.1.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "http-body-util", - "hyper 1.5.0", - "hyper-rustls 0.27.3", - "hyper-tls 0.6.0", + "hyper", + "hyper-rustls", + "hyper-tls", "hyper-util", "ipnet", "js-sys", @@ -4116,17 +4101,17 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.16", + "rustls", "rustls-native-certs", - "rustls-pemfile 2.2.0", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.0", + "tokio-rustls", "tokio-util", "tower-service", "url", @@ -4134,7 +4119,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.6", + "webpki-roots", "windows-registry", ] @@ -4146,8 +4131,8 @@ checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", - "http 1.1.0", - "reqwest 0.12.9", + "http", + "reqwest", "serde", "thiserror", "tower-service", @@ -4171,9 +4156,9 @@ dependencies = [ [[package]] name = "resolvo" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1621ce52e3ff36c8f55f0017f1e4909f59514af8f852ee943997760bf12c7c15" +checksum = "03fdd3aa47ae0816ce4ec203eba1330e7c96a6760cbfbee5f1d2ca6e768b50f7" dependencies = [ "ahash", "bitvec", @@ -4296,29 +4281,17 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.38" +version = "0.38.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" +checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" dependencies = [ - "bitflags 2.6.0", + "bitflags", "errno", "libc", "linux-raw-sys", "windows-sys 0.52.0", ] -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - [[package]] name = "rustls" version = "0.23.16" @@ -4328,7 +4301,7 @@ dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki", "subtle", "zeroize", ] @@ -4340,21 +4313,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" dependencies = [ "openssl-probe", - "rustls-pemfile 2.2.0", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework 2.11.1", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.2.0" @@ -4370,16 +4334,6 @@ version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "rustls-webpki" version = "0.102.8" @@ -4447,16 +4401,6 @@ dependencies = [ "syn", ] -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "secret-service" version = "4.0.0" @@ -4482,7 +4426,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -4495,7 +4439,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d0283c0a4a22a0f1b0e4edca251aa20b92fc96eaa09b84bec052f9415e9d71" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -4937,21 +4881,15 @@ checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" [[package]] name = "syn" -version = "2.0.85" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[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" @@ -4961,13 +4899,24 @@ dependencies = [ "futures-core", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sysctl" version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea" dependencies = [ - "bitflags 2.6.0", + "bitflags", "byteorder", "enum-as-inner", "libc", @@ -4977,38 +4926,16 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.30.13" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +checksum = "e3b5ae3f4f7d64646c46c4cae4e3f01d1c5d255c7406fdd7c7f999a94e488791" dependencies = [ - "cfg-if", "core-foundation-sys", "libc", + "memchr", "ntapi", - "once_cell", "rayon", - "windows 0.52.0", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "windows 0.57.0", ] [[package]] @@ -5019,9 +4946,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff6c40d3aedb5e06b57c6f669ad17ab063dd1e63d977c6a88e7f4dfa4f04020" +checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" dependencies = [ "filetime", "libc", @@ -5069,23 +4996,23 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" dependencies = [ "smawk", "unicode-linebreak", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" dependencies = [ "proc-macro2", "quote", @@ -5104,9 +5031,9 @@ dependencies = [ [[package]] name = "throbber-widgets-tui" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46994acd1137e3e5b78d9b9112d91596b20e64fc6ec788dfc0f2430a2e965633" +checksum = "1d36b5738d666a2b4c91b7c24998a8588db724b3107258343ebf8824bf55b06d" dependencies = [ "rand", "ratatui", @@ -5143,6 +5070,16 @@ dependencies = [ "time-core", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -5203,23 +5140,13 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.16", + "rustls", "rustls-pki-types", "tokio", ] @@ -5406,12 +5333,12 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tui-input" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd137780d743c103a391e06fe952487f914b299a4fe2c3626677f6a6339a7c6b" +checksum = "ffde6d8fcffe86b617018ca9b2171d673b41def44ebf802de203d2f2c598d3de" dependencies = [ "ratatui", - "unicode-width", + "unicode-width 0.2.0", ] [[package]] @@ -5449,12 +5376,6 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" -[[package]] -name = "unicode-bidi" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" - [[package]] name = "unicode-ident" version = "1.0.13" @@ -5467,15 +5388,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - [[package]] name = "unicode-segmentation" version = "1.12.0" @@ -5490,7 +5402,7 @@ checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" dependencies = [ "itertools 0.13.0", "unicode-segmentation", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -5499,6 +5411,12 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + [[package]] name = "unsafe-libyaml" version = "0.2.11" @@ -5513,9 +5431,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", "idna", @@ -5529,12 +5447,24 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + [[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.2" @@ -5589,7 +5519,7 @@ checksum = "84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de" dependencies = [ "itoa", "log", - "unicode-width", + "unicode-width 0.1.14", "vte", ] @@ -5729,12 +5659,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "webpki-roots" version = "0.26.6" @@ -5756,6 +5680,18 @@ dependencies = [ "winsafe", ] +[[package]] +name = "which" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9cad3279ade7346b96e38731a641d7343dd6a53d55083dd54eadfa5a1b38c6b" +dependencies = [ + "either", + "home", + "rustix", + "winsafe", +] + [[package]] name = "winapi" version = "0.3.9" @@ -5789,11 +5725,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.52.0" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" dependencies = [ - "windows-core 0.52.0", + "windows-core 0.57.0", "windows-targets 0.52.6", ] @@ -5816,19 +5752,42 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement 0.57.0", + "windows-interface 0.57.0", + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ - "windows-implement", - "windows-interface", - "windows-result", + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", "windows-strings", "windows-targets 0.52.6", ] +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "windows-implement" version = "0.58.0" @@ -5840,6 +5799,17 @@ dependencies = [ "syn", ] +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "windows-interface" version = "0.58.0" @@ -5857,11 +5827,20 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ - "windows-result", + "windows-result 0.2.0", "windows-strings", "windows-targets 0.52.6", ] +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-result" version = "0.2.0" @@ -5877,7 +5856,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows-result", + "windows-result 0.2.0", "windows-targets 0.52.6", ] @@ -6038,22 +6017,24 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "winsafe" version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "wyz" version = "0.5.1" @@ -6116,6 +6097,30 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zbus" version = "4.4.0" @@ -6199,12 +6204,55 @@ dependencies = [ "syn", ] +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "zip" version = "0.6.6" @@ -6228,8 +6276,7 @@ dependencies = [ [[package]] name = "zip" version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494" +source = "git+https://github.com/wolfv/zip2?branch=patched#d9ab99aee198b44fe6358febbbf5f8e57da351a8" dependencies = [ "arbitrary", "crc32fast", diff --git a/Cargo.toml b/Cargo.toml index 0fc93bdd5..62919596b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["rust-tests"] [package] name = "rattler-build" -version = "0.28.2" +version = "0.29.0" authors = ["rattler-build contributors "] homepage = "https://github.com/prefix-dev/rattler-build" edition = "2021" @@ -45,22 +45,22 @@ name = "rattler-build" required-features = ["recipe-generation"] [dependencies] -serde = { version = "1.0.213", features = ["derive"] } +serde = { version = "1.0.214", features = ["derive"] } serde_yaml = "0.9.34" serde-untagged = "0.1.6" -anyhow = "1.0.91" +anyhow = "1.0.92" walkdir = "2.5.0" sha2 = "0.10.8" hex = "0.4.3" serde_json = "1.0.132" -reqwest = { version = "0.12.8", default-features = false, features = [ +reqwest = { version = "0.12.9", default-features = false, features = [ "multipart", ] } tokio = { version = "1.41.0", features = ["rt", "macros", "rt-multi-thread", "process"] } itertools = "0.13.0" content_inspector = "0.2.4" serde_with = "3.11.0" -url = "2.5.2" +url = "2.5.3" tracing = "0.1.40" clap = { version = "4.5.20", features = ["derive", "env", "cargo"] } minijinja = { version = "2.4.0", features = [ @@ -76,14 +76,14 @@ tracing-subscriber = { version = "0.3.18", features = [ marked-yaml = { version = "0.7.1" } miette = { version = "7.2.0", features = ["fancy"] } num_cpus = "1.16.0" -goblin = "0.9.1" +goblin = "0.9.2" scroll = "0.12.0" pathdiff = "0.2.2" comfy-table = "7.1.1" futures = "0.3.31" indicatif = "0.17.8" console = { version = "0.15.8", features = ["windows-console-colors"] } -thiserror = "1.0.65" +thiserror = "1.0.68" tempfile = "3.13.0" chrono = "0.4.38" sha1 = "0.10.6" @@ -96,12 +96,12 @@ petgraph = "0.6.5" indexmap = "2.6.0" dunce = "1.0.5" fs-err = "3.0.0" -which = "6.0.3" -clap_complete = "4.5.35" +which = "7.0.0" +clap_complete = "4.5.37" clap_complete_nushell = "4.5.4" tokio-util = "0.7.12" -tar = "0.4.42" +tar = "0.4.43" zip = { version = "2.2.0", default-features = false, features = [ "flate2", "deflate", @@ -118,11 +118,11 @@ rattler_installs_packages = { version = "0.9.0", default-features = false, optio async-once-cell = "0.5.4" terminal_size = "0.4.0" memchr = "2.7.4" -ratatui = { version = "0.28.1", optional = true } +ratatui = { version = "0.29.0", optional = true } crossterm = { version = "0.28.1", features = ["event-stream"], optional = true } -ansi-to-tui = { version = "6.0.1", optional = true } -throbber-widgets-tui = { version = "0.7", optional = true } -tui-input = { version = "0.10.1", optional = true } +ansi-to-tui = { version = "7.0.0", optional = true } +throbber-widgets-tui = { version = "0.8", optional = true } +tui-input = { version = "0.11.0", optional = true } reflink-copy = "0.1.19" rayon = "1.10.0" patch = "0.7.0" @@ -130,22 +130,22 @@ regex = "1.11.1" async-recursion = "1.1.1" # Rattler crates -rattler = { version = "0.27.16", default-features = false, features = ["cli-tools", "indicatif"] } -rattler_cache = { version = "0.2.7", default-features = false } -rattler_conda_types = { version = "0.28.3", default-features = false } -rattler_digest = { version = "1.0.2", default-features = false, features = ["serde"] } -rattler_index = { version = "0.19.33", default-features = false } -rattler_networking = { version = "0.21.4", default-features = false } -rattler_redaction = { version = "0.1.2" } -rattler_repodata_gateway = { version = "0.21.18", default-features = false, features = ["gateway"] } -rattler_shell = { version = "0.22.4", default-features = false, features = ["sysinfo"] } -rattler_solve = { version = "1.1.0", default-features = false, features = ["resolvo", "serde"] } -rattler_virtual_packages = { version = "1.1.7", default-features = false } -rattler_package_streaming = { version = "0.22.10", default-features = false } +rattler = { version = "0.28.0", default-features = false, features = ["cli-tools", "indicatif"] } +rattler_cache = { version = "0.2.8", default-features = false } +rattler_conda_types = { version = "0.29.0", default-features = false } +rattler_digest = { version = "1.0.3", default-features = false, features = ["serde"] } +rattler_index = { version = "0.19.34", default-features = false } +rattler_networking = { version = "0.21.5", default-features = false } +rattler_redaction = { version = "0.1.3" } +rattler_repodata_gateway = { version = "0.21.19", default-features = false, features = ["gateway"] } +rattler_shell = { version = "0.22.5", default-features = false, features = ["sysinfo"] } +rattler_solve = { version = "1.2.0", default-features = false, features = ["resolvo", "serde"] } +rattler_virtual_packages = { version = "1.1.8", default-features = false } +rattler_package_streaming = { version = "0.22.11", default-features = false } lazy_static = "1.5.0" [dev-dependencies] -insta = { version = "1.40.0", features = ["yaml"] } +insta = { version = "1.41.1", features = ["yaml"] } rstest = "0.23.0" tracing-test = "0.2.5" tracing-indicatif = "0.3.6" @@ -165,7 +165,10 @@ pre-build = [ "apt-get update && apt-get install --assume-yes libssl-dev:$CROSS_DEB_ARCH", ] -# [patch.crates-io] +[patch.crates-io] +# this fork contains fixes for slow zip reading and large file writing +zip = { git = "https://github.com/wolfv/zip2", branch = "patched"} + # rattler = { git = "https://github.com/nichmor/rattler", branch = "feat/add-extra-field-on-about-json" } # rattler_conda_types = { git = "https://github.com/nichmor/rattler", branch = "feat/add-extra-field-on-about-json" } # rattler_digest = { git = "https://github.com/nichmor/rattler", branch = "feat/add-extra-field-on-about-json" } diff --git a/rust-tests/Cargo.toml b/rust-tests/Cargo.toml index f0e86e6e5..df1e0c15e 100644 --- a/rust-tests/Cargo.toml +++ b/rust-tests/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" [dependencies] glob = "0.3.1" -rattler_package_streaming = { version = "0.22.10", default-features = false } +rattler_package_streaming = { version = "0.22.11", default-features = false } serde_json = "1.0.132" sha1 = "0.10.6" duct = "0.13.7" diff --git a/src/metadata.rs b/src/metadata.rs index 0110de983..203fa30e3 100644 --- a/src/metadata.rs +++ b/src/metadata.rs @@ -823,6 +823,7 @@ mod test { version: VersionWithSource::from_str("1.2.3").unwrap(), purls: None, run_exports: None, + python_site_packages_path: None, }, file_name: "test-1.2.3-h123.tar.bz2".into(), url: Url::from_str("https://test.com/test/linux-64/test-1.2.3-h123.tar.bz2") diff --git a/src/packaging.rs b/src/packaging.rs index f0badef50..b67d469d9 100644 --- a/src/packaging.rs +++ b/src/packaging.rs @@ -74,6 +74,9 @@ pub enum PackagingError { #[error("No license files were copied")] LicensesNotFound, + + #[error("Invalid Metadata: {0}")] + InvalidMetadata(String), } /// This function copies the license files to the info/licenses folder. diff --git a/src/packaging/metadata.rs b/src/packaging/metadata.rs index 54176dc99..e097dc104 100644 --- a/src/packaging/metadata.rs +++ b/src/packaging/metadata.rs @@ -273,6 +273,12 @@ impl Output { }) .unwrap_or_default(); + if recipe.build().python().site_packages_path.is_some() { + // check that the package name is Python, otherwise fail + if self.name().as_normalized() != "python" { + return Err(PackagingError::InvalidMetadata("Cannot set python_site_packages_path for a package that is not called `python`".to_string())); + } + } Ok(IndexJson { name: self.name().clone(), version: self.version().clone().into(), @@ -301,6 +307,7 @@ impl Output { noarch: *recipe.build().noarch(), track_features, features: None, + python_site_packages_path: recipe.build().python().site_packages_path.clone(), }) } diff --git a/src/post_process/python.rs b/src/post_process/python.rs index f26fa9b43..b70ba2ec7 100644 --- a/src/post_process/python.rs +++ b/src/post_process/python.rs @@ -306,20 +306,22 @@ pub(crate) fn create_entry_points( ) })?; - let python_version = python_record.package_record.version.clone(); + // using target_platform is OK because this should never be noarch + let python_info = + PythonInfo::from_python_record(&python_record.package_record, *output.target_platform()) + .map_err(|e| { + PackagingError::CannotCreateEntryPoint(format!( + "Could not create python info: {}", + e + )) + })?; for ep in &output.recipe.build().python().entry_points { let script = python_entry_point_template( &output.prefix().to_string_lossy(), output.target_platform().is_windows(), ep, - // using target_platform is OK because this should never be noarch - &PythonInfo::from_version(&python_version, *output.target_platform()).map_err(|e| { - PackagingError::CannotCreateEntryPoint(format!( - "Could not create python info: {}", - e - )) - })?, + &python_info, ); if output.target_platform().is_windows() { diff --git a/src/recipe/parser/build.rs b/src/recipe/parser/build.rs index c7ae9c89c..9d2926514 100644 --- a/src/recipe/parser/build.rs +++ b/src/recipe/parser/build.rs @@ -495,6 +495,14 @@ pub struct Python { /// This is only relevant for macOS. #[serde(default, skip_serializing_if = "std::ops::Not::not")] pub use_python_app_entrypoint: bool, + + /// The relative site-packages path that a Python build _exports_ for other + /// packages to use. This setting only makes sense for the `python` package + /// itself. For example, a python 3.13 version could advertise a + /// site-packages path of `lib/python3.13/site-packages` for `noarch: + /// python` packages to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub site_packages_path: Option, } impl Python { @@ -520,7 +528,8 @@ impl TryConvertNode for RenderedMappingNode { self.iter(), entry_points, skip_pyc_compilation, - use_python_app_entrypoint + use_python_app_entrypoint, + site_packages_path ); Ok(python) } diff --git a/src/recipe/snapshots/rattler_build__recipe__parser__tests__complete_recipe.snap b/src/recipe/snapshots/rattler_build__recipe__parser__tests__complete_recipe.snap index bf903366b..578b8000f 100644 --- a/src/recipe/snapshots/rattler_build__recipe__parser__tests__complete_recipe.snap +++ b/src/recipe/snapshots/rattler_build__recipe__parser__tests__complete_recipe.snap @@ -44,6 +44,7 @@ build: skip_pyc_compilation: - test/bla/**/*.py use_python_app_entrypoint: true + site_packages_path: foo/bar/lib/python4.5/site-packages dynamic_linking: rpaths: - lib/ diff --git a/src/recipe/snapshots/rattler_build__recipe__parser__tests__recipe_windows.snap b/src/recipe/snapshots/rattler_build__recipe__parser__tests__recipe_windows.snap index 5b56d7fd4..3120f6481 100644 --- a/src/recipe/snapshots/rattler_build__recipe__parser__tests__recipe_windows.snap +++ b/src/recipe/snapshots/rattler_build__recipe__parser__tests__recipe_windows.snap @@ -126,6 +126,7 @@ Recipe { entry_points: [], skip_pyc_compilation: [], use_python_app_entrypoint: false, + site_packages_path: None, }, dynamic_linking: DynamicLinking { rpaths: [], diff --git a/src/recipe/snapshots/rattler_build__recipe__parser__tests__unix_recipe.snap b/src/recipe/snapshots/rattler_build__recipe__parser__tests__unix_recipe.snap index 7d0fec10b..788d560ef 100644 --- a/src/recipe/snapshots/rattler_build__recipe__parser__tests__unix_recipe.snap +++ b/src/recipe/snapshots/rattler_build__recipe__parser__tests__unix_recipe.snap @@ -126,6 +126,7 @@ Recipe { entry_points: [], skip_pyc_compilation: [], use_python_app_entrypoint: false, + site_packages_path: None, }, dynamic_linking: DynamicLinking { rpaths: [], diff --git a/test-data/recipes/test-parsing/single_output.yaml b/test-data/recipes/test-parsing/single_output.yaml index e106b850f..8eb68024c 100644 --- a/test-data/recipes/test-parsing/single_output.yaml +++ b/test-data/recipes/test-parsing/single_output.yaml @@ -60,6 +60,7 @@ build: skip_pyc_compilation: - test/bla/**/*.py use_python_app_entrypoint: true + site_packages_path: foo/bar/lib/python4.5/site-packages always_copy_files: - file1