Skip to content

Automated cross-platform wheel build and PyPI release via GitHub Actions #74

@akshajtiwari

Description

@akshajtiwari

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

  1. Add GitHub Actions workflow

    • Create workflow under .github/workflows/release.yml
    • Use maturin to build wheels for all supported platforms
    • Use a matrix strategy for:
      • OS: Ubuntu, macOS, Windows
      • Python versions: 3.8–3.12
  2. Configure PyPI publishing

    • Use MATURIN_PYPI_TOKEN stored in repository secrets
    • Upload wheels automatically on version tag push (v*)
  3. Release trigger

    • Workflow activates when maintainer pushes a tag:
      git tag vX.X.X
      git push origin vX.X.X
  4. 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.

Metadata

Metadata

Assignees

Labels

MediumRequires good codebase knowledge.SWoC26Contributions specifically for the Social Winter of Code program.area: infraCI/CD pipelines, GitHub Actions, and repository infrastructure.featureNew ML layers or API functionality.good first issueGood for newcomerstestingImproving test coverage and CI/CD.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions