From 80da813a5e0a6f922d52915bfd5e5d981e018b44 Mon Sep 17 00:00:00 2001 From: Jack Amadeo Date: Tue, 11 Nov 2025 06:33:21 -0800 Subject: [PATCH] Update release instructions (#5662) --- RELEASE.md | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 317e3a3df2..671f60f582 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,28 +1,15 @@ # Making a Release -You'll generally create one of two release types: a regular feature release (minor version bump) or a bug-fixing patch release (patch version bump). Regular releases start on main, while patch releases start with an existing release tag. +You'll generally create one of two release types: a regular feature release (minor version bump) or a bug-fixing patch release (patch version bump). Regular releases start on main, while patch releases start with an existing release tag. goose uses GitHub actions to automate the creation of release branches. The actual releases are triggered by tags. -## Regular release from main +## Minor version releases -1. Check out the main branch. -1. Pick the new version. Use a new minor version (e.g. if the current latest release is 1.2.3, use 1.3.0). Save it using `export VERSION=` -1. Run `just prepare-release $VERSION`. This will create a branch `release/` -1. Run `git push origin release/ --set-upstream` and open a PR into `main`. Use `git log --oneline --cherry-pick --right-only v...release/$VERSION` to generate a PR description -1. Wait for the bundled version of the app which will be linked from a comment on the PR -1. Test the bundled version of the app -1. Tag the release: check out the `release/` branch locally to the latest revision and run `just tag-push` to create and push a tag. Make sure it doesn't error. This will start the release which you can monitor [here](https://github.com/block/goose/actions/workflows/release.yml) -1. Once the release is created on [Github](https://github.com/block/goose/releases), merge the PR and run `just release-notes ` to generate release notes. Copy these into the release description. +These are typically done once per week. There is an [action](https://github.com/block/goose/actions/workflows/minor-release.yaml) that cuts the branch every Tuesday, but it can also be triggered manually. Commits from main can be cherry-picked into this branch. -## Patch release +To trigger the release, find [the corresponding PR](https://github.com/block/goose/pulls?q=is%3Apr+%22chore%28release%29%22+%22%28minor%29%22+author%3Aapp%2Fgithub-actions+) and follow the instructions in the PR description. -Follow the above steps, but rather than starting on main, start on the release tag you're interested in patching. Increment the patch version instead of minor (e.g. 1.2.3 -> 1.2.4). Bug fixes should be merged to main and then cherry-picked onto this branch. +## Patch version releases -1. Before proceeding, make sure any fixes you're looking to include in a patch are merged into main, if possible. -1. Check out the release you're patching using the tag (e.g `git checkout v1.3.0`). Set the version by incrementing the patch version (`export VERSION=1.3.1`). -1. Run `just prepare-release $VERSION`. -1. Cherry-pick the relevant fixes from the main branch. -1. Test this build. When ready to make the release, proceed to the next step. -1. Tag the release: check out the `release/` branch locally to the latest revision and run `just tag-push` to create and push a tag. Make sure it doesn't error. This will start the release which you can monitor [here](https://github.com/block/goose/actions/workflows/release.yml) -1. Once the release is created on [Github](https://github.com/block/goose/releases), run `just release-notes ` to generate release notes. Copy these into the release description. +Minor and patch releases both trigger the creation of a branch for a follow-on patch release. These branches can be used to create patch releases, or can be safely ignored/closed. -Note that you won't merge this branch into main. +To trigger the release, find [the corresponding PR](https://github.com/block/goose/pulls?q=is%3Apr+%22chore%28release%29%22+%22%28patch%29%22+author%3Aapp%2Fgithub-actions+) and follow the instructions in the PR description.