Koopa release
koopa release procedure — CHANGELOG authoring, bumpver contract, pre-release gate, and what stays with the user. Use when preparing a release, writing release notes, or understanding what "prepare the release" entails.From its SKILL.md
npx -y skills add acidgenomics/koopa --skill koopa-releaseAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 11 stars11 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.2 KB, as published. Nobody here has run it
koopa Release Procedure
What bumpver does (and doesn't do)
bumpver is configured in pyproject.toml with tag = false, push = false,
commit = true. Running bumpver update (or equivalent) bumps two lines in
pyproject.toml:
version = "<pep440>"(novprefix)current_version = "v<version>"(withvprefix)
It creates a single commit Bump version to vX.Y.Z. — no tag, no push.
Tagging, pushing, and merging develop→main are always the user's job.
Release checklist
- Version bump — already done by
bumpver(theBump version to vX.Y.Z.commit). Confirmpyproject.toml:3reads the new version, and confirm the 3 plugin manifest versions moved too (.claude-plugin/marketplace.jsonand the two underplugins/koopa/) — all wired via[tool.bumpver] file_patterns. - Write CHANGELOG.md — prepend a new section directly above the previous
## koopa X.Y.Z (...)heading. See format below. - Pre-release gate — all must pass:
pytest lang/python/tests/ ruff check lang/python/src/ ruff format --check lang/python/src/ pyright lang/python/src/ - User-owned — tag, push, and merge:
git tag vX.Y.Z git push origin develop git push origin vX.Y.Z # then open a PR: develop -> main
CHANGELOG.md format
File: CHANGELOG.md at the repo root.
Section heading: ## koopa X.Y.Z (YYYY-MM-DD)
- Bare version — no
vprefix. - ISO date in parentheses — use the date of the version-bump commit.
- No blank line between
## headingand the first subsection heading.
Subsections (in order, omit if empty):
Major changes:— substantive user-facing changes, ~4-6 bullets.Minor changes:— small fixes, housekeeping, version bumps.New apps:— only present when new top-level keys were added toetc/koopa/app.jsonthis cycle. Verify with:git diff vPREV..HEAD -- etc/koopa/app.json | grep -E '^\+ "[a-z]'
Bullet style: - list, wrapped at ~80 columns, two-space continuation indent.
Match the style of the surrounding entries exactly.
Determining the commit range
Previous release tag: find the prior Bump version to vX.Y.Z. commit or the
existing vPREV git tag. The range is vPREV..HEAD (or PREV_BUMP_SHA..HEAD
if the tag hasn't been created yet for the previous release).
What to include / exclude
- Include: license changes, new modules, new CLI commands, new apps, significant shell/config parity work, performance fixes, version-check improvements.
- Exclude: Claude config/skills/rules reorganizations (internal tooling), todo
updates, merge commits,
Prepare releasehousekeeping commits. New apps:entries: name, version, one-line description, default/non-default.
Version source of truth
pyproject.toml:3 — version = "X.Y.Z". Read at runtime by
koopa_version() in lang/python/src/koopa/version.py. No other file
hardcodes the koopa version.