Release Management¶
This page describes the release procedure for kazunoko.
Release Procedure¶
Follow these steps in order:
Step 0 — Preview the next version (dry run)¶
task bump:check
Shows what the next version number would be without making any changes. Run this to confirm the bump type before proceeding.
Step 1 — Bump the version¶
Choose the appropriate bump type based on the changes:
task bump:patch # Bug fixes, documentation updates
task bump:minor # New features, backward-compatible changes
task bump:major # Breaking changes
This runs Commitizen, which:
- Updates the version in
pyproject.tomlandsrc/kazunoko/__init__.py - Generates a
CHANGELOG.mdentry from conventional commits - Creates a version bump commit and git tag
Step 2 — Create release notes¶
task docs:release -- X.Y.Z
This copies docs/releases/template.md to docs/releases/vX.Y.Z.md.
Open the new file and fill in the release details.
Release notes structure:
| Section | Description |
|---|---|
| What Changed? | 2–3 sentence summary |
| What's New | Feature details and usage examples |
| What's Different | Added / Changed / Fixed lists |
| Is It Safe to Upgrade? | Backward compatibility notes |
Step 3 — Update mkdocs.yml navigation¶
Add the new version to the Releases section in mkdocs.yml:
- Releases:
- v0.x.x:
- v0.21.0: releases/v0.21.0.md # ← add this
- v0.20.0: releases/v0.20.0.md
...
Then commit the release notes and mkdocs.yml together:
git add docs/releases/vX.Y.Z.md mkdocs.yml
git commit -m "docs: add v X.Y.Z release notes"
Step 4 — Push commits and tags¶
task push:tags
This runs git push origin main --tags, pushing both the bump commit and the version tag.
Step 5 — Create the GitLab release¶
task push:release -- X.Y.Z
This uses glab to create a GitLab release, attaching the content of docs/releases/vX.Y.Z.md as release notes.
Summary¶
| Step | Command | Description |
|---|---|---|
| 0 | task bump:check |
Preview next version (dry run) |
| 1 | task bump:patch / bump:minor / bump:major |
Bump version and generate changelog |
| 2 | task docs:release -- X.Y.Z |
Create release notes from template |
| 3 | Edit mkdocs.yml + commit |
Add version to nav and commit release notes |
| 4 | task push:tags |
Push commits and tags to remote |
| 5 | task push:release -- X.Y.Z |
Create GitLab release with release notes |