Skip to content

Latest commit

 

History

History
106 lines (82 loc) · 5.23 KB

release_issue_template.md

File metadata and controls

106 lines (82 loc) · 5.23 KB

$MAJOR.$MINOR release

This release is scheduled for $RELEASE_DATE.


Setup

  • Ensure release configuration in dev/release/release-config.jsonc on main 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.

Prepare release

  • 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

Stage 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 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

Finalize release

  • 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 the v$MAJOR.$MINOR branch.
        VERSION='v$MAJOR.$MINOR.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@main into the release branch.
  • 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

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/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.