Smoothify is published to PyPI by tag-push. The version comes from the git tag
itself (via setuptools-scm) — there is no version file to bump.
Follow SemVer:
- Major (
v1.0.0→v2.0.0): incompatible API change — removed args, changed signatures, behavioural changes that break existing callers. - Minor (
v1.0.0→v1.1.0): backwards-compatible feature added. - Patch (
v1.0.0→v1.0.1): backwards-compatible bug fix.
Any commit that lands on main between releases shows up at install time as
a development version like 0.2.4.dev3+g1234abc.
-
Sync
mainlocally:git checkout main git pull
-
Update
CHANGELOG.md: move the## [Unreleased]entries to## [<version>] - <YYYY-MM-DD>and add a fresh empty[Unreleased]block at the top. Commit onmain:git commit -am "Prepare <version> changelog" git push -
Tag and push:
git tag v<version> # e.g. v0.3.0 git push origin v<version>
The tag must match
v<major>.<minor>.<patch>(pre-release suffixes likev0.3.0rc1also match the publish workflow's filter). -
Approve the deploy: the
Publish to PyPIworkflow runsuv buildand uploads to PyPI via OIDC trusted publishing. ThepypiGitHub environment is gated by a required reviewer — go to Actions → Publish to PyPI → Review deployments → Approve to release. -
Verify:
- PyPI page: https://pypi.org/project/smoothify/
- GitHub Releases: https://github.com/DPIRD-DMA/Smoothify/releases (auto-generated release notes + wheel/sdist attached).