Skip to content

Build wheel files for Python 3.13#589

Merged
K20shores merged 16 commits intomainfrom
copilot/fix-588
Aug 25, 2025
Merged

Build wheel files for Python 3.13#589
K20shores merged 16 commits intomainfrom
copilot/fix-588

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Aug 18, 2025

  • Adds a linux arm runner so we don't have to do QEMU emulation and the python wheel builds are faster
  • Upgrades to a newer cibuildwheel version so we can build python 3.13 wheels
  • Specifies gfortran for some mac tests, which weren't previously required but are now i guess

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:

  1. Missing requires-python field: The pyproject.toml lacked a requires-python specification, which helps cibuildwheel determine version compatibility and can affect build behavior.

  2. Outdated cibuildwheel version: The workflow used pypa/[email protected], which had incomplete Python 3.13 support compared to newer versions.

  3. Non-existent Python versions in build list: The configuration included cp314-* and cp315-* targets that don't exist yet, potentially causing confusion in the build process.

Changes Made

  • Added requires-python = ">=3.9" to the [project] section in pyproject.toml to explicitly declare Python version compatibility
  • Updated cibuildwheel from v2.17 to v2.22 in the GitHub workflow for improved Python 3.13 support
  • Removed non-existent Python versions (cp314-*, cp315-*) from the build configuration, keeping only existing versions: cp39-*, cp310-*, cp311-*, cp312-*, cp313-*

Verification

Testing with cibuildwheel --print-build-identifiers now correctly shows cp313-manylinux_x86_64 as 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
    • Triggering command: /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.

Copilot AI changed the title [WIP] Build wheel files for python 13 Build wheel files for Python 3.13 Aug 18, 2025
Copilot AI requested a review from K20shores August 18, 2025 13:13
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Aug 18, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.19%. Comparing base (28ae77d) to head (7a43b11).
⚠️ Report is 1 commits behind head on main.

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@K20shores K20shores marked this pull request as ready for review August 22, 2025 15:59
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@K20shores K20shores merged commit fa04738 into main Aug 25, 2025
68 checks passed
@K20shores K20shores deleted the copilot/fix-588 branch August 25, 2025 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build wheel files for python 13

6 participants