$MAJOR.$MINOR.$PATCH patch release
This release is scheduled for $RELEASE_DATE.
Attention developers: to get your commits in
main
included in this patch release, please file a patch request for review.Only check off items if relevant commits across the following repositories have been cherry-picked into the relevant
$MAJOR.$MINOR
branch by the release captain:
sourcegraph/sourcegraph
sourcegraph/deploy-sourcegraph
sourcegraph/deploy-sourcegraph-docker
- TODO: Add patch request issues and their associated commits here
Setup
- Ensure release configuration in
dev/release/release-config.jsonc
onmain
is up-to-date with the parameters for the current release. - Ensure you have the latest version of the release tooling and configuration by checking out and updating
sourcegraph@main
. - Create a
Security release approval issue
and post a message in the #security channel tagging @security-support.
Prepare release
Ensure that all patch request issues are accounted for, and have all relevant commits across relevant repositories listed above in the checklist.
For each of the following repositories you have made changes to, cherry-pick (see snippet below) and check off commits listed above.
-
sourcegraph/sourcegraph
($MAJOR.$MINOR
release branch CI) -
sourcegraph/deploy-sourcegraph
($MAJOR.$MINOR
release branch CI) -
sourcegraph/deploy-sourcegraph-docker
($MAJOR.$MINOR
release branch CI) -
sourcegraph/deploy-sourcegraph-helm
($MAJOR.$MINOR
release branch CI)
git checkout $MAJOR.$MINOR
git pull
git cherry-pick <commit0> <commit1> ... # all relevant commits from the default branch
git push origin $MAJOR.$MINOR
- Ensure CI passes on all release branches listed above.
Create and test the first release candidate:
- Push a release candidate tag:
N=1; yarn release release:create-candidate $N
Note: Ensure that you’ve pulled both main and release branches before running this command.
-
Ensure that the following Buildkite pipelines all pass for the
v$MAJOR.$MINOR.$PATCH-rc.1
tag: -
File any failures and regressions in the pipelines as
release-blocker
issues and assign the appropriate teams.
Note: You will need to re-check the above pipelines for any subsequent release candidates. You can see the Buildkite logs by tweaking the “branch” query parameter in the URLs to point to the desired release candidate. In general, the URL scheme looks like the following (replacing N
in the URL):
- Sourcegraph:
https://buildkite.com/sourcegraph/sourcegraph/builds?branch=v$MAJOR.$MINOR.$PATCH-rc.N
- QA:
https://buildkite.com/sourcegraph/qa/builds?branch=v$MAJOR.$MINOR.$PATCH-rc.N
- E2E:
https://buildkite.com/sourcegraph/qa/builds?branch=v$MAJOR.$MINOR.$PATCH-rc.N
Stage release
-
Verify the CHANGELOG on
main
and$MAJOR.$MINOR
are accurate. -
Tag the final release:
yarn release release:create-candidate final
-
Ensure that the following pipelines all pass for the
v$MAJOR.$MINOR.$PATCH
tag: -
Wait for the
v$MAJOR.$MINOR.$PATCH
release Docker images to be available in Docker Hub -
Open PRs that publish the new release and address any action items required to finalize draft PRs (track PR status via the generated release batch change):
yarn release release:stage
Finalize release
- From the release batch change, merge the release-publishing PRs created previously. Note: some PRs require certain actions performed before merging.
- After all the PRs are merged, perform following checks/actions
- For deploy-sourcegraph
- Ensure the release tag has been created
- For deploy-sourcegraph-docker
- Ensure the release tag has been created
- For sourcegraph, also:
- Cherry-pick the release-publishing PR from
sourcegraph/sourcegraph@main
into the release branch.
- Cherry-pick the release-publishing PR from
- For deploy-sourcegraph-helm, also:
- Update the changelog to include changes from the patch
- Cherry-pick the release-publishing PR from the release branch into
main
- For deploy-sourcegraph
- Finalize and announce that the release is live:
yarn release release:announce yarn release release:close
Post-release
- Open a PR to update
dev/release/release-config.jsonc
with the parameters for the current release. - Ensure you have the latest version of the release tooling and configuration by checking out and updating
sourcegraph@main
. - Let the #cloud team know about the managed instances upgrade issue.
- Close this issue.
Note: If another patch release is requested after the release, ask that a patch request issue be filled out and approved first.