name: release description: "Release a new version: bump version, update docs, commit, push, and tag" argument-hint: "<major|minor|patch>"
Release a new version of mdeck.
Input
$ARGUMENTS must be one of: major, minor, patch. If empty or invalid, stop and ask.
Steps
1. Determine the new version
- Read the current version from the
versionfield in the workspaceCargo.toml - Apply the semver bump based on $ARGUMENTS:
patch: 0.2.0 -> 0.2.1minor: 0.2.0 -> 0.3.0major: 0.2.0 -> 1.0.0
- Show the user: "Releasing mdeck v{OLD} -> v{NEW}"
2. Pre-flight checks
- Run
cargo updateto update dependencies to the latest compatible versions - Run
cargo fmt --all -- --check— abort if formatting issues - Run
cargo clippy --workspace -- -D warnings— abort if warnings - Run
cargo test --workspace— abort if any test fails - Run
git status— abort if there are uncommitted changes that are NOT documentation or version files
3. Verify documentation and spec are up to date
crates/mdeck/doc/mdeck-spec.md: Review the format spec against current features. Runcargo run -p mdeck -- specandcargo run -p mdeck -- spec --shortto verify the output looks correct and covers all implemented features. If new visualizations, layouts, directives, or keyboard shortcuts have been added since the last release, update the spec (and the short reference incommands/spec.rs) before proceeding.README.md: Verify features list, command reference, visualization table, and gallery preview images are current.GALLERY.md: If rendering has changed, re-export gallery slides (cargo run -p mdeck -- export sample-presentations/gallery.md --output-dir media/gallery) and verify screenshots reflect current rendering.CLAUDE.md: Verify architecture, commands, and patterns sections are accurate.- If any documentation is out of date, update it now before proceeding to the version bump.
4. Bump version numbers
- Update
versionin the rootCargo.toml[workspace.package]section
5. Update CHANGELOG
- CHANGELOG.md: Rename the
[Unreleased]section to[{NEW_VERSION}] - {TODAY}(YYYY-MM-DD format). If there is no[Unreleased]section, create a new dated entry summarizing changes since the last release
6. Verify the build
- Run
cargo build --workspaceto ensure everything compiles with the new version - Run
cargo test --workspaceonce more after version bump
7. Commit, push, and tag
- Stage all changed files:
Cargo.toml,Cargo.lock,CHANGELOG.md, and any updated docs - Commit with message:
Release v{NEW_VERSION} - Push to main:
git push - Create and push tag:
git tag v{NEW_VERSION} && git push origin v{NEW_VERSION}
8. Confirm
- Tell the user the release is tagged and pushed
- Remind them that the GitHub Actions release workflow will now build binaries, publish to crates.io, and update the Homebrew tap
Skills similaires
Architecte Docker Compose
DevOps
Concoit des configurations Docker Compose optimisees.
Claude CodeCopilotadvanced
430
156
1,650
Rapport de Post-Mortem
DevOps
Rédige des rapports post-mortem d'incidents structurés et blameless.
claudeCursorWindsurfintermediate
141
43
568
Créateur de Runbooks
DevOps
Crée des runbooks opérationnels clairs pour les procédures DevOps courantes.
claudeCursorWindsurfintermediate
108
32
500