release-skill

mcsdodo's avatarfrom mcsdodo

Bump version, update changelog, commit, tag, push, and build release installer

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 2, 2026

When & Why to Use This Skill

This Claude skill automates the end-to-end software release workflow, specifically optimized for Tauri-based applications. It streamlines the process of version bumping, changelog maintenance, automated testing, and production building, ensuring that every release is consistent, verified, and properly tagged in version control.

Use Cases

  • Automated Versioning: Seamlessly update version strings across multiple configuration files including package.json, Cargo.toml, and tauri.conf.json based on semantic versioning (patch, minor, major).
  • Changelog Management: Automatically transition 'Unreleased' notes to dated version sections in CHANGELOG.md, maintaining a clean and professional project history.
  • Pre-release Validation: Enforce a strict workflow that runs backend and integration tests followed by a full production build to prevent broken releases.
  • Git Release Automation: Standardize the final steps of the release process by automatically staging changes, creating release commits, generating git tags, and pushing to remote repositories.
  • Desktop App Distribution: Simplify the generation of platform-specific installers (like NSIS for Windows) and provide immediate feedback on the build artifact location.
namerelease-skill
descriptionBump version, update changelog, commit, tag, push, and build release installer

Release Workflow

When the user says "release", "/release", or "push, release", execute this workflow.

1. Determine Version

Check current version in package.json. Ask user for bump type if not specified:

  • patch: 0.1.0 → 0.1.1 (bug fixes)
  • minor: 0.1.0 → 0.2.0 (new features)
  • major: 0.1.0 → 1.0.0 (breaking changes)

2. Update Version in All Files

Update version string in these three files:

  • package.json - field "version": "X.Y.Z"
  • src-tauri/Cargo.toml - field version = "X.Y.Z"
  • src-tauri/tauri.conf.json - field "version": "X.Y.Z"

3. Update CHANGELOG.md

  1. Move all content under ## [Unreleased] to a new version section
  2. Add today's date in format ## [X.Y.Z] - YYYY-MM-DD
  3. Leave empty ## [Unreleased] section at top

Example:

## [Unreleased]

## [0.2.0] - 2025-12-29

### Pridane
- New feature...

4. Run Tests

Run tests BEFORE building to verify nothing is broken:

npm run test:backend
npm run test:integration:tier1

If tests fail, fix issues and retry. Don't proceed until tests pass.

5. Build Release

Build BEFORE committing to verify everything works:

npm run tauri build

If build fails, fix issues and retry. Don't proceed until build succeeds.

6. Commit, Tag, and Push

Only after successful build:

git add -A
git commit -m "chore: release vX.Y.Z"
git tag vX.Y.Z
git push && git push --tags

7. Report Results

Show the path to the built installer:

  • NSIS installer: src-tauri/target/release/bundle/nsis/Kniha Jázd_X.Y.Z_x64-setup.exe

Notes

  • Cargo.lock will auto-update - include it in the commit
  • CHANGELOG is in Slovak (Pridane, Zmenene, Opravene)