From 2d2c6ea8f9e6263eb61c4a4b4e84c615b2dbb673 Mon Sep 17 00:00:00 2001 From: Alexis Daboville Date: Fri, 22 Nov 2024 23:56:41 +0100 Subject: [PATCH] Ignore freethreaded CPython builds (#1437) Fixes #1436 This seemed like the simplest fix to ignore freethreaded builds. Couple other thoughts/things that could happen later: * this won't help with folks who already downloaded a 3.13.0 CPython (they'll need to `rye toolchain remove cpython@3.13.0` first, and then `fetch` it again) * `PlatformTriple#flavor` should probably be a `set[str]`; so `freethreaded+pgo+lto-full` would become `{'freethreaded', 'pgo', 'lto'}` (tbd what to do with `full`) --- rye-devtools/src/rye_devtools/find_downloads.py | 5 +++++ rye-devtools/tests/test_basic.py | 1 + rye/src/sources/generated/python_downloads.inc | 8 ++++---- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/rye-devtools/src/rye_devtools/find_downloads.py b/rye-devtools/src/rye_devtools/find_downloads.py index b7cec2c170..13e92f6ddb 100644 --- a/rye-devtools/src/rye_devtools/find_downloads.py +++ b/rye-devtools/src/rye_devtools/find_downloads.py @@ -194,6 +194,11 @@ def match_mapping( # Map, old, special triplets to proper triples for parsing, or # return the triple if it's not a special one triple = cls.SPECIAL_TRIPLES.get(triple, triple) + + # freethreaded builds are experimental, ignore them for now + if "freethreaded" in triple: + return + pieces = triple.split("-") flavor = match_flavor(triple) env, pieces = match_mapping(pieces, cls.ENV_MAPPING) diff --git a/rye-devtools/tests/test_basic.py b/rye-devtools/tests/test_basic.py index f5862a917d..9aa20fadcc 100644 --- a/rye-devtools/tests/test_basic.py +++ b/rye-devtools/tests/test_basic.py @@ -34,6 +34,7 @@ def test_batched(): "x86_64-pc-windows-msvc-shared-pgo", PlatformTriple("x86_64", "windows", None, "shared-pgo"), ), + ("aarch64-apple-darwin-freethreaded+pgo-full", None), ], ) def test_parse_triplets(input, expected): diff --git a/rye/src/sources/generated/python_downloads.inc b/rye/src/sources/generated/python_downloads.inc index 1e48ebe285..3119a6bc58 100644 --- a/rye/src/sources/generated/python_downloads.inc +++ b/rye/src/sources/generated/python_downloads.inc @@ -101,11 +101,11 @@ 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: 13, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.13.0%2B20241016-aarch64-unknown-linux-gnu-freethreaded%2Blto-full.tar.zst", Some("59b50df9826475d24bb7eff781fa3949112b5e9c92adb29e96a09cdf1216d5bd")), - (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 13, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.13.0%2B20241016-aarch64-apple-darwin-freethreaded%2Bpgo%2Blto-full.tar.zst", Some("efc2e71c0e05bc5bedb7a846e05f28dd26491b1744ded35ed82f8b49ccfa684b")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 13, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.13.0%2B20241016-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("dab453a00cc921bb9b27db1ea23a7071381ee6b0fb04c5bc299ff9d03c020320")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 13, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.13.0%2B20241016-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("542e5ffac0b90dc1d872ba8157c0e96861b339b73a20eb21c53242f8c92e043c")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86"), os: Cow::Borrowed("windows"), major: 3, minor: 13, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.13.0%2B20241016-i686-pc-windows-msvc-shared-pgo-full.tar.zst", Some("0ef249cb7ba1e2c451e0a551df063f9caf2e2dc37e09d89f780f98991cd433db")), - (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 13, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.13.0%2B20241016-x86_64-unknown-linux-gnu-freethreaded%2Bpgo%2Blto-full.tar.zst", Some("a73adeda301ad843cce05f31a2d3e76222b656984535a7b87696a24a098b216c")), - (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 13, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.13.0%2B20241016-x86_64-apple-darwin-freethreaded%2Bpgo%2Blto-full.tar.zst", Some("2e07dfea62fe2215738551a179c87dbed1cc79d1b3654f4d7559889a6d5ce4eb")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("linux"), major: 3, minor: 13, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.13.0%2B20241016-x86_64-unknown-linux-gnu-pgo%2Blto-full.tar.zst", Some("078de2a3eef67377684e5054cbb059aa3f53d3189b2e19ab022f6b6242de014b")), + (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("macos"), major: 3, minor: 13, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.13.0%2B20241016-x86_64-apple-darwin-pgo%2Blto-full.tar.zst", Some("1c1262a5105c1ad725c18b15979fb057b699e7b3c5c158d2af9b9c59ad29157b")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("x86_64"), os: Cow::Borrowed("windows"), major: 3, minor: 13, patch: 0, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.13.0%2B20241016-x86_64-pc-windows-msvc-shared-pgo-full.tar.zst", Some("4b4940208e6c0475105fd2c8bfc2e29a4ccdb61350b26ef13172303930a23b4e")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("linux"), major: 3, minor: 12, patch: 7, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.12.7%2B20241016-aarch64-unknown-linux-gnu-lto-full.tar.zst", Some("bd7688441ddf8d5dc2ccb288bb31fb862330999a4a3f1544aa4f999c93b85a6a")), (PythonVersion { name: Cow::Borrowed("cpython"), arch: Cow::Borrowed("aarch64"), os: Cow::Borrowed("macos"), major: 3, minor: 12, patch: 7, suffix: None }, "https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.12.7%2B20241016-aarch64-apple-darwin-pgo%2Blto-full.tar.zst", Some("3f8bf335c97424d0be262687906b0f50511f22fede8b9be77363faa57c4b8e7f")),