Skip to content

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.toml and src/kazunoko/__init__.py
  • Generates a CHANGELOG.md entry 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.

Requires glab

Install the GitLab CLI and authenticate before running this step:

glab auth login


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