Performing Release
All Cake Issues addins are released together with the same version. Releases are created from release branches following the Git Flow branching model, using the Cake.Recipe release process.
The steps to create a release are automated using agent skills available in the
.github/skills directory of the repository, which can be used with GitHub Copilot or any
other agent supporting skills.
Prerequisites¶
- Permission to push to the
master,developandrelease/*branches and to create releases in the cake-contrib/Cake.Issues repository. - GitHub CLI installed and authenticated (
gh auth login). - A GitHub milestone named after the version to release (e.g.
6.2.0) containing all issues and pull requests of the release, with the appropriate labels set.
Start release¶
Ask the agent to start the release, e.g. Start release 6.2.0.
This uses the start-release skill, which does the following:
- Creates a branch
release/<VERSION>from the latestdevelopbranch. - Creates a draft release on GitHub with release notes based on the milestone.
- Adds the following commits to the release branch:
Add news entry: Adds a news post for the release to the website, using thewrite-release-notesskill.Update release notes link: Updates the link to the release notes in all NuGet packages, using theupdate-release-notes-linkskill.Update version in examples: Updates the version of the addins used in examples on the website, using theupdate-version-in-examplesskill.
- Pushes the release branch after confirmation.
Review the news post and the draft release on GitHub and make sure the build of the release branch is passing. Fixes for the release can be merged into the release branch.
Finish release¶
Ask the agent to finish the release, e.g. Finish release 6.2.0.
This uses the finish-release skill, which does the following:
- Checks if the news post and the release notes are still up to date, and reports changes on the release branch which aren't mentioned or aren't assigned to the milestone.
- Merges the release branch into
masterafter confirmation. - Merges
masterintodevelopafter confirmation. - Deletes the release branch after confirmation.
Publish release¶
Publish the draft release on the GitHub releases page with master as target.
Publishing the release creates the tag for the release, which triggers a build publishing the NuGet packages and closing the milestone.