name: release description: Prepare a lading release. Updates CHANGELOG.md, bumps version in Cargo.toml, updates Cargo.lock, commits, and creates a PR. allowed-tools: Read, Edit, Bash, AskUserQuestion
Release process for lading
1. Determine the next version
- Read
lading/Cargo.tomlandCHANGELOG.mdto find the current version and unreleased changes. - If the user hasn't specified a version, suggest one based on semver:
- Breaking changes in the unreleased section -> bump minor (we're pre-1.0).
- Otherwise bump patch.
- Confirm the version with the user before proceeding.
2. Create a release branch
- Create a branch from main:
git checkout -b prepare-release-v<version>
3. Update CHANGELOG.md
- Read
CHANGELOG.md. - Insert a new
## Unreleasedheader (with empty subsections) above the current unreleased content. - Rename the existing unreleased content block to
## [<version>]. - Ensure there is a blank line between the new empty
## Unreleasedand## [<version>].
4. Bump version in Cargo.toml
- Edit
lading/Cargo.tomlto setversion = "<new_version>".
5. Update Cargo.lock
- Run
cargo checkto propagate the version change into the lockfile without re-resolving all dependencies.
6. Commit and create PR
- Stage
CHANGELOG.md,lading/Cargo.toml, andCargo.lock. - Commit with message:
release: v<version> - Push the branch and create a PR targeting main.
7. Tag after merge
- After the PR is merged, remind the user to tag the merge commit on main:
git checkout main && git pullgit tag -a v<version> -m "v<version>"git push origin v<version>
- NEVER use
git push --tags— always push exactly one tag at a time. - The
release.ymlGitHub Actions workflow will automatically create a GitHub Release from the tag, pulling notes from CHANGELOG.md.