classic-release

Automates classic-wgl releases by freezing changelogs, bumping workspace versions, and tagging.

1|1|Updated Aug 18, 2021
One-click install
npx skills add https://github.com/guilledk/classic-wgl --skill classic-release-guilledk
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: classic-release
Source: https://github.com/guilledk/classic-wgl/tree/main/.agents/skills/release
Command: npx skills add https://github.com/guilledk/classic-wgl --skill classic-release-guilledk

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Cutting a release of the classic-wgl Rust workspace involves several error-prone manual steps: choosing the right semver bump, freezing the Keep-a-Changelog [Unreleased] section, updating Cargo.toml and Cargo.lock, tagging, and re-pinning ROM checksums. This Skill turns that into a repeatable runbook executed after each merge window. ## Core Features & Use Cases - Automated version bump and changelog freeze: Runs cargo xtask release to bump the workspace version and freeze CHANGELOG.md without mutating git history. - Release rules enforcement: Encodes policies such as one release per merge window, 0.x breaking-change minor bumps, Keep-a-Changelog section ordering, and never hand-editing versions on feature branches. - ROM lock re-pinning: Re-pins published ROM checksums and re-baselines golden tests when a roms publish changed checksums. - Use Case: After a stack of reviewed branches lands on master with a non-empty [Unreleased] section and green CI, run the release flow to tag vX.Y.Z, push, and open a GitHub release with the frozen changelog as the body. ## Quick Start Ask the assistant to cut a patch release of classic-wgl now that the merge window has landed on master and the changelog's Unreleased section is non-empty.

Frequently Asked Questions about classic-release

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I cut a release of a Rust workspace with cargo xtask?

Run `cargo xtask release patch` (or minor for breaking changes) to bump Cargo.toml and freeze CHANGELOG.md, then commit Cargo.toml, CHANGELOG.md, and Cargo.lock, create an annotated tag, and push master with tags.

How do I choose between a patch and minor version bump?

Choose the bump from the [Unreleased] changelog content: a breaking change means minor under the 0.x rule, fixes and features only mean patch, and an explicit prerelease uses --version X.Y.Z-alpha.N.

When should I skip cutting a release?

Skip the release when the CHANGELOG.md [Unreleased] section is empty, since that indicates a housekeeping-only merge window. Releases happen once per merge window, cut directly on master with no release PR.

Can I edit the workspace version or changelog headings on a feature branch?

No. Never hand-edit workspace.package.version or a version heading on a feature branch; accumulate changes under [Unreleased] instead. The release command performs the version bump and freeze.

Why do I need to re-pin the ROM lock after a release?

Re-pinning is needed when a roms publish changed published ROM checksums since the last re-pin. Run `cargo xtask lock-roms` and re-baseline golden tests, since publish and re-pin move together.