Skip to content

Maintainer Guide

This guide is for maintainers of kazunoko. It covers version management, releases, and repository administration.

Version Management

This project uses Commitizen for semantic versioning, driven by Conventional Commit messages.

task bump:check   # preview the next version bump (dry-run)
task bump:auto    # bump version, auto-detected from commit history
task bump:patch   # force a patch bump (x.y.Z)
task bump:minor   # force a minor bump (x.Y.0)
task bump:major   # force a major bump (X.0.0)

Each bump command:

  1. Updates the version in pyproject.toml
  2. Updates CHANGELOG.md
  3. Creates a git tag

Release process

# 1. Verify the version bump looks correct
task bump:check

# 2. Apply the bump (updates pyproject.toml, CHANGELOG.md, creates git tag)
task bump:auto

# 3. Scaffold the release note
task docs:release -- X.Y.Z

# 4. Edit docs/releases/vX.Y.Z.md with the release summary

# 5. Commit the release note
git add docs/releases/vX.Y.Z.md
git commit -m "docs: add vX.Y.Z release note"

# 6. Push commits and tag
task push:tags

# 7. Publish the GitLab release
task push:release -- X.Y.Z

Environment management

task env:setup    # uv sync --all-groups + pre-commit install
task env:clean    # remove .venv, __pycache__, .pytest_cache, .ruff_cache

task deps:outdated  # list outdated packages
task deps:update    # uv sync --upgrade --all-groups

task pre-commit:update    # autoupdate pre-commit hooks
task pre-commit:uninstall # remove pre-commit hooks

Documentation

task docs:serve   # serve docs locally at http://localhost:8000
task docs:build   # build static site

Checking current version

task version   # prints the latest git tag