Skip to content

Conversation

@jshleap
Copy link
Collaborator

@jshleap jshleap commented Jan 22, 2026

This PR implements a fully automated CI/CD pipeline for publishing scallops to PyPI. It enables the creation of optimized binary wheels for Linux, Windows, and macOS (including Apple Silicon) via GitHub Actions.

Additionally, this PR drastically reduces the package distribution size (from ~500MB to ~500KB) and fixes license metadata to ensure correct display on PyPI.

Key Changes

CI/CD & Automation

  • Added GitHub Workflow: Created .github/workflows/release.yml to automatically build and publish wheels when a version tag (e.g., v0.0.1) is pushed.

  • Cross-Platform Support: Configured cibuildwheel to generate binary wheels for:

  • Linux (x86_64)

  • Windows (amd64)

  • macOS (x86_64 & arm64 Apple Silicon)

  • Build Optimization: Configured build to skip incompatible/unused platforms (32-bit, PyPy) to speed up release times.

Package Optimization

  • Reduced Wheel Size: Added MANIFEST.in to strictly exclude large test datasets and build artifacts, fixing the 400 Bad Request upload error.
  • Metadata Fixes: Updated pyproject.toml to correctly link the license file, ensuring the license badge renders correctly on PyPI.

Documentation & Licensing

  • Updated README: Added PyPI version/license badges, new installation instructions (pip vs. source), and fixed the broken logo URL.
  • License Update: Aligned LICENSE file and pyproject.toml classifiers to the BSD 3-Clause License.

@jshleap jshleap requested a review from joshua-gould January 22, 2026 17:46
@jshleap jshleap merged commit 9022b9e into main Jan 22, 2026
2 checks passed
@jshleap jshleap deleted the pypi branch January 22, 2026 18:41
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.

3 participants