Conversation
…3.13 support Co-authored-by: K20shores <[email protected]>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #589 +/- ##
==========================================
- Coverage 81.26% 81.19% -0.08%
==========================================
Files 54 54
Lines 5833 5960 +127
==========================================
+ Hits 4740 4839 +99
- Misses 1093 1121 +28 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull Request Overview
This PR enables Python 3.13 wheel builds by upgrading the build infrastructure and optimizing the CI configuration. The changes address missing Python 3.13 support in the latest release (v0.12.1) by updating cibuildwheel, adding proper Python version specifications, and improving build performance.
- Upgrades cibuildwheel from v2.17 to v3.1.3 for proper Python 3.13 support
- Adds explicit Python version requirements and removes non-existent Python versions from build configuration
- Introduces native ARM64 Linux runner to replace QEMU emulation for faster builds
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Adds Python version requirements, removes non-existent Python versions, updates macOS deployment target |
| .github/workflows/python-wheels.yml | Upgrades cibuildwheel version, adds native ARM runner, specifies gfortran compiler |
| .github/workflows/python-tests.yml | Specifies gfortran compiler for test builds |
| musica/tools/prepare_build_environment_linux.sh | Simplifies build environment setup by removing i686-specific logic |
| cmake/summary.cmake | Extends Fortran compiler info display to additional build configurations |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Copilot stuff below
The latest release (v0.12.1) only included Python wheels for versions 3.9-3.12, missing Python 3.13 support despite the configuration appearing to include it.
Root Cause
Investigation revealed three issues preventing Python 3.13 wheels from being built:
Missing
requires-pythonfield: Thepyproject.tomllacked arequires-pythonspecification, which helps cibuildwheel determine version compatibility and can affect build behavior.Outdated cibuildwheel version: The workflow used
pypa/[email protected], which had incomplete Python 3.13 support compared to newer versions.Non-existent Python versions in build list: The configuration included
cp314-*andcp315-*targets that don't exist yet, potentially causing confusion in the build process.Changes Made
requires-python = ">=3.9"to the[project]section inpyproject.tomlto explicitly declare Python version compatibilitycp314-*,cp315-*) from the build configuration, keeping only existing versions:cp39-*,cp310-*,cp311-*,cp312-*,cp313-*Verification
Testing with
cibuildwheel --print-build-identifiersnow correctly showscp313-manylinux_x86_64as a build target, confirming Python 3.13 wheels will be included in future releases.Users on Python 3.13 will no longer need to compile from source and can install pre-built wheels directly.
Fixes #588.
Warning
Firewall rules blocked me from connecting to one or more addresses
I tried to connect to the following addresses, but was blocked by firewall rules:
mirrors.almalinux.org/usr/libexec/platform-python /usr/bin/dnf -y update(dns block)If you need me to access, download, or install something from one of these locations, you can either:
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.