-
Notifications
You must be signed in to change notification settings - Fork 1.3k
3.22 release tracking issue #15023
Description
3.22 Release
This release is scheduled for Nov 20, 2020, 6:00 PM (UTC).
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.
Setup
- Ensure release configuration in
dev/release/config.jsononmainis up to date with the parameters for the current release. - Ensure the latest version of the release tooling has been built before each step using
yarn run buildindev/release.
Nov 13, 2020, 6:00 PM (UTC) (5 work days before release): Prep for branch cut
- Post a release status update to Slack - review all release-blocking issues, and ensure someone is resolving each.
yarn run release release:status
Nov 16, 2020, 6:00 PM (UTC) (4 work days before release): Branch cut
- Update the changelog and merge the generated pull request:
yarn run release changelog:cut
- Create the
3.22branch off the CHANGELOG commit in the previous step:git branch 3.22 && git push origin 3.22.
Upon branch cut, create and test the first release candidate:
- Tag the first release candidate:
yarn run release release:create-candidate 1
- Run regression tests:
- Follow the Regression tests guide to set up your e2e environment.
Run the tests from thewebdirectory. 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.
- Follow the Regression tests guide to set up your e2e environment.
- File any regressions as
release-blockerissues 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 daily or as necessary, until no more release-blocker issues remain:
- Cut the Nth release candidate:
N=<release-candidate-number> yarn run release release:create-candidate $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.
- Post a release status update by running the command below. Ensure someone is resolving each release-blocking issue. If there are no more release-blocking issues, proceed to tag the final release in the next section.
yarn run release release:status
Tag final release
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
mainis accurate (no items should have been added since branch cut, but some items may need to
be removed). - Tag the final release:
yarn run release release-candidate:create final - Wait 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 campaign):
yarn run release release:stage
Nov 20, 2020, 6:00 PM (UTC): Release
- From the release campaign, merge the release-publishing PRs created previously.
- For sourcegraph, also:
- Cherry pick the release-publishing PR from
sourcegraph/sourcegraph@maininto the release branch.
- Cherry pick the release-publishing PR from
- For sourcegraph, also:
- Ask the product team to merge the blog post (example). Add the pull request to the release campaign:
yarn run release release:add-to-campaign sourcegraph/about <pr-number>
- Finalize and announce that the release is live:
yarn run release release:close
Post-release
- 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/config.jsonwith the parameters for the current release. - Run
yarn buildto rebuild the release script. - 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.
Note: If a patch release are requested after the release, ask that a patch request issue be filled out and approved first.