Release tool - #2
Merged
Merged
Conversation
feO2x
commented
Sep 27, 2026
Owner
- introduces a release tool that makes changes across plugin.json, CHANGELOG.md, and git tags to properly publish a new version
- also introduces a corresponding GitHub Actions Release workflow
Move the common test project settings (Exe output, test project flag, xUnit v3 reference) into tests/Directory.Build.props and the common tool project settings into tools/Directory.Build.props. Both import the root Directory.Build.props. Co-Authored-By: Claude Opus 5.5 <[email protected]>
GuidedCoding.Release proposes the next version from the commits since the last vMAJOR.MINOR.PATCH tag, updates the manifests and CHANGELOG.md, validates, commits, tags, pushes main and the tag atomically, and runs gh skill publish. The package validation tests no longer pin a specific version, and the changelog now collects changes under an Unreleased heading. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Add a --yes flag that skips the confirmation prompt so the tool can run without a terminal. Stop setting the agent-skills repository topic during a release: GitHub's workflow token lacks the admin permission it needs, and the topic is a one-time setup that is already in place. Co-Authored-By: Claude Opus 5.5 <[email protected]>
The Release workflow runs the release tool with --yes on main. It accepts an optional version and defaults to a dry run, so a first run only shows the proposed version. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Run the Claude Code plugin validation, which executes an unpinned npm package, in a separate job with read-only permissions. The release job depends on it and is the only job with contents: write. Pin the actions in the release workflow to commit SHAs. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Commit and tag are local and reversible, so they now run under the same guard as the file changes and validations. A failing hook or signature resets to the original HEAD and restores the release files instead of leaving a staged bump or an untagged release commit behind. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Release tags are now plain MAJOR.MINOR.PATCH versions, so a tag is the version itself. gh skill resolves pinned versions as plain git tags and does not require the prefix. No release tags exist yet, so nothing needs to be migrated. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Pushing the release also pushed any local commits that never reached origin/main, bypassing pull requests and CI. The release tool now requires main to match origin/main, so the release pushes nothing but its own commit. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Every tag in the repository is now a release tag. The release tool used to skip tags in other forms, so a v-prefixed tag from a manual gh skill publish went unnoticed: the tool derived the next version from an older release and could release an existing version a second time. It now refuses to run while any tag is not a plain MAJOR.MINOR.PATCH version. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.