This release is scheduled for $RELEASE_DATE.
- 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
.
- Post a release status update to Slack - review all release-blocking issues, and ensure someone is resolving each.
yarn release release:status
Do the branch cut for the release:
- Update the changelog and merge the generated pull request:
yarn release changelog:cut
- Create the
$MAJOR.$MINOR
branch off the CHANGELOG commit in the previous step:git branch $MAJOR.$MINOR && git push origin $MAJOR.$MINOR
Upon branch cut, create and test release candidates:
- Tag the first release candidate:
N=1 yarn release release:create-candidate $N
- Wait for the Sourcegraph pipeline, QA pipeline, and E2E pipeline in Buildkite to complete.
- File any failures and regressions in the pipelines as
release-blocker
issues and assign the appropriate teams.
Revert or disable features that may cause delays. As necessary, git cherry-pick
bugfix (not feature!) commits from main
into the release branch. Continue to create new release candidates as necessary, until no more release-blocker
issues remain.
- Post a release status update to Slack:
yarn release release:status
Once there are no more release-blocking issues (as reported by the release:status
command) proceed with creating the final release:
- Verify the CHANGELOG on
main
and$MAJOR.$MINOR
are accurate. - Tag the final release:
yarn release release:create-candidate final
- Ensure the Sourcegraph pipeline, QA pipeline, and E2E pipeline in Buildkite passes, and for the 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
- From the release batch change, merge the release-publishing PRs created previously.
- For deploy-sourcegraph, also:
- Tag the
v$MAJOR.$MINOR.0
release at the most recent commit on thev$MAJOR.$MINOR
branch.VERSION='v$MAJOR.$MINOR.0' bash -c 'git tag -a "$VERSION" -m "$VERSION" && git push origin "$VERSION"'
- Tag the
- 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, also:
- Ask the product team (
#product
) to merge the blog post. Add the pull request to the release batch change:yarn release release:add-to-batch-change sourcegraph/about <pr-number>
- Finalize and announce that the release is live:
yarn release release:close
Notify the next release captain that they are on duty for the next release. They should complete the steps in this section.
- 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
. - Create release calendar events, tracking issue, and announcement for next release:
yarn run release tracking:issues yarn run release tracking:timeline
- Close this issue.
Note: If a patch release is requested after the release, ask that a patch request issue be filled out and approved first.