Releases
A release of an entirius-py-* or entirius-django-* package is a commit, a pull request, a tag and a GitHub
release. Maintainers cut releases. A contribution does not touch the version or the changelog unless the review asks
for it.
Version at Release Time
Section titled “Version at Release Time”How versions are numbered and what a release promises: Versioning and Upgrades. At release time the maintainer decides two things:
- The number. Patch for a fix, minor for a new capability that breaks no caller, major when an interface breaks.
- The changelog entry. What changed, in the words of someone who installs the package, with an
Upgradesubsection when the version needs a manual step.
The version is written in one place, the [project] table of pyproject.toml:
[project]version = "3.3.1"Release Process
Section titled “Release Process”- On
develop, land achore: release <version>commit. It bumpsversioninpyproject.toml, adds the entry toCHANGELOG.md(creating the file in a repository that has none yet) and refreshesuv.lock. It can be the last commit of the branch that completes the release. - Open a pull request from
developtomaster. The required checks run on it as on any pull request (CI/CD). - A maintainer merges it with a merge commit.
- Tag that merge commit on
masterasv<version>, for examplev3.3.1. Every tag lives onmaster. - Publish a GitHub release from the tag, with the changelog entry as its description.
- The
publish.ymlworkflow runs on the published release, builds the package and uploads it to PyPI.
A fix that cannot wait for the next planned release takes the same path: a fix/<name> branch into develop, then
steps 1 to 6 with a patch version.
Where Packages Come From
Section titled “Where Packages Come From”Packages are published to PyPI, and a service declares them as ordinary dependencies with a lower bound:
[project]dependencies = ["entirius-django-pim>=3.3.1"]The upload uses PyPI trusted publishing, so no repository stores an upload token: CI/CD. Moving an installation to a new version: Taking an Upgrade.
- Versioning and Upgrades: version numbers, what a release promises, how to upgrade
- CI/CD: the workflow that builds and publishes
- Git Flow: the branches a release moves through