3.21 release tracking issue
Created by: uwedeportivo
3.21 Release (2020-10-21)
Note: All yarn run release ... commands should be run from folder dev/release.
Note: All yarn run test ... commands should be run from folder web.
2020-10-13 (5 work days before release): Prep for branch cut
-
Post a release status update to Slack: yarn run release release:status 3.21.0-
Review all release-blocking issues. Add them as checklist items here. Ensure someone is resolving each.
-
2020-10-14 (4 work days before release): Branch cut
-
Update the changelog and merge the generated pull request: yarn run release changelog:cut 3.21.0 -
Create the 3.21branch off the CHANGELOG commit in the previous step:git branch 3.21 && git push origin 3.21. -
Tag the first release candidate: yarn run release release:create-candidate 3.21.0-rc.1 -
Run regression tests: -
Follow README.md to set up your e2e environment. Run the tests from the webdirectory. A more complete set of env vars can be found in this 1password entry. -
New Sourcegraph Docker container: - Run the initializer:
E2E_INIT=true SOURCEGRAPH_BASE_URL=http://localhost:7080 yarn run test:regression -t 'Initialize new Sourcegraph instance' - Run the regression test suite:
SOURCEGRAPH_BASE_URL=http://localhost:7080 yarn run test:regression
- Run the initializer:
-
Upgrade from previous release: - Run the initializer on a Docker container running the last patch version of the previous major/minor release.
- Upgrade and run the regression test suite.
-
New Sourcegraph Kubernetes cluster: - Run the initializer on a new Sourcegraph Kubernetes cluster.
- Run the regression test suite.
-
2020-10-14 to 2020-10-19: Cut new release candidates
As necessary, git cherry-pick bugfix (not feature!) commits from main into the release branch.
Aggressively revert or disable features that may cause delays.
-
Post a release status update to Slack: yarn run release release:status 3.21.0-
Review all release-blocking issues. Add them as checklist items here. Ensure someone is resolving each. -
Review all other open issues in the milestone and ask assignees to triage them to a different milestone (preferring Backlog).
-
Cut a new release candidate daily if necessary:
-
Cut and announce release candidate: N=<release-candidate-number> yarn run release release:create-candidate 3.21.0-rc.$N -
Re-run the automated test suite against the new release candidate, file any regressions as release-blockerissues. -
If necessary, manually test features or workflows affected by the cherry-pick.
2020-10-19 (1 work day before release) Tag final release
-
Tag the final release: yarn run release release-candidate:create 3.21.0 -
Verify the CHANGELOG on mainis accurate (no items should have been added since branch cut, but some items may need to be removed). -
Wait for the release Docker images to be available in Docker Hub. -
Release Docker Compose by following these instructions -
Open (but do not merge) PRs that publish the new release: # Run this in the main sourcegraph repository in the `dev/release` directory on `main` branch: yarn run release release:publish 3.21.0 -
Create (but do not merge) a PR to update https://docs.sourcegraph.com/admin/updates/kubernetes indicating the steps required to upgrade. -
Review all issues in the release milestone. Backlog things that didn't make it into the release and ping issues that still need to be done for the release (e.g. Tweets, marketing).
2020-10-20 by 10am: Release
-
Merge the release-publishing PRs created previously. - For deploy-sourcegraph, also:
-
Merge the PR to update the Kubernetes CHANGELOG -
Tag the v3.21.0release at this commit.VERSION='v3.21.0' bash -c 'git tag -a "$VERSION" -m "$VERSION" && git push origin "$VERSION"'
-
- For sourcegraph, also:
-
Cherry pick the release-publishing PR from sourcegraph/sourcegraph@maininto the release branch.
-
- For deploy-sourcegraph, also:
-
Ask the product team to merge the blog post (example).
Post-release
-
Notify the next release captain that they are on duty for the next release. They should complete the steps in this section. -
Ensure you have the latest version github.com/sourcegraph/about checked out and it is located at ../about(relative to this repository). -
Update dev/release/config.jsonwith the parameters for the current release. -
Run yarn buildto rebuild the release script (necessary, becauseconfig.jsonis compiled in). -
Create release calendar events, tracking issue, and announcement for next release: # Add calendar events and reminders for key dates in the release cycle yarn run release tracking:release-timeline # Create the release tracking issue (i.e., this issue) yarn run release tracking:release-issue -
Close this issue. -
Close the milestone.