[release script] Auditwheel only on Linux.

This commit is contained in:
Leo Vasanko
2025-12-23 19:46:13 +00:00
parent dd0c0bc0a0
commit f3c0b2b85d
+41 -35
View File
@@ -1,11 +1,13 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
"""Build wheels for all supported Python versions using uv.""" """Build wheels for all supported Python versions using uv."""
import platform
import shutil
import subprocess import subprocess
import sys import sys
import tomllib
from pathlib import Path from pathlib import Path
import shutil
import tomllib
from packaging.specifiers import SpecifierSet from packaging.specifiers import SpecifierSet
from packaging.version import Version from packaging.version import Version
@@ -211,42 +213,46 @@ def main():
wheel = wheels[0] wheel = wheels[0]
# Repair wheel with auditwheel for manylinux compatibility # Repair wheel with auditwheel for manylinux compatibility (Linux only)
repair_cmd = [ if platform.system() == "Linux":
"uv", repair_cmd = [
"run", "uv",
"auditwheel", "run",
"repair", "auditwheel",
str(wheel), "repair",
"-w", str(wheel),
str(dist_dir), "-w",
] str(dist_dir),
if not run_command( ]
repair_cmd, f"Repairing wheel for Python {py_version} with auditwheel" if not run_command(
): repair_cmd, f"Repairing wheel for Python {py_version} with auditwheel"
print( ):
f"✗ Auditwheel repair failed for Python {py_version}", file=sys.stderr print(
f"✗ Auditwheel repair failed for Python {py_version}",
file=sys.stderr,
)
failed_builds.append(py_version)
continue
# Find the repaired wheel (it will have a different name)
all_wheels = list(
dist_dir.glob(f"aeg-*-cp{py_version.replace('.', '')}-*.whl")
) )
failed_builds.append(py_version) repaired_wheels = [w for w in all_wheels if "linux_x86_64" not in str(w)]
continue if not repaired_wheels:
print(
f"✗ Could not find repaired (manylinux) wheel for Python {py_version}",
file=sys.stderr,
)
failed_builds.append(py_version)
continue
# Find the repaired wheel (it will have a different name) wheel = repaired_wheels[0] # Use the repaired wheel for testing
all_wheels = list(dist_dir.glob(f"aeg-*-cp{py_version.replace('.', '')}-*.whl"))
repaired_wheels = [w for w in all_wheels if "linux_x86_64" not in str(w)]
if not repaired_wheels:
print(
f"✗ Could not find repaired (manylinux) wheel for Python {py_version}",
file=sys.stderr,
)
failed_builds.append(py_version)
continue
wheel = repaired_wheels[0] # Use the repaired wheel for testing # Remove the unrepaired linux_x86_64 wheels
for w in all_wheels:
# Remove the unrepaired linux_x86_64 wheels if "linux_x86_64" in str(w):
for w in all_wheels: w.unlink()
if "linux_x86_64" in str(w):
w.unlink()
# Test the wheel with pytest (use --isolated to avoid .venv conflicts) # Test the wheel with pytest (use --isolated to avoid .venv conflicts)
test_cmd = [ test_cmd = [