Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e4e50bd76 | ||
|
|
8ef9414f60 | ||
|
|
1953c04972 | ||
|
|
46a6d27995 | ||
|
|
0dc0b48e4d | ||
|
|
b887417e0e | ||
|
|
36c5079ce5 | ||
|
|
68c03665d3 | ||
|
|
1c38fac9c8 | ||
|
|
140bc1a96a | ||
|
|
55fcb25edc | ||
|
|
c89609aaf2 | ||
|
|
13b086e3c6 | ||
|
|
302af02853 | ||
|
|
9361af3204 | ||
|
|
47c5a35421 |
+2
-2
@@ -46,8 +46,8 @@ linux_aarch64_task:
|
|||||||
<<: *RUN_TESTS
|
<<: *RUN_TESTS
|
||||||
|
|
||||||
windows_x86_task:
|
windows_x86_task:
|
||||||
# The task takes ~55 minutes while the timeout happens
|
# The task takes ~55 minutes while the timeout happens after 60 minutes by default,
|
||||||
# after 60 minutes by default, let's allow some wiggle room.
|
# let's allow some wiggle room.
|
||||||
timeout_in: 120m
|
timeout_in: 120m
|
||||||
windows_container:
|
windows_container:
|
||||||
image: cirrusci/windowsservercore:visualstudio2022
|
image: cirrusci/windowsservercore:visualstudio2022
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
cibuildwheel/platforms/ios.py @freakboy3742
|
cibuildwheel/platforms/ios.py @freakboy3742
|
||||||
cibuildwheel/platforms/pyodide.py @hoodmane @ryanking13 @agriyakhetarpal
|
cibuildwheel/platforms/pyodide.py @hoodmane @ryanking13 @agriyakhetarpal
|
||||||
|
cibuildwheel/platforms/android.py @mhsmith
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ jobs:
|
|||||||
needs: lint
|
needs: lint
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-13, macos-15]
|
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-13, macos-15]
|
||||||
python_version: ['3.13']
|
python_version: ['3.13']
|
||||||
@@ -97,6 +98,7 @@ jobs:
|
|||||||
uv sync --no-dev --group test
|
uv sync --no-dev --group test
|
||||||
|
|
||||||
- uses: joerick/pr-labels-action@v1.0.9
|
- uses: joerick/pr-labels-action@v1.0.9
|
||||||
|
|
||||||
- name: Set CIBW_ENABLE
|
- name: Set CIBW_ENABLE
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
@@ -134,16 +136,16 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
package-dir: sample_proj
|
package-dir: sample_proj
|
||||||
output-dir: wheelhouse_only
|
output-dir: wheelhouse_only
|
||||||
only: cp312-${{ runner.os == 'Linux' && (runner.arch == 'ARM64' && 'manylinux_aarch64' || 'manylinux_x86_64') || (runner.os == 'Windows' && 'win_amd64' || 'macosx_x86_64') }}
|
only: cp313-${{ runner.os == 'Linux' && (runner.arch == 'ARM64' && 'manylinux_aarch64' || 'manylinux_x86_64') || (runner.os == 'Windows' && 'win_amd64' || 'macosx_x86_64') }}
|
||||||
|
|
||||||
- name: Create custom configuration file
|
- name: Create custom configuration file
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
cat > sample_proj/cibw.toml <<EOF
|
cat > sample_proj/cibw.toml <<EOF
|
||||||
[tool.cibuildwheel]
|
[tool.cibuildwheel]
|
||||||
# Only build on CPython 3.12 on native arch
|
# Only build on CPython 3.13 on native arch
|
||||||
archs = ["native"]
|
archs = ["native"]
|
||||||
build = "cp312-*"
|
build = "cp313-*"
|
||||||
# Skip musllinux
|
# Skip musllinux
|
||||||
skip = "*-musllinux*"
|
skip = "*-musllinux*"
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ repos:
|
|||||||
- id: trailing-whitespace
|
- id: trailing-whitespace
|
||||||
|
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.12.4
|
rev: v0.12.5
|
||||||
hooks:
|
hooks:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
args: ["--fix", "--show-fixes"]
|
args: ["--fix", "--show-fixes"]
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ jobs:
|
|||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
|
|
||||||
- name: Install cibuildwheel
|
- name: Install cibuildwheel
|
||||||
run: python -m pip install cibuildwheel==3.1.1
|
run: python -m pip install cibuildwheel==3.1.2
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
run: python -m cibuildwheel --output-dir wheelhouse
|
run: python -m cibuildwheel --output-dir wheelhouse
|
||||||
@@ -227,6 +227,20 @@ Changelog
|
|||||||
|
|
||||||
<!-- [[[cog from readme_changelog import mini_changelog; print(mini_changelog()) ]]] -->
|
<!-- [[[cog from readme_changelog import mini_changelog; print(mini_changelog()) ]]] -->
|
||||||
|
|
||||||
|
### v3.1.2
|
||||||
|
|
||||||
|
_29 July 2025_
|
||||||
|
|
||||||
|
- ⚠️ Add an error if `CIBW_FREE_THREADING_SUPPORT` is set; you are likely missing 3.13t wheels, please use the `enable`/`CIBW_ENABLE` (#2520)
|
||||||
|
- 🛠 `riscv64` now enabled if you target that architecture, it's now supported on PyPI (#2509)
|
||||||
|
- 🛠 Add warning when using `cpython-experimental-riscv64` (no longer needed) (#2526, #2528)
|
||||||
|
- 🛠 iOS versions bumped, fixing issues with 3.14 (now RC 1) (#2530)
|
||||||
|
- 🐛 Fix bug in Android running wheel from our GitHub Action (#2517)
|
||||||
|
- 🐛 Fix warning when using `test-skip` of `"*-macosx_universal2:arm64"` (#2522)
|
||||||
|
- 🐛 Fix incorrect number of wheels reported in logs, again (#2517)
|
||||||
|
- 📚 We welcome our Android platform maintainer (#2516)
|
||||||
|
|
||||||
|
|
||||||
### v3.1.1
|
### v3.1.1
|
||||||
|
|
||||||
_24 July 2025_
|
_24 July 2025_
|
||||||
@@ -298,13 +312,7 @@ See @henryiii's [release post](https://iscinumpy.dev/post/cibuildwheel-3-0-0/) f
|
|||||||
- 📚 Docs now primarily use the pyproject.toml name of options, rather than the environment variable name. (#2389)
|
- 📚 Docs now primarily use the pyproject.toml name of options, rather than the environment variable name. (#2389)
|
||||||
- 📚 README table now matches docs and auto-updates. (#2427, #2428)
|
- 📚 README table now matches docs and auto-updates. (#2427, #2428)
|
||||||
|
|
||||||
### v2.23.3
|
<!-- [[[end]]] (sum: sVC5DNuhaF) -->
|
||||||
|
|
||||||
_26 April 2025_
|
|
||||||
|
|
||||||
- 🛠 Dependency updates, including Python 3.13.3 (#2371)
|
|
||||||
|
|
||||||
<!-- [[[end]]] (sum: K97aJ+f0EX) -->
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -339,6 +347,7 @@ Platform maintainers:
|
|||||||
- Hood Chatham [@hoodmane](https://github.com/hoodmane) (Pyodide)
|
- Hood Chatham [@hoodmane](https://github.com/hoodmane) (Pyodide)
|
||||||
- Gyeongjae Choi [@ryanking13](https://github.com/ryanking13) (Pyodide)
|
- Gyeongjae Choi [@ryanking13](https://github.com/ryanking13) (Pyodide)
|
||||||
- Tim Felgentreff [@timfel](https://github.com/timfel) (GraalPy)
|
- Tim Felgentreff [@timfel](https://github.com/timfel) (GraalPy)
|
||||||
|
- Malcolm Smith [@mhsmith](https://github.com/mhsmith) (Android)
|
||||||
|
|
||||||
Credits
|
Credits
|
||||||
-------
|
-------
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
__version__ = "3.1.1"
|
__version__ = "3.1.2"
|
||||||
|
|||||||
+57
-25
@@ -9,7 +9,7 @@ import tarfile
|
|||||||
import textwrap
|
import textwrap
|
||||||
import traceback
|
import traceback
|
||||||
import typing
|
import typing
|
||||||
from collections.abc import Iterable, Sequence
|
from collections.abc import Generator, Iterable, Sequence
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from tempfile import mkdtemp
|
from tempfile import mkdtemp
|
||||||
from typing import Any, Literal, TextIO
|
from typing import Any, Literal, TextIO
|
||||||
@@ -369,41 +369,61 @@ def print_preamble(platform: str, options: Options, identifiers: Sequence[str])
|
|||||||
print(f"Cache folder: {CIBW_CACHE_PATH}")
|
print(f"Cache folder: {CIBW_CACHE_PATH}")
|
||||||
print()
|
print()
|
||||||
|
|
||||||
warnings = detect_warnings(options=options, identifiers=identifiers)
|
warnings = detect_warnings(options=options)
|
||||||
for warning in warnings:
|
for warning in warnings:
|
||||||
log.warning(warning)
|
log.warning(warning)
|
||||||
|
|
||||||
|
error_list = list(detect_errors(options=options, identifiers=identifiers))
|
||||||
|
if error_list:
|
||||||
|
for error in error_list:
|
||||||
|
log.error(error)
|
||||||
|
msg = "\n".join(error_list)
|
||||||
|
raise errors.ConfigurationError(msg)
|
||||||
|
|
||||||
print("Here we go!\n")
|
print("Here we go!\n")
|
||||||
|
|
||||||
|
|
||||||
def detect_warnings(*, options: Options, identifiers: Iterable[str]) -> list[str]:
|
def detect_errors(*, options: Options, identifiers: Iterable[str]) -> Generator[str, None, None]:
|
||||||
warnings = []
|
# Check for deprecated CIBW_FREE_THREADED_SUPPORT environment variable
|
||||||
|
if "CIBW_FREE_THREADED_SUPPORT" in os.environ:
|
||||||
python_version_deprecation = ((3, 11), 3)
|
yield (
|
||||||
if sys.version_info[:2] < python_version_deprecation[0]:
|
"CIBW_FREE_THREADED_SUPPORT environment variable is no longer supported. "
|
||||||
python_version = ".".join(map(str, python_version_deprecation[0]))
|
'Use tool.cibuildwheel.enable = ["cpython-freethreading"] in pyproject.toml '
|
||||||
msg = (
|
"or set CIBW_ENABLE=cpython-freethreading instead."
|
||||||
f"cibuildwheel {python_version_deprecation[1]} will require Python {python_version}+, "
|
|
||||||
"please upgrade the Python version used to run cibuildwheel. "
|
|
||||||
"This does not affect the versions you can target when building wheels. See: https://cibuildwheel.pypa.io/en/stable/#what-does-it-do"
|
|
||||||
)
|
)
|
||||||
warnings.append(msg)
|
|
||||||
|
|
||||||
# warn about deprecated {python} and {pip}
|
# Deprecated {python} and {pip}
|
||||||
for option_name in ["test_command", "before_build"]:
|
for option_name in ["test_command", "before_build"]:
|
||||||
option_values = [getattr(options.build_options(i), option_name) for i in identifiers]
|
option_values = [getattr(options.build_options(i), option_name) for i in identifiers]
|
||||||
|
|
||||||
if any(o and ("{python}" in o or "{pip}" in o) for o in option_values):
|
if any(o and ("{python}" in o or "{pip}" in o) for o in option_values):
|
||||||
# Reminder: in an f-string, double braces means literal single brace
|
# Reminder: in an f-string, double braces means literal single brace
|
||||||
msg = (
|
yield (
|
||||||
f"{option_name}: '{{python}}' and '{{pip}}' are no longer supported "
|
f"{option_name}: '{{python}}' and '{{pip}}' are no longer supported "
|
||||||
"and have been removed in cibuildwheel 3. Simply use 'python' or 'pip' instead."
|
"and have been removed in cibuildwheel 3. Simply use 'python' or 'pip' instead."
|
||||||
)
|
)
|
||||||
raise errors.ConfigurationError(msg)
|
|
||||||
|
|
||||||
|
def detect_warnings(*, options: Options) -> Generator[str, None, None]:
|
||||||
|
python_version_deprecation = ((3, 11), 3)
|
||||||
|
if sys.version_info[:2] < python_version_deprecation[0]:
|
||||||
|
python_version = ".".join(map(str, python_version_deprecation[0]))
|
||||||
|
yield (
|
||||||
|
f"cibuildwheel {python_version_deprecation[1]} will require Python {python_version}+, "
|
||||||
|
"please upgrade the Python version used to run cibuildwheel. "
|
||||||
|
"This does not affect the versions you can target when building wheels. See: https://cibuildwheel.pypa.io/en/stable/#what-does-it-do"
|
||||||
|
)
|
||||||
|
|
||||||
build_selector = options.globals.build_selector
|
build_selector = options.globals.build_selector
|
||||||
test_selector = options.globals.test_selector
|
test_selector = options.globals.test_selector
|
||||||
|
|
||||||
|
if EnableGroup.CPythonExperimentalRiscV64 in build_selector.enable:
|
||||||
|
yield (
|
||||||
|
"'cpython-experimental-riscv64' enable is deprecated and will be removed in a future version. "
|
||||||
|
"It should be removed from tool.cibuildwheel.enable in pyproject.toml "
|
||||||
|
"or CIBW_ENABLE environment variable."
|
||||||
|
)
|
||||||
|
|
||||||
all_valid_identifiers = [
|
all_valid_identifiers = [
|
||||||
config.identifier
|
config.identifier
|
||||||
for module in ALL_PLATFORM_MODULES.values()
|
for module in ALL_PLATFORM_MODULES.values()
|
||||||
@@ -417,27 +437,25 @@ def detect_warnings(*, options: Options, identifiers: Iterable[str]) -> list[str
|
|||||||
identifier for identifier in all_valid_identifiers if enabled_selector(identifier)
|
identifier for identifier in all_valid_identifiers if enabled_selector(identifier)
|
||||||
]
|
]
|
||||||
|
|
||||||
warnings += check_for_invalid_selectors(
|
yield from check_for_invalid_selectors(
|
||||||
selector_name="build",
|
selector_name="build",
|
||||||
selector_value=build_selector.build_config,
|
selector_value=build_selector.build_config,
|
||||||
all_valid_identifiers=all_valid_identifiers,
|
all_valid_identifiers=all_valid_identifiers,
|
||||||
all_enabled_identifiers=all_enabled_identifiers,
|
all_enabled_identifiers=all_enabled_identifiers,
|
||||||
)
|
)
|
||||||
warnings += check_for_invalid_selectors(
|
yield from check_for_invalid_selectors(
|
||||||
selector_name="skip",
|
selector_name="skip",
|
||||||
selector_value=build_selector.skip_config,
|
selector_value=build_selector.skip_config,
|
||||||
all_valid_identifiers=all_valid_identifiers,
|
all_valid_identifiers=all_valid_identifiers,
|
||||||
all_enabled_identifiers=all_enabled_identifiers,
|
all_enabled_identifiers=all_enabled_identifiers,
|
||||||
)
|
)
|
||||||
warnings += check_for_invalid_selectors(
|
yield from check_for_invalid_selectors(
|
||||||
selector_name="test_skip",
|
selector_name="test_skip",
|
||||||
selector_value=test_selector.skip_config,
|
selector_value=test_selector.skip_config,
|
||||||
all_valid_identifiers=all_valid_identifiers,
|
all_valid_identifiers=all_valid_identifiers,
|
||||||
all_enabled_identifiers=all_enabled_identifiers,
|
all_enabled_identifiers=all_enabled_identifiers,
|
||||||
)
|
)
|
||||||
|
|
||||||
return warnings
|
|
||||||
|
|
||||||
|
|
||||||
def check_for_invalid_selectors(
|
def check_for_invalid_selectors(
|
||||||
*,
|
*,
|
||||||
@@ -449,17 +467,31 @@ def check_for_invalid_selectors(
|
|||||||
warnings = []
|
warnings = []
|
||||||
|
|
||||||
for selector in selector_value.split():
|
for selector in selector_value.split():
|
||||||
if not any(selector_matches(selector, i) for i in all_enabled_identifiers):
|
selector_ = selector
|
||||||
|
if selector_name == "test_skip":
|
||||||
|
# macosx_universal2 uses an additional identifier for tests which ends with ":{arch}"
|
||||||
|
values = selector.split(":")
|
||||||
|
universal2_identifiers = filter(
|
||||||
|
lambda x: x.endswith("-macosx_universal2"), all_valid_identifiers
|
||||||
|
)
|
||||||
|
if len(values) == 2 and any(
|
||||||
|
selector_matches(selector_, f"{i}:{arch}")
|
||||||
|
for i in universal2_identifiers
|
||||||
|
for arch in ["arm64", "x86_64"]
|
||||||
|
):
|
||||||
|
# just ignore the arch part in the rest of the check
|
||||||
|
selector_ = values[0]
|
||||||
|
if not any(selector_matches(selector_, i) for i in all_enabled_identifiers):
|
||||||
msg = f"Invalid {selector_name} selector: {selector!r}. "
|
msg = f"Invalid {selector_name} selector: {selector!r}. "
|
||||||
error_type: type = errors.ConfigurationError
|
error_type: type = errors.ConfigurationError
|
||||||
|
|
||||||
if any(selector_matches(selector, i) for i in all_valid_identifiers):
|
if any(selector_matches(selector_, i) for i in all_valid_identifiers):
|
||||||
msg += "This selector matches a group that wasn't enabled. Enable it using the `enable` option or remove this selector. "
|
msg += "This selector matches a group that wasn't enabled. Enable it using the `enable` option or remove this selector. "
|
||||||
|
|
||||||
if "p2" in selector or "p35" in selector:
|
if "p2" in selector_ or "p35" in selector_:
|
||||||
msg += f"cibuildwheel 3.x no longer supports Python < 3.8. Please use the 1.x series or update `{selector_name}`. "
|
msg += f"cibuildwheel 3.x no longer supports Python < 3.8. Please use the 1.x series or update `{selector_name}`. "
|
||||||
error_type = errors.DeprecationError
|
error_type = errors.DeprecationError
|
||||||
if "p36" in selector or "p37" in selector:
|
if "p36" in selector_ or "p37" in selector_:
|
||||||
msg += f"cibuildwheel 3.x no longer supports Python < 3.8. Please use the 2.x series or update `{selector_name}`. "
|
msg += f"cibuildwheel 3.x no longer supports Python < 3.8. Please use the 2.x series or update `{selector_name}`. "
|
||||||
error_type = errors.DeprecationError
|
error_type = errors.DeprecationError
|
||||||
|
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ class Logger:
|
|||||||
github_summary = self._github_step_summary(duration=duration, options=options)
|
github_summary = self._github_step_summary(duration=duration, options=options)
|
||||||
Path(summary_path).write_text(filter_ansi_codes(github_summary), encoding="utf-8")
|
Path(summary_path).write_text(filter_ansi_codes(github_summary), encoding="utf-8")
|
||||||
|
|
||||||
n_wheels = len([info for info in self.summary if not info.filename])
|
n_wheels = len([info for info in self.summary if info.filename])
|
||||||
s = "s" if n_wheels > 1 else ""
|
s = "s" if n_wheels > 1 else ""
|
||||||
duration_str = humanize.naturaldelta(duration)
|
duration_str = humanize.naturaldelta(duration)
|
||||||
print()
|
print()
|
||||||
|
|||||||
@@ -665,7 +665,7 @@ class Options:
|
|||||||
build_config = args.only
|
build_config = args.only
|
||||||
skip_config = ""
|
skip_config = ""
|
||||||
architectures = Architecture.all_archs(self.platform)
|
architectures = Architecture.all_archs(self.platform)
|
||||||
enable = set(EnableGroup)
|
enable |= EnableGroup.all_groups()
|
||||||
|
|
||||||
build_selector = BuildSelector(
|
build_selector = BuildSelector(
|
||||||
build_config=build_config,
|
build_config=build_config,
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import re
|
|||||||
import shlex
|
import shlex
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
from collections.abc import Iterable, Iterator
|
from collections.abc import Iterable, Iterator
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from os.path import relpath
|
from os.path import relpath
|
||||||
@@ -21,7 +22,7 @@ from elftools.common.exceptions import ELFError
|
|||||||
from elftools.elf.elffile import ELFFile
|
from elftools.elf.elffile import ELFFile
|
||||||
from filelock import FileLock
|
from filelock import FileLock
|
||||||
|
|
||||||
from .. import errors, platforms
|
from .. import errors, platforms # pylint: disable=cyclic-import
|
||||||
from ..architecture import Architecture, arch_synonym
|
from ..architecture import Architecture, arch_synonym
|
||||||
from ..frontend import get_build_frontend_extra_flags, parse_config_settings
|
from ..frontend import get_build_frontend_extra_flags, parse_config_settings
|
||||||
from ..logger import log
|
from ..logger import log
|
||||||
@@ -517,7 +518,7 @@ def repair_default(
|
|||||||
f"${{ORIGIN}}/{relpath(libs_dir, path.parent)}",
|
f"${{ORIGIN}}/{relpath(libs_dir, path.parent)}",
|
||||||
path,
|
path,
|
||||||
)
|
)
|
||||||
call("wheel", "pack", unpacked_dir, "-d", repaired_wheel_dir)
|
call(sys.executable, "-m", "wheel", "pack", unpacked_dir, "-d", repaired_wheel_dir)
|
||||||
|
|
||||||
|
|
||||||
def elf_file_filter(paths: Iterable[Path]) -> Iterator[tuple[Path, ELFFile]]:
|
def elf_file_filter(paths: Iterable[Path]) -> Iterator[tuple[Path, ELFFile]]:
|
||||||
|
|||||||
@@ -232,10 +232,10 @@ python_configurations = [
|
|||||||
|
|
||||||
[ios]
|
[ios]
|
||||||
python_configurations = [
|
python_configurations = [
|
||||||
{ identifier = "cp313-ios_arm64_iphoneos", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b9/Python-3.13-iOS-support.b9.tar.gz" },
|
{ identifier = "cp313-ios_arm64_iphoneos", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b10/Python-3.13-iOS-support.b10.tar.gz" },
|
||||||
{ identifier = "cp313-ios_x86_64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b9/Python-3.13-iOS-support.b9.tar.gz" },
|
{ identifier = "cp313-ios_x86_64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b10/Python-3.13-iOS-support.b10.tar.gz" },
|
||||||
{ identifier = "cp313-ios_arm64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b9/Python-3.13-iOS-support.b9.tar.gz" },
|
{ identifier = "cp313-ios_arm64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b10/Python-3.13-iOS-support.b10.tar.gz" },
|
||||||
{ identifier = "cp314-ios_arm64_iphoneos", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b5/Python-3.14-iOS-support.b5.tar.gz" },
|
{ identifier = "cp314-ios_arm64_iphoneos", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b6/Python-3.14-iOS-support.b6.tar.gz" },
|
||||||
{ identifier = "cp314-ios_x86_64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b5/Python-3.14-iOS-support.b5.tar.gz" },
|
{ identifier = "cp314-ios_x86_64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b6/Python-3.14-iOS-support.b6.tar.gz" },
|
||||||
{ identifier = "cp314-ios_arm64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b5/Python-3.14-iOS-support.b5.tar.gz" },
|
{ identifier = "cp314-ios_arm64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b6/Python-3.14-iOS-support.b6.tar.gz" },
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ requests==2.32.4
|
|||||||
# via pyodide-build
|
# via pyodide-build
|
||||||
resolvelib==1.2.0
|
resolvelib==1.2.0
|
||||||
# via pyodide-build
|
# via pyodide-build
|
||||||
rich==14.0.0
|
rich==14.1.0
|
||||||
# via
|
# via
|
||||||
# pyodide-build
|
# pyodide-build
|
||||||
# pyodide-cli
|
# pyodide-cli
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ requests==2.32.4
|
|||||||
# via pyodide-build
|
# via pyodide-build
|
||||||
resolvelib==1.2.0
|
resolvelib==1.2.0
|
||||||
# via pyodide-build
|
# via pyodide-build
|
||||||
rich==14.0.0
|
rich==14.1.0
|
||||||
# via
|
# via
|
||||||
# pyodide-build
|
# pyodide-build
|
||||||
# pyodide-cli
|
# pyodide-cli
|
||||||
|
|||||||
@@ -1,53 +1,53 @@
|
|||||||
[x86_64]
|
[x86_64]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.07.23-1
|
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.07.27-1
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.07.23-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.07.27-1
|
||||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.07.23-1
|
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.07.27-1
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2025.07.23-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2025.07.27-1
|
||||||
|
|
||||||
[i686]
|
[i686]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.07.23-1
|
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.07.27-1
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_i686:2025.07.23-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_i686:2025.07.27-1
|
||||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_i686:2025.07.23-1
|
manylinux_2_34 = quay.io/pypa/manylinux_2_34_i686:2025.07.27-1
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2025.07.23-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2025.07.27-1
|
||||||
|
|
||||||
[aarch64]
|
[aarch64]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.07.23-1
|
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.07.27-1
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.07.23-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.07.27-1
|
||||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.07.23-1
|
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.07.27-1
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2025.07.23-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2025.07.27-1
|
||||||
|
|
||||||
[ppc64le]
|
[ppc64le]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2025.07.23-1
|
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2025.07.27-1
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2025.07.23-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2025.07.27-1
|
||||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_ppc64le:2025.07.23-1
|
manylinux_2_34 = quay.io/pypa/manylinux_2_34_ppc64le:2025.07.27-1
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2025.07.23-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2025.07.27-1
|
||||||
|
|
||||||
[s390x]
|
[s390x]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2025.07.23-1
|
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2025.07.27-1
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2025.07.23-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2025.07.27-1
|
||||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_s390x:2025.07.23-1
|
manylinux_2_34 = quay.io/pypa/manylinux_2_34_s390x:2025.07.27-1
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2025.07.23-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2025.07.27-1
|
||||||
|
|
||||||
[pypy_x86_64]
|
[pypy_x86_64]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.07.23-1
|
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.07.27-1
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.07.23-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.07.27-1
|
||||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.07.23-1
|
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.07.27-1
|
||||||
|
|
||||||
[pypy_i686]
|
[pypy_i686]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.07.23-1
|
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.07.27-1
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_i686:2025.07.23-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_i686:2025.07.27-1
|
||||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_i686:2025.07.23-1
|
manylinux_2_34 = quay.io/pypa/manylinux_2_34_i686:2025.07.27-1
|
||||||
|
|
||||||
[pypy_aarch64]
|
[pypy_aarch64]
|
||||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.07.23-1
|
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.07.27-1
|
||||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.07.23-1
|
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.07.27-1
|
||||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.07.23-1
|
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.07.27-1
|
||||||
|
|
||||||
[armv7l]
|
[armv7l]
|
||||||
manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.07.23-1
|
manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.07.27-1
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.07.23-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.07.27-1
|
||||||
|
|
||||||
[riscv64]
|
[riscv64]
|
||||||
manylinux_2_39 = quay.io/pypa/manylinux_2_39_riscv64:2025.07.23-1
|
manylinux_2_39 = quay.io/pypa/manylinux_2_39_riscv64:2025.07.27-1
|
||||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_riscv64:2025.07.23-1
|
musllinux_1_2 = quay.io/pypa/musllinux_1_2_riscv64:2025.07.27-1
|
||||||
|
|
||||||
|
|||||||
@@ -1,455 +1,455 @@
|
|||||||
{
|
{
|
||||||
"releases": [
|
"releases": [
|
||||||
{
|
{
|
||||||
"tag": "20250712",
|
"tag": "20250723",
|
||||||
"assets": [
|
"assets": [
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-aarch64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-aarch64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-aarch64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-aarch64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-i686-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-i686-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-i686-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-i686-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-s390x-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-s390x-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-s390x-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-s390x-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-x86_64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-x86_64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-x86_64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-x86_64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-x86_64-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-x86_64-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-x86_64-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-x86_64-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-x86_64-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-x86_64-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-x86_64-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-x86_64-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.10.18+20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.10.18+20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.10.18%2B20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.10.18%2B20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-aarch64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-aarch64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-aarch64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-aarch64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-aarch64-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-aarch64-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-aarch64-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-aarch64-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-i686-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-i686-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-i686-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-i686-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-s390x-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-s390x-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-s390x-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-s390x-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-x86_64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-x86_64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-x86_64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-x86_64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-x86_64-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-x86_64-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-x86_64-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-x86_64-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-x86_64-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-x86_64-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-x86_64-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-x86_64-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.11.13+20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.11.13+20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.11.13%2B20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.11.13%2B20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-aarch64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-aarch64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-aarch64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-aarch64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-aarch64-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-aarch64-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-aarch64-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-aarch64-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-i686-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-i686-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-i686-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-i686-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-s390x-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-s390x-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-s390x-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-s390x-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-x86_64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-x86_64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-x86_64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-x86_64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-x86_64-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-x86_64-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-x86_64-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-x86_64-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-x86_64-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-x86_64-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-x86_64-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-x86_64-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.12.11+20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.12.11+20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.12.11%2B20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.12.11%2B20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-aarch64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-aarch64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-aarch64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-aarch64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-aarch64-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-aarch64-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-aarch64-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-aarch64-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-i686-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-i686-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-i686-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-i686-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-s390x-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-s390x-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-s390x-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-s390x-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-x86_64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-x86_64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-x86_64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-x86_64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-x86_64-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-x86_64-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-x86_64-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-x86_64-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-x86_64-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-x86_64-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-x86_64-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-x86_64-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.13.5+20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.13.5+20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.13.5%2B20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.13.5%2B20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-aarch64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-aarch64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-aarch64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-aarch64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-aarch64-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-aarch64-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-aarch64-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-aarch64-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-i686-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-i686-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-i686-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-i686-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-s390x-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-s390x-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-s390x-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-s390x-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-x86_64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-x86_64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-x86_64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-x86_64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-x86_64-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-x86_64-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-x86_64-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-x86_64-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-x86_64-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-x86_64-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-x86_64-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-x86_64-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.14.0b4+20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.14.0rc1+20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.14.0b4%2B20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.14.0rc1%2B20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-aarch64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-aarch64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-aarch64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-aarch64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-aarch64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-aarch64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-armv7-unknown-linux-gnueabi-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-armv7-unknown-linux-gnueabihf-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-i686-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-i686-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-i686-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-i686-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-ppc64le-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-riscv64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-riscv64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-s390x-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-s390x-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-s390x-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-s390x-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-x86_64-apple-darwin-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-x86_64-apple-darwin-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-x86_64-apple-darwin-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-x86_64-apple-darwin-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-x86_64-pc-windows-msvc-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-x86_64-pc-windows-msvc-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-x86_64-pc-windows-msvc-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-x86_64-pc-windows-msvc-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-x86_64-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-x86_64-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-x86_64-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-x86_64-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-x86_64-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-x86_64-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-x86_64_v2-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-x86_64_v2-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-x86_64_v3-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-x86_64_v3-unknown-linux-musl-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-x86_64_v4-unknown-linux-gnu-install_only.tar.gz"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cpython-3.9.23+20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
"name": "cpython-3.9.23+20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz",
|
||||||
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250712/cpython-3.9.23%2B20250712-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
"url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250723/cpython-3.9.23%2B20250723-x86_64_v4-unknown-linux-musl-install_only.tar.gz"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ class EnableGroup(StrEnum):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def all_groups(cls) -> frozenset["EnableGroup"]:
|
def all_groups(cls) -> frozenset["EnableGroup"]:
|
||||||
return frozenset(cls)
|
return frozenset(set(cls) - {cls.CPythonExperimentalRiscV64})
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def parse_option_value(cls, value: str) -> frozenset["EnableGroup"]:
|
def parse_option_value(cls, value: str) -> frozenset["EnableGroup"]:
|
||||||
@@ -93,10 +93,6 @@ class BuildSelector:
|
|||||||
return False
|
return False
|
||||||
if EnableGroup.PyPyEoL not in self.enable and fnmatch(build_id, "pp3?-*"):
|
if EnableGroup.PyPyEoL not in self.enable and fnmatch(build_id, "pp3?-*"):
|
||||||
return False
|
return False
|
||||||
if EnableGroup.CPythonExperimentalRiscV64 not in self.enable and fnmatch(
|
|
||||||
build_id, "*_riscv64"
|
|
||||||
):
|
|
||||||
return False
|
|
||||||
if EnableGroup.GraalPy not in self.enable and fnmatch(build_id, "gp*"):
|
if EnableGroup.GraalPy not in self.enable and fnmatch(build_id, "gp*"):
|
||||||
return False
|
return False
|
||||||
# TODO: Re-enable this when we have Pyodide prereleases again (e.g., 0.29.0a1+)
|
# TODO: Re-enable this when we have Pyodide prereleases again (e.g., 0.29.0a1+)
|
||||||
|
|||||||
@@ -4,6 +4,20 @@ title: Changelog
|
|||||||
|
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
### v3.1.2
|
||||||
|
|
||||||
|
_29 July 2025_
|
||||||
|
|
||||||
|
- ⚠️ Add an error if `CIBW_FREE_THREADING_SUPPORT` is set; you are likely missing 3.13t wheels, please use the `enable`/`CIBW_ENABLE` (#2520)
|
||||||
|
- 🛠 `riscv64` now enabled if you target that architecture, it's now supported on PyPI (#2509)
|
||||||
|
- 🛠 Add warning when using `cpython-experimental-riscv64` (no longer needed) (#2526, #2528)
|
||||||
|
- 🛠 iOS versions bumped, fixing issues with 3.14 (now RC 1) (#2530)
|
||||||
|
- 🐛 Fix bug in Android running wheel from our GitHub Action (#2517)
|
||||||
|
- 🐛 Fix warning when using `test-skip` of `"*-macosx_universal2:arm64"` (#2522)
|
||||||
|
- 🐛 Fix incorrect number of wheels reported in logs, again (#2517)
|
||||||
|
- 📚 We welcome our Android platform maintainer (#2516)
|
||||||
|
|
||||||
|
|
||||||
### v3.1.1
|
### v3.1.1
|
||||||
|
|
||||||
_24 July 2025_
|
_24 July 2025_
|
||||||
|
|||||||
+3
-3
@@ -110,7 +110,7 @@ There are two suggested methods for keeping cibuildwheel up to date that instead
|
|||||||
If you use GitHub Actions for builds, you can use cibuildwheel as an action:
|
If you use GitHub Actions for builds, you can use cibuildwheel as an action:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: pypa/cibuildwheel@v3.1.1
|
uses: pypa/cibuildwheel@v3.1.2
|
||||||
```
|
```
|
||||||
|
|
||||||
This is a composite step that just runs cibuildwheel using pipx. You can set command-line options as `with:` parameters, and use `env:` as normal.
|
This is a composite step that just runs cibuildwheel using pipx. You can set command-line options as `with:` parameters, and use `env:` as normal.
|
||||||
@@ -132,7 +132,7 @@ The second option, and the only one that supports other CI systems, is using a `
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# requirements-cibw.txt
|
# requirements-cibw.txt
|
||||||
cibuildwheel==3.1.1
|
cibuildwheel==3.1.2
|
||||||
```
|
```
|
||||||
|
|
||||||
Then your install step would have `python -m pip install -r requirements-cibw.txt` in it. Your `.github/dependabot.yml` file could look like this:
|
Then your install step would have `python -m pip install -r requirements-cibw.txt` in it. Your `.github/dependabot.yml` file could look like this:
|
||||||
@@ -297,7 +297,7 @@ Solutions to this vary, but the simplest is to use pipx:
|
|||||||
# most runners have pipx preinstalled, but in case you don't
|
# most runners have pipx preinstalled, but in case you don't
|
||||||
python3 -m pip install pipx
|
python3 -m pip install pipx
|
||||||
|
|
||||||
pipx run cibuildwheel==3.1.1 --output-dir wheelhouse
|
pipx run cibuildwheel==3.1.2 --output-dir wheelhouse
|
||||||
pipx run twine upload wheelhouse/*.whl
|
pipx run twine upload wheelhouse/*.whl
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,6 @@ The list of supported and currently selected build identifiers can also be retri
|
|||||||
The format is `python_tag-platform_tag`, with tags similar to those in [PEP 425](https://www.python.org/dev/peps/pep-0425/#details).
|
The format is `python_tag-platform_tag`, with tags similar to those in [PEP 425](https://www.python.org/dev/peps/pep-0425/#details).
|
||||||
|
|
||||||
Windows arm64 platform support is experimental.
|
Windows arm64 platform support is experimental.
|
||||||
Linux riscv64 platform support is experimental and requires an explicit opt-in through [`enable`](#enable).
|
|
||||||
|
|
||||||
See the [cibuildwheel 2 documentation](https://cibuildwheel.pypa.io/en/2.x/) for past end-of-life versions of Python.
|
See the [cibuildwheel 2 documentation](https://cibuildwheel.pypa.io/en/2.x/) for past end-of-life versions of Python.
|
||||||
|
|
||||||
@@ -201,8 +200,6 @@ Options:
|
|||||||
to use [`build`](#build-skip) with this option to target specific
|
to use [`build`](#build-skip) with this option to target specific
|
||||||
architectures via build selectors.
|
architectures via build selectors.
|
||||||
|
|
||||||
Linux riscv64 platform support is experimental and requires an explicit opt-in through [`enable`](#enable).
|
|
||||||
|
|
||||||
Default: `auto`
|
Default: `auto`
|
||||||
|
|
||||||
| Runner | `native` | `auto` | `auto64` | `auto32` |
|
| Runner | `native` | `auto` | `auto64` | `auto32` |
|
||||||
@@ -356,9 +353,6 @@ values are:
|
|||||||
free-threaded builds are no longer experimental, so this enable is not needed.
|
free-threaded builds are no longer experimental, so this enable is not needed.
|
||||||
- `pypy`: Enable PyPy.
|
- `pypy`: Enable PyPy.
|
||||||
- `pypy-eol`: Enable PyPy versions that have passed end of life (if still available).
|
- `pypy-eol`: Enable PyPy versions that have passed end of life (if still available).
|
||||||
- `cpython-experimental-riscv64`: Enable experimental riscv64 builds. Those builds
|
|
||||||
are disabled by default as they can't be uploaded to PyPI and a PEP will most likely
|
|
||||||
be required before this can happen.
|
|
||||||
- `graalpy`: Enable GraalPy.
|
- `graalpy`: Enable GraalPy.
|
||||||
- `pyodide-prerelease`: Pyodide versions that haven't released yet, if one is
|
- `pyodide-prerelease`: Pyodide versions that haven't released yet, if one is
|
||||||
available. Safe if you are shipping a site with an early build, not for
|
available. Safe if you are shipping a site with an early build, not for
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ cibuildwheel
|
|||||||
!!!tip
|
!!!tip
|
||||||
You can pass the `--platform linux` option to cibuildwheel to build Linux wheels, even if you're not on Linux. On most machines, the easiest builds to try are the Linux builds. You don't need any software installed except a Docker daemon, such as [Docker Desktop](https://www.docker.com/get-started/). Each platform that cibuildwheel supports has its own system requirements and platform-specific behaviors. See the [platforms page](platforms.md) for details.
|
You can pass the `--platform linux` option to cibuildwheel to build Linux wheels, even if you're not on Linux. On most machines, the easiest builds to try are the Linux builds. You don't need any software installed except a Docker daemon, such as [Docker Desktop](https://www.docker.com/get-started/). Each platform that cibuildwheel supports has its own system requirements and platform-specific behaviors. See the [platforms page](platforms.md) for details.
|
||||||
|
|
||||||
|
When building locally for macOS or iOS, regardless of the Python you use to invoke cibuildwheel, you'll need [official Python.org](https://www.python.org/downloads/) installations on your machine. `cibuildwheel` won't perform the build using unofficial Python installations such as from `brew` or `uv`.
|
||||||
|
|
||||||
You should see the builds taking place. You can experiment with [options](options.md) using pyproject.toml or environment variables.
|
You should see the builds taking place. You can experiment with [options](options.md) using pyproject.toml or environment variables.
|
||||||
|
|
||||||
!!! tab "pyproject.toml"
|
!!! tab "pyproject.toml"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ jobs:
|
|||||||
- bash: |
|
- bash: |
|
||||||
set -o errexit
|
set -o errexit
|
||||||
python3 -m pip install --upgrade pip
|
python3 -m pip install --upgrade pip
|
||||||
pip3 install cibuildwheel==3.1.1
|
pip3 install cibuildwheel==3.1.2
|
||||||
displayName: Install dependencies
|
displayName: Install dependencies
|
||||||
- bash: cibuildwheel --output-dir wheelhouse .
|
- bash: cibuildwheel --output-dir wheelhouse .
|
||||||
displayName: Build wheels
|
displayName: Build wheels
|
||||||
@@ -20,7 +20,7 @@ jobs:
|
|||||||
- bash: |
|
- bash: |
|
||||||
set -o errexit
|
set -o errexit
|
||||||
python3 -m pip install --upgrade pip
|
python3 -m pip install --upgrade pip
|
||||||
python3 -m pip install cibuildwheel==3.1.1
|
python3 -m pip install cibuildwheel==3.1.2
|
||||||
displayName: Install dependencies
|
displayName: Install dependencies
|
||||||
- bash: cibuildwheel --output-dir wheelhouse .
|
- bash: cibuildwheel --output-dir wheelhouse .
|
||||||
displayName: Build wheels
|
displayName: Build wheels
|
||||||
@@ -34,7 +34,7 @@ jobs:
|
|||||||
- bash: |
|
- bash: |
|
||||||
set -o errexit
|
set -o errexit
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
pip install cibuildwheel==3.1.1
|
pip install cibuildwheel==3.1.2
|
||||||
displayName: Install dependencies
|
displayName: Install dependencies
|
||||||
- bash: cibuildwheel --output-dir wheelhouse .
|
- bash: cibuildwheel --output-dir wheelhouse .
|
||||||
displayName: Build wheels
|
displayName: Build wheels
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ jobs:
|
|||||||
- run:
|
- run:
|
||||||
name: Build the Linux wheels.
|
name: Build the Linux wheels.
|
||||||
command: |
|
command: |
|
||||||
python3 -m pip install --user cibuildwheel==3.1.1
|
python3 -m pip install --user cibuildwheel==3.1.2
|
||||||
cibuildwheel --output-dir wheelhouse
|
cibuildwheel --output-dir wheelhouse
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: wheelhouse/
|
path: wheelhouse/
|
||||||
@@ -28,7 +28,7 @@ jobs:
|
|||||||
- run:
|
- run:
|
||||||
name: Build the Linux aarch64 wheels.
|
name: Build the Linux aarch64 wheels.
|
||||||
command: |
|
command: |
|
||||||
python3 -m pip install --user cibuildwheel==3.1.1
|
python3 -m pip install --user cibuildwheel==3.1.2
|
||||||
python3 -m cibuildwheel --output-dir wheelhouse
|
python3 -m cibuildwheel --output-dir wheelhouse
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: wheelhouse/
|
path: wheelhouse/
|
||||||
@@ -44,7 +44,7 @@ jobs:
|
|||||||
name: Build the OS X wheels.
|
name: Build the OS X wheels.
|
||||||
command: |
|
command: |
|
||||||
sudo softwareupdate --install-rosetta --agree-to-license # for python<=3.8 or x86_64/universal2 tests
|
sudo softwareupdate --install-rosetta --agree-to-license # for python<=3.8 or x86_64/universal2 tests
|
||||||
pip3 install cibuildwheel==3.1.1
|
pip3 install cibuildwheel==3.1.2
|
||||||
cibuildwheel --output-dir wheelhouse
|
cibuildwheel --output-dir wheelhouse
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: wheelhouse/
|
path: wheelhouse/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
||||||
install_cibuildwheel_script:
|
install_cibuildwheel_script:
|
||||||
- python -m pip install cibuildwheel==3.1.1
|
- python -m pip install cibuildwheel==3.1.2
|
||||||
run_cibuildwheel_script:
|
run_cibuildwheel_script:
|
||||||
- cibuildwheel
|
- cibuildwheel
|
||||||
wheels_artifacts:
|
wheels_artifacts:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
build_and_store_wheels: &BUILD_AND_STORE_WHEELS
|
||||||
install_cibuildwheel_script:
|
install_cibuildwheel_script:
|
||||||
- python -m pip install cibuildwheel==3.1.1
|
- python -m pip install cibuildwheel==3.1.2
|
||||||
run_cibuildwheel_script:
|
run_cibuildwheel_script:
|
||||||
- cibuildwheel
|
- cibuildwheel
|
||||||
wheels_artifacts:
|
wheels_artifacts:
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ jobs:
|
|||||||
sudo udevadm trigger --name-match=kvm
|
sudo udevadm trigger --name-match=kvm
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
uses: pypa/cibuildwheel@v3.1.1
|
uses: pypa/cibuildwheel@v3.1.2
|
||||||
env:
|
env:
|
||||||
CIBW_PLATFORM: ${{ matrix.platform || 'auto' }}
|
CIBW_PLATFORM: ${{ matrix.platform || 'auto' }}
|
||||||
# Can also be configured directly, using `with:`
|
# Can also be configured directly, using `with:`
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
uses: pypa/cibuildwheel@v3.1.1
|
uses: pypa/cibuildwheel@v3.1.2
|
||||||
# env:
|
# env:
|
||||||
# CIBW_SOME_OPTION: value
|
# CIBW_SOME_OPTION: value
|
||||||
# ...
|
# ...
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
run: pipx run cibuildwheel==3.1.1
|
run: pipx run cibuildwheel==3.1.2
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ jobs:
|
|||||||
platforms: all
|
platforms: all
|
||||||
|
|
||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
uses: pypa/cibuildwheel@v3.1.1
|
uses: pypa/cibuildwheel@v3.1.2
|
||||||
env:
|
env:
|
||||||
# configure cibuildwheel on Linux to build native archs ('auto'),
|
# configure cibuildwheel on Linux to build native archs ('auto'),
|
||||||
# and to split the remaining architectures between the x86_64 and
|
# and to split the remaining architectures between the x86_64 and
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ linux:
|
|||||||
DOCKER_TLS_CERTDIR: ""
|
DOCKER_TLS_CERTDIR: ""
|
||||||
script:
|
script:
|
||||||
- curl -sSL https://get.docker.com/ | sh
|
- curl -sSL https://get.docker.com/ | sh
|
||||||
- python -m pip install cibuildwheel==3.1.1
|
- python -m pip install cibuildwheel==3.1.2
|
||||||
- cibuildwheel --output-dir wheelhouse
|
- cibuildwheel --output-dir wheelhouse
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
@@ -23,7 +23,7 @@ windows:
|
|||||||
before_script:
|
before_script:
|
||||||
- choco install python -y --allow-downgrade --version 3.12.4
|
- choco install python -y --allow-downgrade --version 3.12.4
|
||||||
- choco install git.install -y
|
- choco install git.install -y
|
||||||
- py -m pip install cibuildwheel==3.1.1
|
- py -m pip install cibuildwheel==3.1.2
|
||||||
script:
|
script:
|
||||||
- py -m cibuildwheel --output-dir wheelhouse --platform windows
|
- py -m cibuildwheel --output-dir wheelhouse --platform windows
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -35,7 +35,7 @@ windows:
|
|||||||
macos:
|
macos:
|
||||||
image: macos-14-xcode-15
|
image: macos-14-xcode-15
|
||||||
before_script:
|
before_script:
|
||||||
- python3 -m pip install cibuildwheel==3.1.1
|
- python3 -m pip install cibuildwheel==3.1.2
|
||||||
script:
|
script:
|
||||||
- python3 -m cibuildwheel --output-dir wheelhouse
|
- python3 -m cibuildwheel --output-dir wheelhouse
|
||||||
artifacts:
|
artifacts:
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ linux:
|
|||||||
- curl -sSL https://get.docker.com/ | sh
|
- curl -sSL https://get.docker.com/ | sh
|
||||||
# Warning: This is extremely slow, be careful with how many wheels you build
|
# Warning: This is extremely slow, be careful with how many wheels you build
|
||||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||||
- python -m pip install cibuildwheel==3.1.1
|
- python -m pip install cibuildwheel==3.1.2
|
||||||
# Assuming your CI runner's default architecture is x86_64...
|
# Assuming your CI runner's default architecture is x86_64...
|
||||||
- cibuildwheel --output-dir wheelhouse --platform linux --archs aarch64
|
- cibuildwheel --output-dir wheelhouse --platform linux --archs aarch64
|
||||||
artifacts:
|
artifacts:
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ jobs:
|
|||||||
- ln -s /c/Python312/python.exe /c/Python312/python3.exe
|
- ln -s /c/Python312/python.exe /c/Python312/python3.exe
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- python3 -m pip install cibuildwheel==3.1.1
|
- python3 -m pip install cibuildwheel==3.1.2
|
||||||
|
|
||||||
script:
|
script:
|
||||||
# build the wheels, put them into './dist'
|
# build the wheels, put them into './dist'
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ jobs:
|
|||||||
- ln -s /c/Python312/python.exe /c/Python312/python3.exe
|
- ln -s /c/Python312/python.exe /c/Python312/python3.exe
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- python3 -m pip install cibuildwheel==3.1.1
|
- python3 -m pip install cibuildwheel==3.1.2
|
||||||
|
|
||||||
script:
|
script:
|
||||||
# build the wheels, put them into './wheelhouse'
|
# build the wheels, put them into './wheelhouse'
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ jobs:
|
|||||||
- stage: deploy
|
- stage: deploy
|
||||||
name: Build and deploy Linux wheels
|
name: Build and deploy Linux wheels
|
||||||
services: docker
|
services: docker
|
||||||
install: python3 -m pip install cibuildwheel==3.1.1 twine
|
install: python3 -m pip install cibuildwheel==3.1.2 twine
|
||||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||||
# Deploy on windows
|
# Deploy on windows
|
||||||
@@ -60,7 +60,7 @@ jobs:
|
|||||||
name: Build and deploy Windows wheels
|
name: Build and deploy Windows wheels
|
||||||
os: windows
|
os: windows
|
||||||
language: shell
|
language: shell
|
||||||
install: python3 -m pip install cibuildwheel==3.1.1 twine
|
install: python3 -m pip install cibuildwheel==3.1.2 twine
|
||||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||||
|
|
||||||
|
|||||||
+4
-1
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "cibuildwheel"
|
name = "cibuildwheel"
|
||||||
version = "3.1.1"
|
version = "3.1.2"
|
||||||
description = "Build Python wheels on CI with minimal configuration."
|
description = "Build Python wheels on CI with minimal configuration."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = "BSD-2-Clause"
|
license = "BSD-2-Clause"
|
||||||
@@ -109,6 +109,9 @@ filterwarnings = ["error"]
|
|||||||
log_cli_level = "INFO"
|
log_cli_level = "INFO"
|
||||||
markers = [
|
markers = [
|
||||||
"serial: tests that must *not* be run in parallel (deselect with '-m \"not serial\"')",
|
"serial: tests that must *not* be run in parallel (deselect with '-m \"not serial\"')",
|
||||||
|
"ios: tests that run on iOS",
|
||||||
|
"android: tests that run on Android",
|
||||||
|
"pyodide: tests that run on Pyodide",
|
||||||
]
|
]
|
||||||
|
|
||||||
[tool.mypy]
|
[tool.mypy]
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ import pytest
|
|||||||
from .test_projects import new_c_project
|
from .test_projects import new_c_project
|
||||||
from .utils import cibuildwheel_run, expected_wheels
|
from .utils import cibuildwheel_run, expected_wheels
|
||||||
|
|
||||||
|
pytestmark = pytest.mark.android
|
||||||
|
|
||||||
|
|
||||||
CIBW_PLATFORM = os.environ.get("CIBW_PLATFORM", "android")
|
CIBW_PLATFORM = os.environ.get("CIBW_PLATFORM", "android")
|
||||||
if CIBW_PLATFORM != "android":
|
if CIBW_PLATFORM != "android":
|
||||||
pytest.skip(f"{CIBW_PLATFORM=}", allow_module_level=True)
|
pytest.skip(f"{CIBW_PLATFORM=}", allow_module_level=True)
|
||||||
@@ -28,12 +31,10 @@ if (platform.system(), platform.machine()) not in [
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Detect CI services which have the Android SDK pre-installed.
|
# Detect CI services which have the Android SDK pre-installed.
|
||||||
ci_supports_build = any(
|
ci_supports_build = (
|
||||||
key in os.environ
|
("CIRRUS_CI" in os.environ and platform.system() == "Darwin")
|
||||||
for key in [
|
or "GITHUB_ACTIONS" in os.environ
|
||||||
"GITHUB_ACTIONS",
|
or "TF_BUILD" in os.environ # Azure Pipelines
|
||||||
"TF_BUILD", # Azure Pipelines
|
|
||||||
]
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if "ANDROID_HOME" not in os.environ:
|
if "ANDROID_HOME" not in os.environ:
|
||||||
|
|||||||
+12
-3
@@ -12,6 +12,12 @@ from cibuildwheel.ci import CIProvider, detect_ci_provider
|
|||||||
|
|
||||||
from . import test_projects, utils
|
from . import test_projects, utils
|
||||||
|
|
||||||
|
pytestmark = pytest.mark.ios
|
||||||
|
|
||||||
|
CIBW_PLATFORM = os.environ.get("CIBW_PLATFORM", "ios")
|
||||||
|
if CIBW_PLATFORM != "ios":
|
||||||
|
pytest.skip(f"{CIBW_PLATFORM=}", allow_module_level=True)
|
||||||
|
|
||||||
basic_project_files = {
|
basic_project_files = {
|
||||||
"tests/test_platform.py": f"""
|
"tests/test_platform.py": f"""
|
||||||
import platform
|
import platform
|
||||||
@@ -230,6 +236,7 @@ def test_no_xbuild_tool_definition(tmp_path, capfd):
|
|||||||
project_dir,
|
project_dir,
|
||||||
add_env={
|
add_env={
|
||||||
"CIBW_PLATFORM": "ios",
|
"CIBW_PLATFORM": "ios",
|
||||||
|
"CIBW_BUILD": "cp313-*",
|
||||||
"CIBW_TEST_SKIP": "*",
|
"CIBW_TEST_SKIP": "*",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -239,7 +246,7 @@ def test_no_xbuild_tool_definition(tmp_path, capfd):
|
|||||||
"spam",
|
"spam",
|
||||||
"0.1.0",
|
"0.1.0",
|
||||||
platform="ios",
|
platform="ios",
|
||||||
python_abi_tags=["cp313-cp313", "cp314-cp314"],
|
python_abi_tags=["cp313-cp313"],
|
||||||
)
|
)
|
||||||
assert set(actual_wheels) == set(expected_wheels)
|
assert set(actual_wheels) == set(expected_wheels)
|
||||||
|
|
||||||
@@ -263,13 +270,14 @@ def test_empty_xbuild_tool_definition(tmp_path, capfd):
|
|||||||
project_dir,
|
project_dir,
|
||||||
add_env={
|
add_env={
|
||||||
"CIBW_PLATFORM": "ios",
|
"CIBW_PLATFORM": "ios",
|
||||||
|
"CIBW_BUILD": "cp313-*",
|
||||||
"CIBW_TEST_SKIP": "*",
|
"CIBW_TEST_SKIP": "*",
|
||||||
"CIBW_XBUILD_TOOLS": "",
|
"CIBW_XBUILD_TOOLS": "",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
expected_wheels = utils.expected_wheels(
|
expected_wheels = utils.expected_wheels(
|
||||||
"spam", "0.1.0", platform="ios", python_abi_tags=["cp313-cp313", "cp314-cp314"]
|
"spam", "0.1.0", platform="ios", python_abi_tags=["cp313-cp313"]
|
||||||
)
|
)
|
||||||
assert set(actual_wheels) == set(expected_wheels)
|
assert set(actual_wheels) == set(expected_wheels)
|
||||||
|
|
||||||
@@ -299,6 +307,7 @@ def test_ios_test_command_without_python_dash_m(tmp_path, capfd):
|
|||||||
project_dir,
|
project_dir,
|
||||||
add_env={
|
add_env={
|
||||||
"CIBW_PLATFORM": "ios",
|
"CIBW_PLATFORM": "ios",
|
||||||
|
"CIBW_BUILD": "cp313-*",
|
||||||
"CIBW_TEST_COMMAND": "pytest ./tests",
|
"CIBW_TEST_COMMAND": "pytest ./tests",
|
||||||
"CIBW_TEST_SOURCES": "tests",
|
"CIBW_TEST_SOURCES": "tests",
|
||||||
"CIBW_TEST_REQUIRES": "pytest",
|
"CIBW_TEST_REQUIRES": "pytest",
|
||||||
@@ -307,7 +316,7 @@ def test_ios_test_command_without_python_dash_m(tmp_path, capfd):
|
|||||||
)
|
)
|
||||||
|
|
||||||
expected_wheels = utils.expected_wheels(
|
expected_wheels = utils.expected_wheels(
|
||||||
"spam", "0.1.0", platform="ios", python_abi_tags=["cp313-cp313", "cp314-cp314"]
|
"spam", "0.1.0", platform="ios", python_abi_tags=["cp313-cp313"]
|
||||||
)
|
)
|
||||||
assert set(actual_wheels) == set(expected_wheels)
|
assert set(actual_wheels) == set(expected_wheels)
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import contextlib
|
import contextlib
|
||||||
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import textwrap
|
import textwrap
|
||||||
@@ -9,6 +10,12 @@ from cibuildwheel.util.file import CIBW_CACHE_PATH
|
|||||||
|
|
||||||
from . import test_projects, utils
|
from . import test_projects, utils
|
||||||
|
|
||||||
|
pytestmark = pytest.mark.pyodide
|
||||||
|
|
||||||
|
CIBW_PLATFORM = os.environ.get("CIBW_PLATFORM", "pyodide")
|
||||||
|
if CIBW_PLATFORM != "pyodide":
|
||||||
|
pytest.skip(f"{CIBW_PLATFORM=}", allow_module_level=True)
|
||||||
|
|
||||||
basic_project = test_projects.new_c_project()
|
basic_project = test_projects.new_c_project()
|
||||||
basic_project.files["check_node.py"] = r"""
|
basic_project.files["check_node.py"] = r"""
|
||||||
import sys
|
import sys
|
||||||
|
|||||||
+1
-1
@@ -51,7 +51,7 @@ def get_platform() -> str:
|
|||||||
raise Exception(msg)
|
raise Exception(msg)
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_CIBW_ENABLE = "cpython-freethreading cpython-prerelease cpython-experimental-riscv64"
|
DEFAULT_CIBW_ENABLE = "cpython-freethreading cpython-prerelease"
|
||||||
|
|
||||||
|
|
||||||
def get_enable_groups() -> frozenset[EnableGroup]:
|
def get_enable_groups() -> frozenset[EnableGroup]:
|
||||||
|
|||||||
@@ -217,15 +217,6 @@ def test_build_free_threaded_python():
|
|||||||
assert build_selector("cp313t-manylinux_x86_64")
|
assert build_selector("cp313t-manylinux_x86_64")
|
||||||
|
|
||||||
|
|
||||||
def test_build_riscv64_enable():
|
|
||||||
build_selector = BuildSelector(build_config="*", skip_config="")
|
|
||||||
assert not build_selector("cp313-manylinux_riscv64")
|
|
||||||
build_selector = BuildSelector(
|
|
||||||
build_config="*", skip_config="", enable=frozenset([EnableGroup.CPythonExperimentalRiscV64])
|
|
||||||
)
|
|
||||||
assert build_selector("cp313-manylinux_riscv64")
|
|
||||||
|
|
||||||
|
|
||||||
def test_testing_selector():
|
def test_testing_selector():
|
||||||
# This is not a global import to keep pytest from collecting it as a test
|
# This is not a global import to keep pytest from collecting it as a test
|
||||||
test_selector = cibuildwheel.selector.TestSelector(skip_config="cp36-*")
|
test_selector = cibuildwheel.selector.TestSelector(skip_config="cp36-*")
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import os
|
||||||
import sys
|
import sys
|
||||||
import tomllib
|
import tomllib
|
||||||
from fnmatch import fnmatch
|
from fnmatch import fnmatch
|
||||||
@@ -16,6 +17,18 @@ from cibuildwheel.util.packaging import DependencyConstraints
|
|||||||
# CIBW_PLATFORM is tested in main_platform_test.py
|
# CIBW_PLATFORM is tested in main_platform_test.py
|
||||||
|
|
||||||
|
|
||||||
|
def test_old_free_threaded(monkeypatch, capsys):
|
||||||
|
monkeypatch.setenv("CIBW_FREE_THREADED_SUPPORT", "ON")
|
||||||
|
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
main()
|
||||||
|
|
||||||
|
assert (
|
||||||
|
"CIBW_FREE_THREADED_SUPPORT environment variable is no longer supported."
|
||||||
|
in capsys.readouterr().err
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("platform")
|
@pytest.mark.usefixtures("platform")
|
||||||
def test_output_dir(intercepted_build_args, monkeypatch):
|
def test_output_dir(intercepted_build_args, monkeypatch):
|
||||||
OUTPUT_DIR = Path("some_output_dir")
|
OUTPUT_DIR = Path("some_output_dir")
|
||||||
@@ -93,6 +106,32 @@ def test_invalid_skip_selector(monkeypatch, capsys, option_name, option_env_var)
|
|||||||
assert f"Invalid {option_name} selector" in err
|
assert f"Invalid {option_name} selector" in err
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"selector", ["*-macosx_universal2:arm64", "*-macosx_universal2:x86_64", "*-macosx_arm64"]
|
||||||
|
)
|
||||||
|
@pytest.mark.usefixtures("platform", "intercepted_build_args")
|
||||||
|
def test_valid_test_skip_selector(monkeypatch, capsys, selector):
|
||||||
|
monkeypatch.setenv("CIBW_TEST_SKIP", selector)
|
||||||
|
|
||||||
|
main()
|
||||||
|
|
||||||
|
_, err = capsys.readouterr()
|
||||||
|
print(err)
|
||||||
|
assert "Invalid test_skip selector" not in err
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("selector", ["*-macosx_universal2:invalid", "*-macosx_arm64:arm64"])
|
||||||
|
@pytest.mark.usefixtures("platform", "intercepted_build_args")
|
||||||
|
def test_invalid_test_skip_selector(monkeypatch, capsys, selector):
|
||||||
|
monkeypatch.setenv("CIBW_TEST_SKIP", selector)
|
||||||
|
|
||||||
|
main()
|
||||||
|
|
||||||
|
_, err = capsys.readouterr()
|
||||||
|
print(err)
|
||||||
|
assert "Invalid test_skip selector" in err
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("platform", "intercepted_build_args")
|
@pytest.mark.usefixtures("platform", "intercepted_build_args")
|
||||||
def test_empty_selector(monkeypatch):
|
def test_empty_selector(monkeypatch):
|
||||||
monkeypatch.setenv("CIBW_SKIP", "*")
|
monkeypatch.setenv("CIBW_SKIP", "*")
|
||||||
@@ -103,6 +142,70 @@ def test_empty_selector(monkeypatch):
|
|||||||
assert e.value.code == 3
|
assert e.value.code == 3
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("platform", "intercepted_build_args")
|
||||||
|
def test_riscv64_warning1(monkeypatch, capsys):
|
||||||
|
monkeypatch.setenv("CIBW_ENABLE", "cpython-experimental-riscv64")
|
||||||
|
|
||||||
|
main()
|
||||||
|
|
||||||
|
_, err = capsys.readouterr()
|
||||||
|
print(err)
|
||||||
|
assert "'cpython-experimental-riscv64' enable is deprecated" in err
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("platform", "intercepted_build_args")
|
||||||
|
def test_riscv64_warning2(monkeypatch, capsys, tmp_path):
|
||||||
|
local_path = tmp_path / "tmp_project"
|
||||||
|
os.mkdir(local_path) # noqa:PTH102 Path.mkdir has been monkeypatched already
|
||||||
|
local_path.joinpath("setup.py").touch()
|
||||||
|
|
||||||
|
monkeypatch.setattr(
|
||||||
|
sys, "argv", ["cibuildwheel", "--only", "cp313-manylinux_riscv64", str(local_path)]
|
||||||
|
)
|
||||||
|
monkeypatch.setenv("CIBW_ENABLE", "cpython-experimental-riscv64")
|
||||||
|
|
||||||
|
main()
|
||||||
|
|
||||||
|
_, err = capsys.readouterr()
|
||||||
|
print(err)
|
||||||
|
assert "'cpython-experimental-riscv64' enable is deprecated" in err
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("platform", "intercepted_build_args")
|
||||||
|
def test_riscv64_no_warning(monkeypatch, capsys, tmp_path):
|
||||||
|
local_path = tmp_path / "tmp_project"
|
||||||
|
os.mkdir(local_path) # noqa:PTH102 Path.mkdir has been monkeypatched already
|
||||||
|
local_path.joinpath("setup.py").touch()
|
||||||
|
|
||||||
|
monkeypatch.setattr(
|
||||||
|
sys, "argv", ["cibuildwheel", "--only", "cp313-manylinux_riscv64", str(local_path)]
|
||||||
|
)
|
||||||
|
|
||||||
|
main()
|
||||||
|
|
||||||
|
_, err = capsys.readouterr()
|
||||||
|
print(err)
|
||||||
|
assert "'cpython-experimental-riscv64' enable is deprecated" not in err
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("platform", "intercepted_build_args")
|
||||||
|
def test_riscv64_no_warning2(monkeypatch, capsys, tmp_path):
|
||||||
|
local_path = tmp_path / "tmp_project"
|
||||||
|
os.mkdir(local_path) # noqa:PTH102 Path.mkdir has been monkeypatched already
|
||||||
|
local_path.joinpath("setup.py").touch()
|
||||||
|
|
||||||
|
monkeypatch.setattr(
|
||||||
|
sys, "argv", ["cibuildwheel", "--only", "cp313-manylinux_riscv64", str(local_path)]
|
||||||
|
)
|
||||||
|
monkeypatch.setenv("CIBW_ENABLE", "all")
|
||||||
|
|
||||||
|
main()
|
||||||
|
|
||||||
|
_, err = capsys.readouterr()
|
||||||
|
print(err)
|
||||||
|
assert "'cpython-experimental-riscv64' enable is deprecated" not in err
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
("architecture", "image", "full_image"),
|
("architecture", "image", "full_image"),
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -15,9 +15,11 @@ def test_printout_wheels(capsys):
|
|||||||
log.colors_enabled = False
|
log.colors_enabled = False
|
||||||
|
|
||||||
with log.print_summary(options=OPTIONS_DEFAULTS):
|
with log.print_summary(options=OPTIONS_DEFAULTS):
|
||||||
|
# the number of BuildInfo with & without filename shall be different for this test
|
||||||
log.summary = [
|
log.summary = [
|
||||||
BuildInfo(identifier="id1", filename=None, duration=3),
|
BuildInfo(identifier="id1", filename=None, duration=3),
|
||||||
BuildInfo(identifier="id2", filename=FILE, duration=2),
|
BuildInfo(identifier="id2", filename=FILE, duration=2),
|
||||||
|
BuildInfo(identifier="id3", filename=FILE, duration=3),
|
||||||
]
|
]
|
||||||
|
|
||||||
captured = capsys.readouterr()
|
captured = capsys.readouterr()
|
||||||
@@ -25,7 +27,8 @@ def test_printout_wheels(capsys):
|
|||||||
|
|
||||||
assert "id1" in captured.out
|
assert "id1" in captured.out
|
||||||
assert "id2" in captured.out
|
assert "id2" in captured.out
|
||||||
assert "1 wheel produced in" in captured.out
|
assert "id3" in captured.out
|
||||||
|
assert "2 wheels produced in" in captured.out
|
||||||
assert "SHA256=" in captured.out
|
assert "SHA256=" in captured.out
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user