• [ ] Create a checklist of the changes that you want to release (i.e. open or merged PRs).
  • [ ] Communicate your intentions by sending a message to #dev-announce that includes a link to this issue.
  • [ ] Cherry pick changes into the existing release branch (this exists already as MAJOR.MINOR, do not create a new branch) and check them off the list above.
    • [ ] Ensure that the cherry-picked commits don’t depend on any commits that aren’t already in the release branch.
  • [ ] Push the release branch with your cherry-picked commit(s) and make sure CI passes.

Release sourcegraph/server

  • [ ] Create an annotated git tag and push it (this triggers CI to build the Docker images for the new version). For example:

    VERSION='v3.2.1-rc.1' bash -c 'git tag -a "$VERSION" -m "$VERSION" && git push origin "$VERSION"'
  • [ ] Wait for the final Docker images to be available at

Release Kubernetes deployment

In deploy-sourcegraph:

Update the docs

  • [ ] Update the version (major.minor.patch) of Sourcegraph in the docs (example) by running the following find . -type f -name '*.md' -exec sed -i '' -E 's/sourcegraph\/server:[0-9\.]+/sourcegraph\/server:$NEW_VERSION/g' {} + If you have GNU sed (default on Linux), run the following instead: find . -type f -name '*.md' -exec sed -i -E 's/sourcegraph\/server:[0-9\.]+/sourcegraph\/server:$NEW_VERSION/g' {} +
  • [ ] Update versions in template (example)
  • [ ] Update latestReleaseKubernetesBuild and latestReleaseDockerServerImageBuild (example).
  • [ ] Update deploy-aws version
  • [ ] Update deploy-digitalocean version
  • [ ] Message @slimsag on Slack: MAJOR.MINOR.PATCH has been released, update deploy-sourcegraph-docker as needed
  • [ ] Create a new section for the patch version in the changelog. Verify that all changes that have been cherry picked onto the release branch have been moved to this section of the CHANGELOG on master.
  • [ ] Post a reply in the #dev-announce thread to say that the release is complete.