Skip to content

📦 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:
    [project]
    version = "0.3.0"
    
  • src/merrypopins/__init__.py:
    __version__ = "0.3.0"
    

⚠️ 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.

  • pyproject.toml
  • src/merrypopins/__init__.py
  • .github/workflows/pypi-release.yml
  • .github/RELEASING.md