📦 Releasing Merrypopins
This document describes the steps to release a new version of the merrypopins
Python package to both PyPI and GitHub Releases.
✅ Requirements
- You have write access to the repository.
- A valid
PYPI_API_TOKEN
is stored in GitHub Secrets. - Versioning follows Semantic Versioning (e.g.
0.3.0
).
🔁 Release Checklist
1. Update the Version
Update version number in:
pyproject.toml
:src/merrypopins/__init__.py
:
⚠️ Both values must match.
2. Update the Changelog (Optional)
In the CHANGELOG.md
, add a section for the new version:
## [0.3.0] - 2025-06-06
- Improved Fourier detection accuracy
- Fixed CNN trimming
- Automated release via GitHub Actions
3. Merge to Main Branch
Create a pull request to merge your changes into the release branch (main
).
Once merged, the GitHub Actions workflow will:
- Validate version consistency
- Build the package
- Publish it to PyPI
- Tag the release (
v0.3.0
) - Create a GitHub release with autogenerated notes
🔍 Verification Steps
- ✅ Go to PyPI and check that the version is published.
- ✅ Go to GitHub Releases and confirm the tag and release notes were created.
🧠 Notes
- The workflow ensures versions are only released once.
- Version mismatch between
pyproject.toml
and__init__.py
will fail the release. - Auto-generated release notes summarize commit history since the last tag.
📁 Related Files
pyproject.toml
src/merrypopins/__init__.py
.github/workflows/pypi-release.yml
.github/RELEASING.md