-
Notifications
You must be signed in to change notification settings - Fork 28
Description
Feature Description
Introduce a GitHub Actions workflow to automatically build and publish Python wheels for Linux, macOS, and Windows using maturin whenever a new version tag is pushed.
This workflow will:
- Build platform-specific wheels for multiple Python versions
- Ensure compatibility across major operating systems
- Automatically upload built wheels to PyPI on tagged releases
- Reduce manual release overhead for maintainers
- Ensure consistent and reproducible builds
The workflow will be triggered when a version tag (vX.X.X) is pushed to the repository.
This enhancement will streamline releases, improve accessibility across platforms, and bring modern CI/CD automation to the project.
Why is this needed?
Currently, PyPI wheels exist only for Windows, limiting usability for users on Linux and macOS.
This creates installation friction and prevents wider adoption of the library.
Adding automated cross-platform builds will:
- Ensure universal installation support via
pip - Improve developer experience across environments
- Remove manual build and upload steps for maintainers
- Provide consistent release packaging
- Align the project with modern open-source release practices
This will make releases more reliable, reproducible, and scalable as the project grows.
Implementation Plan
-
Add GitHub Actions workflow
- Create workflow under
.github/workflows/release.yml - Use
maturinto build wheels for all supported platforms - Use a matrix strategy for:
- OS: Ubuntu, macOS, Windows
- Python versions: 3.8–3.12
- Create workflow under
-
Configure PyPI publishing
- Use
MATURIN_PYPI_TOKENstored in repository secrets - Upload wheels automatically on version tag push (
v*)
- Use
-
Release trigger
- Workflow activates when maintainer pushes a tag:
git tag vX.X.X git push origin vX.X.X
- Workflow activates when maintainer pushes a tag:
-
Validation
- Ensure wheels build successfully on all platforms
- Verify installation via pip after release
- Confirm PyPI upload
Screenshots or Diagrams
No response
Assignment and Program Context
- I want to be assigned to this issue.
- I am contributing through the SWOC program.