← ClaudeAtlas

releaselisted

Cut a versioned release — bump semver, generate the changelog with git-cliff, tag, and publish a GitHub release. Use when shipping a new tagged version.
fmind/dotfiles · ★ 3 · AI & Automation · score 74
Install: claude install-skill fmind/dotfiles
# Release Process Turn the Conventional Commits since the last tag into a versioned release: a bumped `CHANGELOG.md`, package manifest updates, an annotated git tag, and a GitHub release. Uses **git-cliff** (config: `dot_config/git-cliff/cliff.toml`, deployed to `~/.config/git-cliff/cliff.toml`). ## Preconditions - Clean working tree on the default branch (`main`), synced with `origin`. - History follows [conventional-commit](../conventional-commit/SKILL.md) — git-cliff groups commits by `type` and skips `chore(release)`/`chore(deps)`. ## Workflow 1. **Compute the next version** from the commit types since the last tag (`feat` → minor, `fix`/others → patch, `!`/`BREAKING CHANGE` → major): ```bash # Resolves the local/global cliff.toml configuration git-cliff --bumped-version # Or explicitly reference the global config if a local one is not present: git-cliff --config ~/.config/git-cliff/cliff.toml --bumped-version ``` 1. **Update package manifests** (if the project doesn't use dynamic/VCS-based versioning) to match the computed version (e.g., `vX.Y.Z` or `X.Y.Z`): - **Python**: Bump `version` in `pyproject.toml` (unless using dynamic versioning via `hatch-vcs` or similar). - **Node.js**: Run `npm version --no-git-tag-version X.Y.Z` or update `package.json`. - **Go / OpenTofu**: Versioned via git tags (no file changes needed). 1. **Generate the changelog** for that version (pass `--config` to be explicit): ```bash git-cliff --config ~/.