| name | draft-release |
| description | Draft a new release of the project. |
| targets | ["*"] |
First, let's work on the following steps.
- Confirm that you are currently on the main branch and pull the latest changes. If not on main branch, switch to main branch.
- Compare code changes between the previous version tag and the latest commit to prepare the release description.
- Write in English.
- Do not include confidential information.
- Sections,
What's Changed, Contributors and Full Changelog are needed.
./tmp/release-notes/*.md will be used as the release notes.
Then, from $ARGUMENTS, get the new version without v prefix, and assign it to $new_version. For example, if $ARGUMENTS is "v1.0.0", the new version is "1.0.0".
If $ARGUMENTS is empty, determine the new version automatically by performing the release-dry-run skill.
Let's resume the release process.
- Run
git pull.
- Run
git checkout -b release/v${new_version}.
- Update
getVersion() function to return the ${new_version} in src/cli/index.ts, and run pnpm cicheck. If the checks fail, fix the code until pass. Then, execute git add, git commit and git push.
- Update the version with
pnpm version ${new_version} --no-git-tag-version.
- Since
package.json will be modified, execute git commit and git push.
- As a precaution, verify that
getVersion() in src/cli/index.ts is updated to the ${new_version}.
- Run
gh pr create to the main branch.
- Create a draft release using
gh release create v${new_version} --draft --title v${new_version} --notes-file ./tmp/release-notes/*.md command on the github.com/dyoshikawa/rulesync repository. This creates a draft release so that the publish-assets workflow can upload assets later.
Note: the Homebrew tap formula (Formula/rulesync.rb) is NOT updated here. It embeds sha256 checksums of the release binaries, which only exist after the release PR merges and the Publish Assets workflow uploads them. The goal-release skill performs that update as its post-merge step (regenerate with scripts/generate-homebrew-formula.ts from the release's SHA256SUMS and land it via an immediately merged PR). When releasing manually without the goal-release skill, run that step yourself after the assets are published.