release logo

release

Create a new release for grepai. Checks CI, determines version type, updates CHANGELOG and documentation, credits contributors, and creates GitHub release.

SKILL.md

Full skill instructions

Release Process for grepai

This skill guides you through creating a new release. All output must be in English.

When to Use This Skill

Invoke this skill when:

  • User asks to "create a release"
  • User asks to "publish a new version"
  • User asks to "bump the version"
  • User mentions "release" in the context of versioning

Release Workflow

Step 1: Verify CI on Main

Check that all CI checks pass on main:

gh run list --branch main --limit 1 --json status,conclusion,name

STOP if CI is not green. Ask the user to fix issues first.

Step 2: Get Current Version and Changes

Get the latest release:

gh release list --limit 1

List merged PRs since last release:

gh pr list --state merged --base main --json number,title,author,mergedAt,labels --limit 50

Display a summary of changes categorized by type (feat, fix, docs, etc.).

Step 3: Determine Version Type

Change TypeVersion Bump
Breaking changesMajor (vX+1.0.0)
New features (feat)Minor (vX.Y+1.0)
Bug fixes (fix)Patch (vX.Y.Z+1)
Docs/chore onlyUsually no release needed

Ask user confirmation before proceeding.

Step 4: Update Version Files

4.1 CHANGELOG.md

Add new section after ## [Unreleased]:

## [X.Y.Z] - YYYY-MM-DD

### Added
- **Feature Name**: Description (#PR) - @author

### Fixed
- **Fix Name**: Description (#PR) - @author

Update comparison links at bottom:

[Unreleased]: https://github.com/yoanbernabeu/grepai/compare/vX.Y.Z...HEAD
[X.Y.Z]: https://github.com/yoanbernabeu/grepai/compare/vPREVIOUS...vX.Y.Z
4.2 Documentation Hero

Update version in docs/src/components/homepage/HeroAnimated.astro line 6:

const { version = "X.Y.Z" } = Astro.props;
4.3 Nix Flake

Update flake.nix:

  1. Update version (line 13):
version = "X.Y.Z";
  1. Update vendorHash:
    • Set vendorHash = ""; temporarily in flake.nix
    • Run make nix-hash to compute the correct hash (requires Docker)
    • Replace with the new hash: vendorHash = "sha256-XXXXX";
    • If Docker is not available, ask the user to provide the hash or skip this step

Step 5: Commit and Push

git add CHANGELOG.md docs/src/components/homepage/HeroAnimated.astro flake.nix
git commit -m "chore(release): bump version to X.Y.Z

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>"
git push origin main

Step 6: Wait for CI

gh run list --branch main --limit 1 --json status,conclusion --watch

Step 7: Create GitHub Release

gh release create vX.Y.Z --generate-notes --title "vX.Y.Z"

Step 8: Verify

gh release view vX.Y.Z

Contributor Credits

IMPORTANT: Always credit PR authors in CHANGELOG:

- **Pascal/Delphi Support**: Add `.pas` and `.dpr` file support (#71) - @yoanbernabeu

GitHub --generate-notes automatically credits contributors in release notes.

Checklist

  • CI green on main before starting
  • Version type matches changes (major/minor/patch)
  • CHANGELOG.md updated with all PRs
  • All contributors credited with @username
  • Hero version updated in docs
  • Nix flake version and vendorHash updated in flake.nix
  • CI passed after version commit
  • GitHub release created

Keywords

release, version, bump, publish, changelog, semver, semantic versioning