diff --git a/CHANGELOG.md b/CHANGELOG.md index 09b33b6d36..371864c620 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,30 @@ This file contains tracks the changes landing in Rye. It includes changes that were not yet released. -## 0.33.0 +## 0.34.0 _Unreleased_ +- Use uv in `rye build` when uv is enabled. #978 + +## 0.33.0 + +Released on 2024-04-24. + +- Ensure files created by `rye init`, such as `pyproject.toml` and initial python files end with a newline. #979 + +- Add `--refresh` argument on `-f`. #994 + +- Preserve trailing newline in templates. #979 + +- Update uv to 0.1.37. #980 + +- Allow comments in `.python-version`. #1038 + +- Update Python releases to include 3.12.3 et al. #1022 + ## 0.32.0 Released on 2024-03-29 diff --git a/Cargo.lock b/Cargo.lock index 9e24440fb0..05904fe589 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -72,9 +72,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "once_cell", @@ -84,51 +84,51 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "anstyle" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2faccea4cc4ab4a667ce676a30e8ec13922a692c99bb8f5b11f1502c72e04220" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" dependencies = [ "backtrace", ] [[package]] name = "arc-swap" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -165,9 +165,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "block-buffer" @@ -180,9 +180,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", "serde", @@ -190,9 +190,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byteorder" @@ -223,12 +223,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" dependencies = [ "jobserver", "libc", + "once_cell", ] [[package]] @@ -237,6 +238,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chacha20" version = "0.9.1" @@ -294,9 +301,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.18" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -304,9 +311,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.18" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstyle", "clap_lex", @@ -315,30 +322,40 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.4.10" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb745187d7f4d76267b37485a65e0149edd0e91a4cfcdd3f27524ad86cee9f3" +checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e" dependencies = [ "clap", ] +[[package]] +name = "clap_complete_nushell" +version = "4.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0e48e026ce7df2040239117d25e4e79714907420c70294a5ce4b6bbe6a7b6" +dependencies = [ + "clap", + "clap_complete", +] + [[package]] name = "clap_derive" -version = "4.4.7" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", ] [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "configparser" @@ -361,9 +378,12 @@ dependencies = [ [[package]] name = "cookie-factory" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b" +checksum = "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2" +dependencies = [ + "futures", +] [[package]] name = "cpufeatures" @@ -376,9 +396,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" dependencies = [ "cfg-if", ] @@ -401,9 +421,9 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.4.2" +version = "3.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b467862cc8610ca6fc9a1532d7777cee0804e678ab45410897b9396495994a0b" +checksum = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345" dependencies = [ "nix", "windows-sys 0.52.0", @@ -411,9 +431,9 @@ dependencies = [ [[package]] name = "curl" -version = "0.4.44" +version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22" +checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6" dependencies = [ "curl-sys", "libc", @@ -421,14 +441,14 @@ dependencies = [ "openssl-sys", "schannel", "socket2", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "curl-sys" -version = "0.4.71+curl-8.6.0" +version = "0.4.72+curl-8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7b12a7ab780395666cb576203dc3ed6e01513754939a600b85196ccf5356bc5" +checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea" dependencies = [ "cc", "libc", @@ -436,7 +456,7 @@ dependencies = [ "openssl-sys", "pkg-config", "vcpkg", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -463,7 +483,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", ] [[package]] @@ -496,9 +516,9 @@ dependencies = [ [[package]] name = "deunicode" -version = "1.4.2" +version = "1.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae2a35373c5c74340b79ae6780b498b2b183915ec5dacf263aac5a099bf485a" +checksum = "322ef0094744e63628e6f0eb2295517f79276a5b342a4c2ff3042566ca181d4e" [[package]] name = "dialoguer" @@ -531,7 +551,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", ] [[package]] @@ -542,9 +562,9 @@ checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "either" -version = "1.9.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" [[package]] name = "encode_unicode" @@ -554,9 +574,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -588,15 +608,15 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "fiat-crypto" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" +checksum = "38793c55593b33412e3ae40c2c9781ffaa6f438f6f8c10f24e71846fbd7ae01e" [[package]] name = "filetime" @@ -711,6 +731,95 @@ dependencies = [ "winapi", ] +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -723,9 +832,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", "libc", @@ -756,7 +865,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", "time", ] @@ -785,9 +894,9 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hex" @@ -832,7 +941,7 @@ dependencies = [ "serde", "serde_derive", "thiserror", - "toml 0.8.9", + "toml 0.8.12", "unic-langid", ] @@ -874,7 +983,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.48", + "syn 2.0.60", "unic-langid", ] @@ -888,7 +997,7 @@ dependencies = [ "i18n-config", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", ] [[package]] @@ -903,9 +1012,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.2" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown", @@ -913,9 +1022,9 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" dependencies = [ "console", "instant", @@ -935,9 +1044,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.35.1" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c985c1bef99cf13c58fade470483d81a2bfe846ebde60ed28cc2dddec2df9e2" +checksum = "3eab73f58e59ca6526037208f0e98851159ec1633cf17b6cd2e1f2c3fd5d53cc" dependencies = [ "console", "lazy_static", @@ -945,7 +1054,6 @@ dependencies = [ "regex", "serde", "similar", - "yaml-rust", ] [[package]] @@ -995,15 +1103,15 @@ checksum = "4b3f7cef34251886990511df1c61443aa928499d598a9473929ab5a90a527304" [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" dependencies = [ "libc", ] @@ -1032,9 +1140,9 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libz-sys" -version = "1.1.15" +version = "1.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" +checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" dependencies = [ "cc", "libc", @@ -1044,9 +1152,9 @@ dependencies = [ [[package]] name = "license" -version = "3.2.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778718185117620a06e95d2b1e57d50166b1d6bfad93c8abfc1b3344c863ad8c" +checksum = "3bba2f02ee1d13cd4bea565658939cd851d70e391f34f7c27b45b2077df3a2e4" dependencies = [ "reword", "serde", @@ -1077,9 +1185,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "mailparse" @@ -1094,15 +1202,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "minijinja" -version = "1.0.12" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe0ff215195a22884d867b547c70a0c4815cbbcc70991f281dca604b20d10ce" +checksum = "55e877d961d4f96ce13615862322df7c0b6d169d40cab71a7ef3f9b9e594451e" dependencies = [ "serde", "serde_json", @@ -1140,7 +1248,7 @@ dependencies = [ "target-lexicon", "tempfile", "thiserror", - "toml 0.8.9", + "toml 0.8.12", "tracing", "unscanny", "ureq", @@ -1149,12 +1257,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "cfg-if", + "cfg_aliases", "libc", ] @@ -1197,9 +1306,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl-probe" @@ -1209,18 +1318,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.2.2+3.2.1" +version = "300.2.3+3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bbfad0063610ac26ee79f7484739e2b07555a75c42453b89263830b5c8103bc" +checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.99" +version = "0.9.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" dependencies = [ "cc", "libc", @@ -1304,41 +1413,47 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "platforms" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" [[package]] name = "poly1305" @@ -1395,9 +1510,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" dependencies = [ "unicode-ident", ] @@ -1429,9 +1544,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -1489,9 +1604,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", @@ -1501,9 +1616,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -1512,9 +1627,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "reword" @@ -1541,16 +1656,17 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin", "untrusted", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1573,7 +1689,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.48", + "syn 2.0.60", "walkdir", ] @@ -1610,11 +1726,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys", @@ -1623,35 +1739,45 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.10" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" dependencies = [ "log", "ring", + "rustls-pki-types", "rustls-webpki", - "sct", + "subtle", + "zeroize", ] +[[package]] +name = "rustls-pki-types" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54" + [[package]] name = "rustls-webpki" -version = "0.101.7" +version = "0.102.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf" dependencies = [ "ring", + "rustls-pki-types", "untrusted", ] [[package]] name = "rye" -version = "0.33.0" +version = "0.34.0" dependencies = [ "age", "anyhow", "bzip2", "clap", "clap_complete", + "clap_complete_nushell", "configparser", "console", "ctrlc", @@ -1687,7 +1813,7 @@ dependencies = [ "static_vcruntime", "tar", "tempfile", - "toml_edit 0.22.9", + "toml_edit", "url", "walkdir", "which", @@ -1700,9 +1826,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "salsa20" @@ -1748,16 +1874,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "secrecy" version = "0.8.0" @@ -1801,29 +1917,29 @@ checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" dependencies = [ "itoa", "ryu", @@ -1864,9 +1980,18 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "similar" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21" +checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "slug" @@ -1880,18 +2005,18 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.4.10" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -1943,9 +2068,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" dependencies = [ "proc-macro2", "quote", @@ -1965,19 +2090,18 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.13" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tempfile" -version = "3.9.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.0.1", - "redox_syscall", + "fastrand 2.0.2", "rustix", "windows-sys 0.52.0", ] @@ -1994,29 +2118,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", ] [[package]] name = "time" -version = "0.3.34" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -2035,9 +2159,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -2078,14 +2202,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.9" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6a4b9e8023eb94392d3dca65d717c53abc5dad49c07cb65bb8fcd87115fa325" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.21.1", + "toml_edit", ] [[package]] @@ -2099,26 +2223,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.21.1" +version = "0.22.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow 0.5.37", -] - -[[package]] -name = "toml_edit" -version = "0.22.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow 0.6.5", + "winnow", ] [[package]] @@ -2141,7 +2254,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", ] [[package]] @@ -2201,18 +2314,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" @@ -2244,15 +2357,16 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.9.1" +version = "2.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97" +checksum = "11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35" dependencies = [ "base64 0.21.7", "flate2", "log", "once_cell", "rustls", + "rustls-pki-types", "rustls-webpki", "serde", "serde_json", @@ -2286,9 +2400,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -2302,9 +2416,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2312,24 +2426,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2337,40 +2451,42 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "webpki-roots" -version = "0.25.4" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "which" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c" +checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7" dependencies = [ "either", "home", - "once_cell", "rustix", - "windows-sys 0.52.0", + "winsafe", ] [[package]] @@ -2391,11 +2507,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "134306a13c5647ad6453e8deaec55d3a44d6021970129e6188735e74bf546697" dependencies = [ - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -2419,7 +2535,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.5", ] [[package]] @@ -2439,17 +2555,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -2460,9 +2577,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -2472,9 +2589,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -2484,9 +2601,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -2496,9 +2619,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -2508,9 +2631,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -2520,9 +2643,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -2532,24 +2655,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" - -[[package]] -name = "winnow" -version = "0.5.37" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cad8365489051ae9f054164e459304af2e7e9bb407c958076c8bf4aef52da5" -dependencies = [ - "memchr", -] +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winnow" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" +checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352" dependencies = [ "memchr", ] @@ -2564,6 +2678,12 @@ dependencies = [ "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 = "x25519-dalek" version = "2.0.1" @@ -2587,15 +2707,6 @@ dependencies = [ "rustix", ] -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] - [[package]] name = "zerocopy" version = "0.7.32" @@ -2613,14 +2724,14 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "63381fa6624bf92130a6b87c0d07380116f80b565c42cf0d754136f0238359ef" dependencies = [ "zeroize_derive", ] @@ -2633,7 +2744,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.60", ] [[package]] @@ -2652,27 +2763,27 @@ dependencies = [ [[package]] name = "zstd" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110" +checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.0.0" +version = "7.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e" +checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.10+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" dependencies = [ "cc", "pkg-config", diff --git a/docs/guide/basics.md b/docs/guide/basics.md index 01e8ca842f..bd8eacc4b8 100644 --- a/docs/guide/basics.md +++ b/docs/guide/basics.md @@ -74,8 +74,8 @@ Use the `add` command to add dependencies to your project. rye add "flask>=2.0" ``` -Note that after `add` you need to run `sync` again to actually install it. If you -want to add packages from custom indexes, you have to [configure the source](sources.md) +Followed by `rye sync` to install the dependency into the virtual environment. +If you want to add packages from custom indexes, you have to [configure the source](sources.md) first. ## Listing Dependencies @@ -97,13 +97,14 @@ rye remove flask ## Working with the Project -To run executables in the context of the virtualenv you can use the `run` command. For -instance if you want to use `black` you can add and run it like this: +To run executables in the context of the virtualenv you can use the `run` command. For +instance, to use `black`, add it to the project, sync the virtual environment, and run it +over the current directory like this: ``` rye add black rye sync -rye run black +rye run black . ``` If you want to have the commands available directly you will need to activate the diff --git a/docs/guide/commands/self/completion.md b/docs/guide/commands/self/completion.md index 7d8c63fc0e..2b3c56cf42 100644 --- a/docs/guide/commands/self/completion.md +++ b/docs/guide/commands/self/completion.md @@ -18,6 +18,6 @@ _no arguments_ * `-s, --shell `: The shell to generate a completion script for (defaults to 'bash') - [possible values: `bash`, `elvish`, `fish`, `powershell`, `zsh`] + [possible values: `bash`, `elvish`, `fish`, `powershell`, `zsh`, `nushell`] * `-h, --help`: Print help (see a summary with '-h') diff --git a/docs/guide/config.md b/docs/guide/config.md index 46500da6ee..bda7499c7c 100644 --- a/docs/guide/config.md +++ b/docs/guide/config.md @@ -5,16 +5,16 @@ also a bit of global configuration to influence how it works. ## Changing Home Folder -By default Rye places all it's configuration in `~/.rye` on Unix and `%USERPROFILE%\.rye` on +By default Rye places all its configuration in `~/.rye` on Unix and `%USERPROFILE%\.rye` on Windows. This behavior can be changed via the `RYE_HOME` environment variable. This is useful -if you do not like the default location of where Rye places it's configuration or if you need +if you do not like the default location where Rye places its configuration or if you need to isolate it. ## Home Folder Structure -The `.rye` home folder contains both user configuration as well as Rye managed state such +The `.rye` home folder contains both user configuration as well as Rye-managed state such as [installed toolchains](toolchains/index.md). The following files and folders are placed within the -`.rye` folder. Note that not all are there always. +`.rye` folder. Note that not all are always there. ### `config.toml` @@ -39,7 +39,7 @@ which automatically proxies to the current virtualenv or globally installed [too ## Config File -The config file `config.toml` in the `.rye` folder today only is used to manage defaults. This +The config file `config.toml` in the `.rye` folder today is only used to manage defaults. This is a fully annotated config file: ```toml @@ -73,24 +73,25 @@ http = "http://127.0.0.1:4000" https = "http://127.0.0.1:4000" [behavior] -# When set to true the `managed` flag is always assumed to be true. +# When set to `true` the `managed` flag is always assumed to be `true`. force-rye-managed = false # Enables global shims when set to `true`. This means that the installed -# `python` shim will resolve to a Rye managed toolchain even outside of +# `python` shim will resolve to a Rye-managed toolchain even outside of # virtual environments. global-python = false -# When set to `true` enables experimental support of uv as a replacement -# for pip-tools. Learn more about uv here: https://github.com/astral-sh/uv -use-uv = false +# When set to `true`, Rye will use `uv` for package resolution and installation. +# Set to `false` to fall back to the `pip-tools` resolver. +# Learn more about uv here: https://github.com/astral-sh/uv +use-uv = true # Enable or disable automatic `sync` after `add` and `remove`. This defaults # to `true` when uv is enabled and `false` otherwise. autosync = true -# Marks the managed .venv in a way that cloud based synchronization systems -# like Dropbox and iCloud Files will not upload it. This defaults to true +# Marks the managed .venv in a way that cloud-based synchronization systems +# like Dropbox and iCloud Files will not upload it. This defaults to `true` # as a .venv in cloud storage typically does not make sense. Set this to # `false` to disable this behavior. venv-mark-sync-ignore = true @@ -100,7 +101,7 @@ venv-mark-sync-ignore = true # extra folder called `./install/` and place build artifacts adjacent in `./build`. fetch-with-build-info = false -# a array of tables with optional sources. Same format as in pyproject.toml +# An array of tables with optional sources. Same format as in pyproject.toml [[sources]] name = "default" url = "https://pypi.org/simple/" @@ -112,7 +113,7 @@ url = "https://pypi.org/simple/" The configuration can be read and modified with `rye config`. The keys are in dotted notation. `--get` reads a key, `--set`, `--set-int`, -`--set-bool`, or `--unset` modify one. +`--set-bool`, and `--unset` modify one. ```bash rye config --set proxy.http=http://127.0.0.1:4000 @@ -124,4 +125,4 @@ For more information see [`config`](commands/config.md). ## Per Project Config -For the project specific `pyproject.toml` config see [pyproject.toml](pyproject.md). +For the project-specific `pyproject.toml` config see [pyproject.toml](pyproject.md). diff --git a/docs/guide/installation.md b/docs/guide/installation.md index 25b62b8d51..1f883ee211 100644 --- a/docs/guide/installation.md +++ b/docs/guide/installation.md @@ -137,7 +137,7 @@ to learn more. ## Shell Completion -Rye supports generating completion scripts for Bash, Zsh, Fish or Powershell. Here are some common locations for each shell: +Rye supports generating completion scripts for Bash, Zsh, Fish, Powershell and Nushell. Here are some common locations for each shell: === "Bash" @@ -183,6 +183,12 @@ Rye supports generating completion scripts for Bash, Zsh, Fish or Powershell. He rye self completion -s powershell | Out-File -Encoding utf8 $PROFILE\..\Completions\rye_completion.ps1 ``` +=== "NuShell" + + ```nushell + rye self completion -s nushell | save --append $nu.env-path + ``` + ## Updating Rye To update rye to the latest version you can use `rye` itself: diff --git a/docs/guide/sync.md b/docs/guide/sync.md index 6d100253ce..aa2438a380 100644 --- a/docs/guide/sync.md +++ b/docs/guide/sync.md @@ -3,8 +3,8 @@ Rye supports two systems to manage dependencies: [uv](https://github.com/astral-sh/uv) and [pip-tools](https://github.com/jazzband/pip-tools). It currently defaults to -`pip-tools` but will offer you the option to use `uv` instead. `uv` will become -the default choice once it stabilzes as it offers significantly better performance. +`uv` as it offers significantly better performance, but will offer you the +option to use `pip-tools` instead. In order to download dependencies rye creates two "lockfiles" (called `requirements.lock` and `requirements-dev.lock`). These are not real lockfiles diff --git a/rye/Cargo.toml b/rye/Cargo.toml index fe5321efd2..72431ba886 100644 --- a/rye/Cargo.toml +++ b/rye/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rye" -version = "0.33.0" +version = "0.34.0" edition = "2021" license = "MIT" @@ -16,6 +16,7 @@ clap = { version = "4.3.5", default-features = false, features = [ "std", ] } clap_complete = "4.2.1" +clap_complete_nushell = "4.5.1" console = "0.15.7" curl = { version = "0.4.44", features = ["ssl", "static-curl", "static-ssl"] } flate2 = "1.0.25" diff --git a/rye/src/bootstrap.rs b/rye/src/bootstrap.rs index 79675a4c0b..7efed5d2f2 100644 --- a/rye/src/bootstrap.rs +++ b/rye/src/bootstrap.rs @@ -33,10 +33,10 @@ pub const SELF_PYTHON_TARGET_VERSION: PythonVersionRequest = PythonVersionReques suffix: None, }; -const SELF_VERSION: u64 = 17; +const SELF_VERSION: u64 = 18; const SELF_REQUIREMENTS: &str = r#" -build==1.1.1 +build==1.2.1 certifi==2024.2.2 charset-normalizer==3.3.2 click==8.1.7 diff --git a/rye/src/cli/add.rs b/rye/src/cli/add.rs index 13a0f281e0..4c956c5d92 100644 --- a/rye/src/cli/add.rs +++ b/rye/src/cli/add.rs @@ -198,7 +198,7 @@ pub struct Args { #[command(flatten)] req_extras: ReqExtras, /// Add this as dev dependency. - #[arg(long)] + #[arg(short, long)] dev: bool, /// Add this as an excluded dependency that will not be installed even if it's a sub dependency. #[arg(long, conflicts_with = "dev", conflicts_with = "optional")] diff --git a/rye/src/cli/build.rs b/rye/src/cli/build.rs index e944ffd0d1..6e94f76e25 100644 --- a/rye/src/cli/build.rs +++ b/rye/src/cli/build.rs @@ -2,13 +2,15 @@ use std::fs; use std::path::PathBuf; use std::process::{Command, Stdio}; -use anyhow::{bail, Error}; +use anyhow::{anyhow, bail, Error}; use clap::Parser; use console::style; use crate::bootstrap::ensure_self_venv; +use crate::config::Config; use crate::pyproject::{locate_projects, PyProject}; -use crate::utils::{get_venv_python_bin, CommandOutput, IoPathContext}; +use crate::utils::{get_venv_python_bin, prepend_path_to_path_env, CommandOutput, IoPathContext}; +use crate::uv::UvBuilder; /// Builds a package for distribution. #[derive(Parser, Debug)] @@ -44,7 +46,7 @@ pub struct Args { pub fn execute(cmd: Args) -> Result<(), Error> { let output = CommandOutput::from_quiet_and_verbose(cmd.quiet, cmd.verbose); - let venv = ensure_self_venv(output)?; + let self_venv = ensure_self_venv(output)?; let project = PyProject::load_or_discover(cmd.pyproject.as_deref())?; let out = match cmd.out { @@ -61,6 +63,7 @@ pub fn execute(cmd: Args) -> Result<(), Error> { } } + let use_uv = Config::current().use_uv(); let projects = locate_projects(project, cmd.all, &cmd.package[..])?; for project in projects { @@ -75,7 +78,7 @@ pub fn execute(cmd: Args) -> Result<(), Error> { style(project.normalized_name()?).cyan() ); - let mut build_cmd = Command::new(get_venv_python_bin(&venv)); + let mut build_cmd = Command::new(get_venv_python_bin(&self_venv)); build_cmd .arg("-mbuild") .env("NO_COLOR", "1") @@ -83,6 +86,17 @@ pub fn execute(cmd: Args) -> Result<(), Error> { .arg(&out) .arg(&*project.root_path()); + if use_uv { + // we need to ensure uv is available to use without installing it into self_venv + let uv = UvBuilder::new().with_output(output).ensure_exists()?; + let uv_dir = uv + .uv_bin() + .parent() + .ok_or_else(|| anyhow!("Could not find uv binary in self venv: empty path"))?; + build_cmd.env("PATH", prepend_path_to_path_env(uv_dir)?); + build_cmd.arg("--installer=uv"); + } + if cmd.wheel { build_cmd.arg("--wheel"); } @@ -90,6 +104,10 @@ pub fn execute(cmd: Args) -> Result<(), Error> { build_cmd.arg("--sdist"); } + if output == CommandOutput::Verbose { + build_cmd.arg("--verbose"); + } + if output == CommandOutput::Quiet { build_cmd.stdout(Stdio::null()); build_cmd.stderr(Stdio::null()); diff --git a/rye/src/cli/init.rs b/rye/src/cli/init.rs index 6b9167c79d..907f9292b1 100644 --- a/rye/src/cli/init.rs +++ b/rye/src/cli/init.rs @@ -152,7 +152,8 @@ if __name__ == "setuptools": pub fn execute(cmd: Args) -> Result<(), Error> { let cfg = Config::current(); - let env = Environment::new(); + let mut env = Environment::new(); + env.set_keep_trailing_newline(true); let dir = env::current_dir()?.join(cmd.path); let toml = dir.join("pyproject.toml"); let readme = dir.join("README.md"); diff --git a/rye/src/cli/rye.rs b/rye/src/cli/rye.rs index 3b6d59199c..72d7ca357f 100644 --- a/rye/src/cli/rye.rs +++ b/rye/src/cli/rye.rs @@ -7,8 +7,9 @@ use std::sync::Arc; use std::{env, fs}; use anyhow::{anyhow, bail, Context, Error}; -use clap::{CommandFactory, Parser}; -use clap_complete::Shell; +use clap::{CommandFactory, Parser, ValueEnum}; +use clap_complete::{Generator, Shell}; +use clap_complete_nushell::Nushell; use console::style; use minijinja::render; use self_replace::self_delete_outside_path; @@ -52,12 +53,54 @@ pub struct Args { command: SubCommand, } +#[derive(Clone, Debug, ValueEnum)] +enum ShellCompletion { + /// Bourne Again SHell (bash) + Bash, + /// Elvish shell + Elvish, + /// Friendly Interactive SHell (fish) + Fish, + /// PowerShell + PowerShell, + /// Z SHell (zsh) + Zsh, + /// Nushell + Nushell, +} + +impl Generator for ShellCompletion { + /// Generate the file name for the completion script. + fn file_name(&self, name: &str) -> String { + match self { + ShellCompletion::Nushell => Nushell.file_name(name), + ShellCompletion::Bash => Shell::Bash.file_name(name), + ShellCompletion::Elvish => Shell::Elvish.file_name(name), + ShellCompletion::Fish => Shell::Fish.file_name(name), + ShellCompletion::PowerShell => Shell::PowerShell.file_name(name), + ShellCompletion::Zsh => Shell::Zsh.file_name(name), + } + } + + /// Generate the completion script for the shell. + fn generate(&self, cmd: &clap::Command, buf: &mut dyn std::io::Write) { + match self { + ShellCompletion::Nushell => Nushell.generate(cmd, buf), + ShellCompletion::Bash => Shell::Bash.generate(cmd, buf), + ShellCompletion::Elvish => Shell::Elvish.generate(cmd, buf), + ShellCompletion::Fish => Shell::Fish.generate(cmd, buf), + ShellCompletion::PowerShell => Shell::PowerShell.generate(cmd, buf), + ShellCompletion::Zsh => Shell::Zsh.generate(cmd, buf), + } + } +} + /// Generates a completion script for a shell. #[derive(Parser, Debug)] pub struct CompletionCommand { /// The shell to generate a completion script for (defaults to 'bash'). #[arg(short, long)] - shell: Option, + shell: Option, } /// Performs an update of rye. @@ -180,7 +223,7 @@ pub fn execute(cmd: Args) -> Result<(), Error> { fn completion(args: CompletionCommand) -> Result<(), Error> { clap_complete::generate( - args.shell.unwrap_or(Shell::Bash), + args.shell.unwrap_or(ShellCompletion::Bash), &mut super::Args::command(), "rye", &mut std::io::stdout(), @@ -474,7 +517,7 @@ fn perform_install( // Also pick up the target version from the RYE_TOOLCHAIN_VERSION // environment variable. - let toolchain_version_request = match toolchain_version { + let mut toolchain_version_request = match toolchain_version { Some(version) => Some(version), None => match env::var("RYE_TOOLCHAIN_VERSION") { Ok(val) => Some(val.parse()?), @@ -581,12 +624,17 @@ fn perform_install( // can fill in the default. if !matches!(mode, InstallMode::NoPrompts) { if toolchain_path.is_none() { - prompt_for_default_toolchain( + // Prompt the user for the default toolchain version. + let user_version_request = prompt_for_default_toolchain( toolchain_version_request .clone() .unwrap_or(SELF_PYTHON_TARGET_VERSION), config_doc, )?; + + // If the user has selected a toolchain version, we should use that as the default, + // unless the `RYE_TOOLCHAIN_VERSION` environment variable is set. + toolchain_version_request = toolchain_version_request.or(Some(user_version_request)); } else { prompt_for_toolchain_later = true; } @@ -749,7 +797,7 @@ fn add_rye_to_path(mode: &InstallMode, shims: &Path, ask: bool) -> Result<(), Er fn prompt_for_default_toolchain( default_toolchain: PythonVersionRequest, config_doc: &mut toml_edit::DocumentMut, -) -> Result<(), Error> { +) -> Result { let choice = dialoguer::Input::with_theme(tui_theme()) .with_prompt("Which version of Python should be used as default toolchain?") .default(default_toolchain.clone()) @@ -765,7 +813,7 @@ fn prompt_for_default_toolchain( }) .interact_text()?; toml::ensure_table(config_doc, "default")["toolchain"] = toml_edit::value(choice.to_string()); - Ok(()) + Ok(choice) } pub fn auto_self_install() -> Result { diff --git a/rye/src/config.rs b/rye/src/config.rs index 1f578fca80..2d151d9966 100644 --- a/rye/src/config.rs +++ b/rye/src/config.rs @@ -266,7 +266,7 @@ impl Config { .get("behavior") .and_then(|x| x.get("use-uv")) .and_then(|x| x.as_bool()) - .unwrap_or(false) + .unwrap_or(true) } /// Fetches python installations with build info if possible. diff --git a/rye/src/installer.rs b/rye/src/installer.rs index b22c67456a..d93adda388 100644 --- a/rye/src/installer.rs +++ b/rye/src/installer.rs @@ -153,6 +153,7 @@ pub fn install( UvInstallOptions { importlib_workaround: py_ver.major == 3 && py_ver.minor == 7, extras: extra_requirements.to_vec(), + refresh: force, }, ); if result.is_err() { diff --git a/rye/src/platform.rs b/rye/src/platform.rs index 38887f2367..ed663f9066 100644 --- a/rye/src/platform.rs +++ b/rye/src/platform.rs @@ -217,8 +217,7 @@ pub fn get_python_version_request_from_pyenv_pin(root: &Path) -> Option Option Option { + // Skip empty lines and comments. + let ver = contents.lines().find(|line| { + let trimmed = line.trim(); + !(trimmed.is_empty() || trimmed.starts_with('#')) + })?; + + // Parse the version. + let ver = ver.parse().ok()?; + + Some(ver) +} + /// Returns the most recent cpython release. pub fn get_latest_cpython_version() -> Result { latest_available_python_version(&PythonVersionRequest { @@ -278,3 +291,22 @@ pub fn write_credentials(doc: &toml_edit::DocumentMut) -> Result<(), Error> { pub fn get_credentials_filepath() -> Result { Ok(get_app_dir().join("credentials")) } + +#[cfg(test)] +mod test { + + #[test] + fn test_read_python_version() { + // Parse a simple version. + let ver = super::read_python_version("3.8.1\n"); + assert_eq!(ver, Some("3.8.1".parse().unwrap())); + + // Skip empty lines. + let ver = super::read_python_version("\n\n3.8.1\n"); + assert_eq!(ver, Some("3.8.1".parse().unwrap())); + + // Skip comments. + let ver = super::read_python_version("# comment\n3.8.1\n"); + assert_eq!(ver, Some("3.8.1".parse().unwrap())); + } +} diff --git a/rye/src/sources/generated/python_downloads.inc b/rye/src/sources/generated/python_downloads.inc index 8e339fd86d..5484f94897 100644 --- a/rye/src/sources/generated/python_downloads.inc +++ b/rye/src/sources/generated/python_downloads.inc @@ -2,6 +2,12 @@ // To regenerate, run `rye run find-downloads > rye/src/sources/generated/python_downloads.inc` from the root of the repository. use std::borrow::Cow; pub const PYTHON_VERSIONS: &[(PythonVersion, &str, Option<&str>)] = &[ + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 10, patch: 14, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.16-aarch64.tar.bz2", Some("fc720999bc5050e1d3706b3b6445e695cf42bfc71ebc7c88ed6bb88828b1d385")), + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 10, patch: 14, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.16-macos_arm64.tar.bz2", Some("6c003376667a95c7a228544649677b9927b8210d6444b901817aad24b8719b93")), + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("linux"), major: 3, minor: 10, patch: 14, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.16-linux32.tar.bz2", Some("0df48aa780159e879ac89a805d143e4a6cd1b842f98046f5a3f865814bfaa2a4")), + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 10, patch: 14, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.16-linux64.tar.bz2", Some("404e6180d6caf9258eaab0c02c72018e9aa8eb03ab9094a0ff17ee5e3b265ac1")), + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 10, patch: 14, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.16-macos_x86_64.tar.bz2", Some("490f2c6ba2489f405444f3b4ad42166da6e2eb73489a9535b206067eaaf21737")), + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 10, patch: 14, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.16-win64.zip", Some("e08415a2f35c6ecf2342b504bdfde11e4c5eca3fc5ef7fd2214ff064a5a54396")), (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 10, patch: 13, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.15-aarch64.tar.bz2", Some("52146fccaf64e87e71d178dda8de63c01577ec3923073dc69e1519622bcacb74")), (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 10, patch: 13, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.15-macos_arm64.tar.bz2", Some("d927c5105ea7880f7596fe459183e35cc17c853ef5105678b2ad62a8d000a548")), (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("linux"), major: 3, minor: 10, patch: 13, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.15-linux32.tar.bz2", Some("75dd58c9abd8b9d78220373148355bc3119febcf27a2c781d64ad85e7232c4aa")), @@ -14,6 +20,12 @@ pub const PYTHON_VERSIONS: &[(PythonVersion, &str, Option<&str>)] = &[ (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 10, patch: 12, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.12-linux64.tar.bz2", Some("6c577993160b6f5ee8cab73cd1a807affcefafe2f7441c87bd926c10505e8731")), (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 10, patch: 12, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.12-macos_x86_64.tar.bz2", Some("dbc15d8570560d5f79366883c24bc42231a92855ac19a0f28cb0adeb11242666")), (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 10, patch: 12, suffix: None }, "https://downloads.python.org/pypy/pypy3.10-v7.3.12-win64.zip", Some("8c3b1d34fb99100e230e94560410a38d450dc844effbee9ea183518e4aff595c")), + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 9, patch: 19, suffix: None }, "https://downloads.python.org/pypy/pypy3.9-v7.3.16-aarch64.tar.bz2", Some("de3f2ed3581b30555ac0dd3e4df78a262ec736a36fb2e8f28259f8539b278ef4")), + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 9, patch: 19, suffix: None }, "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_arm64.tar.bz2", Some("88f824e7a2d676440d09bc90fc959ae0fd3557d7e2f14bfbbe53d41d159a47fe")), + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("linux"), major: 3, minor: 9, patch: 19, suffix: None }, "https://downloads.python.org/pypy/pypy3.9-v7.3.16-linux32.tar.bz2", Some("583b6d6dd4e8c07cbc04da04a7ec2bdfa6674825289c2378c5e018d5abe779ea")), + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 9, patch: 19, suffix: None }, "https://downloads.python.org/pypy/pypy3.9-v7.3.16-linux64.tar.bz2", Some("16f9c5b808c848516e742986e826b833cdbeda09ad8764e8704595adbe791b23")), + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 9, patch: 19, suffix: None }, "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_x86_64.tar.bz2", Some("fda015431621e7e5aa16359d114f2c45a77ed936992c1efff86302e768a6b21c")), + (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 9, patch: 19, suffix: None }, "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip", Some("06ec12a5e964dc0ad33e6f380185a4d295178dce6d6df512f508e7aee00a1323")), (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 9, patch: 18, suffix: None }, "https://downloads.python.org/pypy/pypy3.9-v7.3.15-aarch64.tar.bz2", Some("03e35fcba290454bb0ccf7ee57fb42d1e63108d10d593776a382c0a2fe355de0")), (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 9, patch: 18, suffix: None }, "https://downloads.python.org/pypy/pypy3.9-v7.3.15-macos_arm64.tar.bz2", Some("300541c32125767a91b182b03d9cc4257f04971af32d747ecd4d62549d72acfd")), (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("linux"), major: 3, minor: 9, patch: 18, suffix: None }, "https://downloads.python.org/pypy/pypy3.9-v7.3.15-linux32.tar.bz2", Some("c6209380977066c9e8b96e8258821c70f996004ce1bc8659ae83d4fd5a89ff5c")), @@ -89,6 +101,12 @@ pub const PYTHON_VERSIONS: &[(PythonVersion, &str, Option<&str>)] = &[ (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("linux"), major: 3, minor: 7, patch: 9, suffix: None }, "https://downloads.python.org/pypy/pypy3.7-v7.3.3-linux32.tar.bz2", Some("7d81b8e9fcd07c067cfe2f519ab770ec62928ee8787f952cadf2d2786246efc8")), (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 7, patch: 9, suffix: None }, "https://downloads.python.org/pypy/pypy3.7-v7.3.3-linux64.tar.bz2", Some("37e2804c4661c86c857d709d28c7de716b000d31e89766599fdf5a98928b7096")), (PythonVersion { name: Cow::Borrowed("pypy"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 7, patch: 9, suffix: None }, "https://downloads.python.org/pypy/pypy3.7-v7.3.3-osx64.tar.bz2", Some("d72b27d5bb60813273f14f07378a08822186a66e216c5d1a768ad295b582438d")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 12, patch: 3, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.12.3%2B20240415-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("a4f17d1e3b4ea0e4c2a3664f232c0857979522936af582f7de92b57050220f74")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 12, patch: 3, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.12.3%2B20240415-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("fa2b8c377f17dfb097a93c0fba217d93075a7ceba0cc877066e95be969e6b73d")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("windows"), major: 3, minor: 12, patch: 3, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.12.3%2B20240415-i686-pc-windows-msvc-shared-pgo-full.tar.zst", Some("31bb3f579f3dcbbf3bf1dc71a188112e821cdfc77d21c9dbfe82ea78538110e1")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 12, patch: 3, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.12.3%2B20240415-x86_64-unknown-linux-gnu-pgo%2Blto-full.tar.zst", Some("e51f6676a24c3551657347ef97963164eac801df0a62afcba8e0e28ebb62acee")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 12, patch: 3, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.12.3%2B20240415-x86_64-apple-darwin-pgo%2Blto-full.tar.zst", Some("e49da3f702da08a3e38d01c776cc2356e427217681964ff64a7880507e224a3c")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 12, patch: 3, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.12.3%2B20240415-x86_64-pc-windows-msvc-shared-pgo-full.tar.zst", Some("776568c92c5f3b47dbf5f17c1c58578f70d75a32654419a158aa8bdc6f95b09a")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 12, patch: 2, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.12.2%2B20240224-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("2e87c0215aea1614e52ff8588b0ba41eb5ecf555e500094a179c0bbf1b25cbc7")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 12, patch: 2, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.12.2%2B20240224-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("2afcc8b25c55793f6ceb0bef2e547e101f53c9e25a0fe0332320e5381a1f0fdb")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("windows"), major: 3, minor: 12, patch: 2, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.12.2%2B20240224-i686-pc-windows-msvc-shared-pgo-full.tar.zst", Some("ee985ae6a6a98f4d5bd19fd8c59f45235911d19b64e1dbd026261b8103f15db5")), @@ -107,6 +125,12 @@ pub const PYTHON_VERSIONS: &[(PythonVersion, &str, Option<&str>)] = &[ (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 12, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20231002/cpython-3.12.0%2B20231002-x86_64-unknown-linux-gnu-pgo%2Blto-full.tar.zst", Some("5ce861907a2751a3a7395b1aaada830c2b072acc03f3dd0bcbaaa2b7a9166fc0")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 12, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20231002/cpython-3.12.0%2B20231002-x86_64-apple-darwin-pgo%2Blto-full.tar.zst", Some("3b4781e7fd4efabe574ba0954e54c35c7d5ac4dc5b2990b40796c1c6aec67d79")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 12, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20231002/cpython-3.12.0%2B20231002-x86_64-pc-windows-msvc-shared-pgo-full.tar.zst", Some("5bdff7ed56550d96f9b26a27a8c25f0cc58a03bff19e5f52bba84366183cab8b")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 11, patch: 9, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.11.9%2B20240415-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("c9f5e493c686ed8a5c38d1748c45fed18dc9b6faa70794d9cc9bb32489cc0b77")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 11, patch: 9, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.11.9%2B20240415-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("9a59eb9e8e509e742a25cada7b2c1123a56022081d91a8fbe48015cf495b0d0f")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("windows"), major: 3, minor: 11, patch: 9, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.11.9%2B20240415-i686-pc-windows-msvc-shared-pgo-full.tar.zst", Some("f0405bb7e19e4dbf7db290c224fc4aa333d3e16e0ed571f0794becac620fa26a")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 11, patch: 9, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.11.9%2B20240415-x86_64-unknown-linux-gnu-pgo%2Blto-full.tar.zst", Some("1c5038da28a4379c065db85116594524010f30e653307c53bb9694e4e710d2c7")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 11, patch: 9, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.11.9%2B20240415-x86_64-apple-darwin-pgo%2Blto-full.tar.zst", Some("b1b156ceed6bc53c3c8816b3b5c3983d2c7070a8a42558b9c6dd730faec164e2")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 11, patch: 9, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.11.9%2B20240415-x86_64-pc-windows-msvc-shared-pgo-full.tar.zst", Some("25344b08303f72ba2a37c33aa240fbd2c8d5a41bcce79cff63923b3d778c645c")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 11, patch: 8, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.11.8%2B20240224-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("1d84ed69e5acce555513e9261ce4b78bed19969b06a51a26b2781a375d70083d")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 11, patch: 8, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.11.8%2B20240224-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("c0650884b929253b8688797d1955850f6e339bf0428b3d935f62ab3159f66362")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("windows"), major: 3, minor: 11, patch: 8, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.11.8%2B20240224-i686-pc-windows-msvc-shared-pgo-full.tar.zst", Some("c3e90962996177a027bd73dd9fd8c42a2d6ef832cda26db4ab4efc6105160537")), @@ -153,6 +177,12 @@ pub const PYTHON_VERSIONS: &[(PythonVersion, &str, Option<&str>)] = &[ (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 11, patch: 1, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1%2B20230116-x86_64-unknown-linux-gnu-pgo%2Blto-full.tar.zst", Some("02332441cb610b1e1aa2d2972e261e2910cc6a950b7973cac22c0759a93c5fcd")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 11, patch: 1, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1%2B20230116-x86_64-apple-darwin-pgo%2Blto-full.tar.zst", Some("0eb61be53ee13cf75a30b8a164ef513a2c7995b25b118a3a503245d46231b13a")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 11, patch: 1, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1%2B20230116-x86_64-pc-windows-msvc-shared-pgo-full.tar.zst", Some("f5c46fffda7d7894b975af728f739b02d1cec50fd4a3ea49f69de9ceaae74b17")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 10, patch: 14, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.10.14%2B20240415-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("630bbbba148557bf670fbd65eb7fcd3c212cac45387d135c02799a13967d0f3d")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 10, patch: 14, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.10.14%2B20240415-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("fa95c3a18e29234cf10c0befa2f08246307cab7f473ccc1804845be3caab076d")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("windows"), major: 3, minor: 10, patch: 14, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.10.14%2B20240415-i686-pc-windows-msvc-shared-pgo-full.tar.zst", Some("4fafd723944ae98611005caf0ad7dbb262e02c61ddfa7c45f0d097f0965839a8")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 10, patch: 14, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.10.14%2B20240415-x86_64-unknown-linux-gnu-pgo%2Blto-full.tar.zst", Some("add8cc6cbb4f2a3f8af2272e62b7604f7529a8c357c0af0f8a9f7d3dd444ef1e")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 10, patch: 14, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.10.14%2B20240415-x86_64-apple-darwin-pgo%2Blto-full.tar.zst", Some("cc3fa88159a50d639dff84af9ffe2a50d6eda41b51037c755b5a13b88ce50153")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 10, patch: 14, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.10.14%2B20240415-x86_64-pc-windows-msvc-shared-pgo-full.tar.zst", Some("abc3041f0de7e700229c0628dfcba7ba1d15c8b2924621add7baf1554a088768")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 10, patch: 13, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.10.13%2B20240224-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("7f23a4afa4032a7c5a4e0ec926da37eea242472142613c2baa029ef61c3c493c")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 10, patch: 13, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.10.13%2B20240224-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("57b83a4aa32bdbe7611f1290313ef24f2574dff5fa59181c0ccb26c14c688b73")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("linux"), major: 3, minor: 10, patch: 13, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20230826/cpython-3.10.13%2B20230826-i686-unknown-linux-gnu-pgo%2Blto-full.tar.zst", Some("cc5625a16fbec682d4ce40c0d185318164bd181efaa7eaf945ca63015db9fea3")), @@ -237,6 +267,12 @@ pub const PYTHON_VERSIONS: &[(PythonVersion, &str, Option<&str>)] = &[ (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 10, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20211017/cpython-3.10.0-x86_64-unknown-linux-gnu-pgo%2Blto-20211017T1616.tar.zst", None), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 10, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20211017/cpython-3.10.0-x86_64-apple-darwin-pgo%2Blto-20211017T1616.tar.zst", None), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 10, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20211017/cpython-3.10.0-x86_64-pc-windows-msvc-shared-pgo-20211017T1616.tar.zst", None), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 9, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.9.19%2B20240415-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("c462b6f2ab7d87b1000972ff6c1e797c86a1306cceee02cdcc81cd2240f44d34")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 9, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.9.19%2B20240415-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("04fd532cfba9b3184a94feaf689bd6147759f1d34ddd674e8b2c146b37a994b1")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("windows"), major: 3, minor: 9, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.9.19%2B20240415-i686-pc-windows-msvc-shared-pgo-full.tar.zst", Some("7e6edb16a3973fbb894f3cf4f60a34e22645e84621ec61c622cf4c5a2f4bf2a2")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 9, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.9.19%2B20240415-x86_64-unknown-linux-gnu-pgo%2Blto-full.tar.zst", Some("e1a07336705b58215f8ea138f4abee4640b1baa018e84a9ed44d9a47c7bfa0c8")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 9, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.9.19%2B20240415-x86_64-apple-darwin-pgo%2Blto-full.tar.zst", Some("2bb4ed2fc03bb05ac6680b8c11d3c64f7a7dd24b80089c5ad85a91ea4a1795aa")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 9, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.9.19%2B20240415-x86_64-pc-windows-msvc-shared-pgo-full.tar.zst", Some("e3611b5699c97bf5ac289e3636e8f932fb177997ee69a81b0c2b15c766ca6f13")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 9, patch: 18, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.9.18%2B20240224-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("93d7b15bf02a3191cfdee9d9d68bf2da782fc04cb142bcca6a4299fe524d9b37")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 9, patch: 18, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.9.18%2B20240224-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("579f9b68bbb3a915cbab9682e4d3c253bc96b0556b8a860982c49c25c61f974a")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("linux"), major: 3, minor: 9, patch: 18, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20230826/cpython-3.9.18%2B20230826-i686-unknown-linux-gnu-pgo%2Blto-full.tar.zst", Some("9e40a541b4eb6eb0a5e2f35724a18332aea91c61e18dec77ca40da5cf2496839")), @@ -345,6 +381,12 @@ pub const PYTHON_VERSIONS: &[(PythonVersion, &str, Option<&str>)] = &[ (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 9, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20201020/cpython-3.9.0-x86_64-unknown-linux-gnu-pgo-20201020T0627.tar.zst", None), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 9, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20201020/cpython-3.9.0-x86_64-apple-darwin-pgo-20201020T0626.tar.zst", None), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 9, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20201020/cpython-3.9.0-x86_64-pc-windows-msvc-shared-pgo-20201021T0245.tar.zst", None), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 8, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.8.19%2B20240415-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("31415fdb0d8ea48f09d4a7e0e007f0dd77809be67f5e73ec803f6856d491c542")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 8, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.8.19%2B20240415-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("08cf698453d0a3080426a70dbb43220e915eb4401a9ea0fc798f9f27a3bf7f88")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("windows"), major: 3, minor: 8, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.8.19%2B20240415-i686-pc-windows-msvc-shared-pgo-full.tar.zst", Some("d1776a6eecc3bcf549fdbd7adcc9a1ee6e0f0dfaa8ad77f055f5972882d0d227")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 8, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.8.19%2B20240415-x86_64-unknown-linux-gnu-pgo%2Blto-full.tar.zst", Some("778a2f806278f033c683b224aa595775c369717d477e0152b1293c9677ba9377")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 8, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.8.19%2B20240415-x86_64-apple-darwin-pgo%2Blto-full.tar.zst", Some("e011239aec57e2074093a31f6fb3fee036671ab777fb9764e32bfdb869a80652")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 8, patch: 19, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.8.19%2B20240415-x86_64-pc-windows-msvc-shared-pgo-full.tar.zst", Some("ff0812147ab19101c219d0648cf0dbe22b3612decd6034c286451dafe5fe5134")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 8, patch: 18, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.8.18%2B20240224-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("df66801678a5f4accee67784aff058f283fd52e42898527b7ff0e1cbc3e50e8c")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 8, patch: 18, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.8.18%2B20240224-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("c732c068cddcd6a008c1d6d8e35802f5bdc7323bd2eb64e77210d3d5fe4740c2")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("windows"), major: 3, minor: 8, patch: 18, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20240224/cpython-3.8.18%2B20240224-i686-pc-windows-msvc-shared-pgo-full.tar.zst", Some("9f94c7b54b97116cd308e73cda0b7a7b7fff4515932c5cbba18eeae9ec798351")), diff --git a/rye/src/sources/generated/uv_downloads.inc b/rye/src/sources/generated/uv_downloads.inc index bacd99d7ca..a7377da519 100644 --- a/rye/src/sources/generated/uv_downloads.inc +++ b/rye/src/sources/generated/uv_downloads.inc @@ -2,11 +2,11 @@ // To regenerate, run `rye run uv-downloads > rye/src/sources/generated/uv_downloads.inc` from the root of the repository. use std::borrow::Cow; pub const UV_DOWNLOADS: &[UvDownload] = &[ - UvDownload {arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 0, minor: 1, patch: 26, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.26/uv-aarch64-apple-darwin.tar.gz"), sha256: Cow::Borrowed("37e5e9359c6eb943d31ff0082b0ec5327c93b572a2eafedc8266963181dbb1d0") }, - UvDownload {arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 0, minor: 1, patch: 26, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.26/uv-aarch64-unknown-linux-gnu.tar.gz"), sha256: Cow::Borrowed("17ebc81973124e4c1c0958ce0eeabb541553d74bccad5a055ab2d33dddd4051b") }, - UvDownload {arch: Cow::Borrowed("i686"), os: Cow::Borrowed("windows"), major: 0, minor: 1, patch: 26, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.26/uv-i686-pc-windows-msvc.zip"), sha256: Cow::Borrowed("45ad6ac84cf7d4a4195fa96011fb902c7c05221cb65dcb0b84aeeb0194125c76") }, - UvDownload {arch: Cow::Borrowed("i686"), os: Cow::Borrowed("linux"), major: 0, minor: 1, patch: 26, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.26/uv-i686-unknown-linux-gnu.tar.gz"), sha256: Cow::Borrowed("5f30097ff062c718c40178b904cd654f1259f7ee012db7c102d31af650047602") }, - UvDownload {arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 0, minor: 1, patch: 26, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.26/uv-x86_64-apple-darwin.tar.gz"), sha256: Cow::Borrowed("431a180adf346d96b39f3477a4f26b53741819e0fe411c276c2aa07b90b0a4f5") }, - UvDownload {arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 0, minor: 1, patch: 26, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.26/uv-x86_64-pc-windows-msvc.zip"), sha256: Cow::Borrowed("874ce589229f3423cd2824dbc4fc1af7c933d0dde544d5883fd68012aaa44f7d") }, - UvDownload {arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 0, minor: 1, patch: 26, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.26/uv-x86_64-unknown-linux-gnu.tar.gz"), sha256: Cow::Borrowed("27e4edfa8f12986430c2f6265653b7fca3dec9cd8709692b7fb353c5c0f4db82") }, + UvDownload {arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 0, minor: 1, patch: 39, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.39/uv-aarch64-apple-darwin.tar.gz"), sha256: Cow::Borrowed("35e320cfa41c8902d66e2c491b5b2d2414e1c6443177c660736de657c66fb2c2") }, + UvDownload {arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 0, minor: 1, patch: 39, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.39/uv-aarch64-unknown-linux-gnu.tar.gz"), sha256: Cow::Borrowed("62b24363f21c07e02f62cf8e298ee6ec30e844006f3a52ac55c02903c755586d") }, + UvDownload {arch: Cow::Borrowed("i686"), os: Cow::Borrowed("windows"), major: 0, minor: 1, patch: 39, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.39/uv-i686-pc-windows-msvc.zip"), sha256: Cow::Borrowed("53e4c2ae32318699a5f6c4c7f19f1dd114b39b15e63704be902ff894b428dfed") }, + UvDownload {arch: Cow::Borrowed("i686"), os: Cow::Borrowed("linux"), major: 0, minor: 1, patch: 39, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.39/uv-i686-unknown-linux-gnu.tar.gz"), sha256: Cow::Borrowed("f0280538ed9bc68283606e4db031f9cc4c4c8404dc5719e9d1f03f705762966c") }, + UvDownload {arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 0, minor: 1, patch: 39, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.39/uv-x86_64-apple-darwin.tar.gz"), sha256: Cow::Borrowed("cf5393f17de6961c7140d68f80e09c1f43ef47f8fac923ccd41896cce698f296") }, + UvDownload {arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 0, minor: 1, patch: 39, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.39/uv-x86_64-pc-windows-msvc.zip"), sha256: Cow::Borrowed("a44eb417b0c1e1c7cffd7349b8019d684f6200d0b5cfaef7dc322e8312bb254c") }, + UvDownload {arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 0, minor: 1, patch: 39, suffix: None, url: Cow::Borrowed("https://github.com/astral-sh/uv/releases/download/0.1.39/uv-x86_64-unknown-linux-gnu.tar.gz"), sha256: Cow::Borrowed("e748caea4ddafd3aebba771f4e8f51fe5aa517b71151a648269b3be982a349a1") }, ]; diff --git a/rye/src/utils/mod.rs b/rye/src/utils/mod.rs index a236229004..c1121d1c5e 100644 --- a/rye/src/utils/mod.rs +++ b/rye/src/utils/mod.rs @@ -1,5 +1,6 @@ use std::borrow::Cow; use std::convert::Infallible; +use std::ffi::OsString; use std::io::{Cursor, Read}; use std::path::{Path, PathBuf}; use std::process::{Command, ExitStatus, Stdio}; @@ -234,6 +235,16 @@ where ENV_VAR_RE.replace_all(string, |m: &Captures| f(&m[1]).unwrap_or_default()) } +/// Prepend the given path to the current value of the $PATH environment variable +pub fn prepend_path_to_path_env(path: &Path) -> Result { + let mut paths = Vec::new(); + paths.push(path.to_owned()); + if let Some(existing_path) = std::env::var_os("PATH") { + paths.extend(std::env::split_paths(&existing_path)); + } + Ok(std::env::join_paths(paths)?) +} + #[derive(Copy, Clone, Debug)] enum ArchiveFormat { TarGz, diff --git a/rye/src/uv.rs b/rye/src/uv.rs index 336d024b44..da9ed10e91 100644 --- a/rye/src/uv.rs +++ b/rye/src/uv.rs @@ -20,6 +20,7 @@ use tempfile::NamedTempFile; pub struct UvInstallOptions { pub importlib_workaround: bool, pub extras: Vec, + pub refresh: bool, } pub enum UvPackageUpgrade { @@ -27,7 +28,7 @@ pub enum UvPackageUpgrade { All, /// Upgrade the specific set of packages. Packages(Vec), - /// Upgrade nothig (default). + /// Upgrade nothing (default). Nothing, } @@ -271,6 +272,13 @@ impl Uv { } } + /// Get uv binary path + /// + /// Warning: Always use self.cmd() when at all possible + pub fn uv_bin(&self) -> &Path { + &self.uv_bin + } + fn create_venv( &self, venv_dir: &Path, @@ -470,6 +478,10 @@ impl UvWithVenv { cmd.arg("pip").arg("install"); + if options.refresh { + cmd.arg("--refresh"); + } + self.uv.sources.add_as_pip_args(&mut cmd); cmd.arg("--").arg(requirement.to_string()); diff --git a/rye/tests/common/mod.rs b/rye/tests/common/mod.rs index a1827c4fdc..081ab7dfd8 100644 --- a/rye/tests/common/mod.rs +++ b/rye/tests/common/mod.rs @@ -55,7 +55,7 @@ fn bootstrap_test_rye() -> PathBuf { use-uv = true [default] -toolchain = "cpython@3.12.2" +toolchain = "cpython@3.12.3" "#, ) .unwrap(); @@ -64,9 +64,9 @@ toolchain = "cpython@3.12.2" // fetch the most important interpreters. Fetch some with and some without // build info to make sure we cover our grounds here. for (version, build_info) in [ - ("cpython@3.8.17", false), - ("cpython@3.11.8", true), - ("cpython@3.12.2", false), + ("cpython@3.8.19", false), + ("cpython@3.11.9", true), + ("cpython@3.12.3", false), ("pypy@3.10.13", false), ] { if home.join("py").join(version).is_dir() { diff --git a/rye/tests/test_add.rs b/rye/tests/test_add.rs index 0998ba198f..7576a4f35d 100644 --- a/rye/tests/test_add.rs +++ b/rye/tests/test_add.rs @@ -16,7 +16,7 @@ fn test_add_flask() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Added flask>=3.0.0 as regular dependency Added colorama>=0.4.6 as regular dependency Reusing already existing virtualenv @@ -52,7 +52,7 @@ fn test_add_flask_dotenv() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Added flask[dotenv]>=3.0.0 as regular dependency Added colorama>=0.4.6 as regular dependency Reusing already existing virtualenv @@ -105,7 +105,7 @@ fn test_add_from_find_links() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Added tqdm>=4.66.1 as regular dependency Added colorama>=0.4.6 as regular dependency Reusing already existing virtualenv @@ -137,7 +137,7 @@ fn test_add_flask_wrong_venv_exported() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Added flask==3.0.0 as regular dependency Added colorama>=0.4.6 as regular dependency Reusing already existing virtualenv @@ -173,7 +173,7 @@ fn test_add_explicit_version_or_url() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Added werkzeug==3.0.0 as regular dependency Reusing already existing virtualenv Generating production lockfile: [TEMP_PATH]/project/requirements.lock diff --git a/rye/tests/test_cli.rs b/rye/tests/test_cli.rs index 10c6765d6a..18dd47b482 100644 --- a/rye/tests/test_cli.rs +++ b/rye/tests/test_cli.rs @@ -26,7 +26,7 @@ fn test_dotenv() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Generating production lockfile: [TEMP_PATH]/project/requirements.lock Generating dev lockfile: [TEMP_PATH]/project/requirements-dev.lock Installing dependencies diff --git a/rye/tests/test_init.rs b/rye/tests/test_init.rs index a5ce194501..8b6ab12a0e 100644 --- a/rye/tests/test_init.rs +++ b/rye/tests/test_init.rs @@ -22,7 +22,7 @@ fn test_init_lib() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Generating production lockfile: [TEMP_PATH]/project/requirements.lock Generating dev lockfile: [TEMP_PATH]/project/requirements-dev.lock Installing dependencies @@ -70,7 +70,7 @@ fn test_init_default() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Generating production lockfile: [TEMP_PATH]/project/requirements.lock Generating dev lockfile: [TEMP_PATH]/project/requirements-dev.lock Installing dependencies @@ -119,7 +119,7 @@ fn test_init_script() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Generating production lockfile: [TEMP_PATH]/project/requirements.lock Generating dev lockfile: [TEMP_PATH]/project/requirements-dev.lock Installing dependencies diff --git a/rye/tests/test_self.rs b/rye/tests/test_self.rs index 01aadc1586..4883896287 100644 --- a/rye/tests/test_self.rs +++ b/rye/tests/test_self.rs @@ -63,7 +63,7 @@ fn test_version() { rye [VERSION] commit: [COMMIT] platform: [PLATFORM] - self-python: cpython@3.12.2 + self-python: cpython@3.12.3 symlink support: true uv enabled: true diff --git a/rye/tests/test_sync.rs b/rye/tests/test_sync.rs index 3ce9f8ac46..92cadf625a 100644 --- a/rye/tests/test_sync.rs +++ b/rye/tests/test_sync.rs @@ -15,7 +15,7 @@ fn test_empty_sync() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Generating production lockfile: [TEMP_PATH]/project/requirements.lock Generating dev lockfile: [TEMP_PATH]/project/requirements-dev.lock Installing dependencies @@ -53,7 +53,7 @@ fn test_add_and_sync_no_auto_sync() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Added flask==3.0.0 as regular dependency Added colorama>=0.4.6 as regular dependency @@ -96,7 +96,7 @@ fn test_add_autosync() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Added flask==3.0.0 as regular dependency Added colorama>=0.4.6 as regular dependency Reusing already existing virtualenv @@ -137,7 +137,7 @@ fn test_autosync_remember() { exit_code: 0 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Generating production lockfile: [TEMP_PATH]/project/requirements.lock Generating dev lockfile: [TEMP_PATH]/project/requirements-dev.lock Installing dependencies diff --git a/rye/tests/test_test.rs b/rye/tests/test_test.rs index 89111b60a5..c23b24f9f9 100644 --- a/rye/tests/test_test.rs +++ b/rye/tests/test_test.rs @@ -64,14 +64,14 @@ fn test_basic_tool_behavior() { exit_code: 1 ----- stdout ----- Initializing new virtualenv in [TEMP_PATH]/project/.venv - Python version: cpython@3.12.2 + Python version: cpython@3.12.3 Generating production lockfile: [TEMP_PATH]/project/requirements.lock Generating dev lockfile: [TEMP_PATH]/project/requirements-dev.lock Installing dependencies Done! Running tests for foo ([TEMP_PATH]/project) ============================= test session starts ============================= - platform [PLATFORM] -- Python 3.12.2, pytest-7.4.3, pluggy-1.3.0 + platform [PLATFORM] -- Python 3.12.3, pytest-7.4.3, pluggy-1.3.0 rootdir: [TEMP_PATH]/project collected 2 items @@ -109,7 +109,7 @@ fn test_basic_tool_behavior() { ----- stdout ----- Running tests for child-dep ([TEMP_PATH]/project/child-dep) ============================= test session starts ============================= - platform [PLATFORM] -- Python 3.12.2, pytest-7.4.3, pluggy-1.3.0 + platform [PLATFORM] -- Python 3.12.3, pytest-7.4.3, pluggy-1.3.0 rootdir: [TEMP_PATH]/project/child-dep collected 2 items @@ -129,7 +129,7 @@ fn test_basic_tool_behavior() { Running tests for foo ([TEMP_PATH]/project) ============================= test session starts ============================= - platform [PLATFORM] -- Python 3.12.2, pytest-7.4.3, pluggy-1.3.0 + platform [PLATFORM] -- Python 3.12.3, pytest-7.4.3, pluggy-1.3.0 rootdir: [TEMP_PATH]/project collected 2 items diff --git a/rye/tests/test_tools.rs b/rye/tests/test_tools.rs index 43cee4a9d8..b8b4a047a2 100644 --- a/rye/tests/test_tools.rs +++ b/rye/tests/test_tools.rs @@ -61,7 +61,7 @@ fn test_basic_tool_behavior() { success: true exit_code: 0 ----- stdout ----- - pycowsay 0.0.0.2 (cpython@3.11.8) + pycowsay 0.0.0.2 (cpython@3.11.9) ----- stderr ----- "###); @@ -70,13 +70,13 @@ fn test_basic_tool_behavior() { space.rye_cmd() .arg("toolchain") .arg("remove") - .arg("cpython@3.11.8"), @r###" + .arg("cpython@3.11.9"), @r###" success: false exit_code: 1 ----- stdout ----- ----- stderr ----- - error: toolchain cpython@3.11.8 is still in use by tool pycowsay + error: toolchain cpython@3.11.9 is still in use by tool pycowsay "###); rye_cmd_snapshot!(