Skip to content
This repository has been archived by the owner on Sep 30, 2024. It is now read-only.

3.5.0 Release #4174

Closed
39 of 74 tasks
beyang opened this issue May 22, 2019 · 0 comments
Closed
39 of 74 tasks

3.5.0 Release #4174

beyang opened this issue May 22, 2019 · 0 comments
Assignees
Milestone

Comments

@beyang
Copy link
Member

beyang commented May 22, 2019

3.5 Release (2019-06-20)

At the start of the month (2019-06-01)

  • Choose dates/times for the steps in this release process and update this issue template accordingly. Note that this template references working days, which do not include weekends or holidays observed by Sourcegraph.
  • Add events to the shared Release Schedule calendar in Google and invite team@sourcegraph.com.
    • Creating the release branch. (2019-06-14 (Friday) @ 5PM PST)
    • Tagging the final release. (2019-06-19 (Wednesday) @ 5PM PST)
    • Publishing the blog post.
  • Send message to #dev-announce with a link to this tracking issue to notify the team of the release schedule.
  • Create the retrospective document and schedule the retrospective meeting within a few days after the release (send calendar invites to team@sourcegraph.com).
  • Create reminders for yourself to preform the remaining sections in this checklist at appropriate times.

5 working days before release (2019-06-13)

  • Private message each teammate who has open issues in the milestone and ask them to remove any issues that won't be done by the time that the release branch is scheduled to be created.
  • Verify that there is a draft of the blog post and that it will be ready to be merged on time.

3 working days before release (2019-06-17)

  • HH:MM AM/PM PT Add a new section header for this version to the CHANGELOG immediately under the ## Unreleased changes heading and add new empty sections under ## Unreleased changes (example).
  • Create the MAJOR.MINOR branch for this release off of the changelog commit that you created in the previous step.
  • Tag the first release candidate vMAJOR.MINOR.0-rc.1:
    VERSION='vMAJOR.MINOR.0-rc.1' bash -c 'git tag -a "$VERSION" -m "$VERSION" && git push origin "$VERSION"'
    
  • Send a message to #dev-announce to announce the release candidate.
  • Run Sourcegraph Docker image with no previous data.
  • Upgrade Sourcegraph Docker image from previous released version.
    • Run the previous version of Sourcegraph.
      CLEAN=true IMAGE=sourcegraph/server:$OLDVERSION ./dev/run-server-image.sh
      
    • Initialize the site by creating an admin account.
    • Add a public repository (i.e. https://github.com/sourcegraph/sourcegraph).
    • Add a private repository (i.e. https://github.com/sourcegraph/infrastructure).
    • Stop the previous version of Sourcegraph and run the new version of Sourcegraph with the same data.
      CLEAN=true IMAGE=sourcegraph/server:vMAJOR.minor.0-rc.1 ./dev/run-server-image.sh
      
    • Verify that code search returns results as you expect (depending on the repositories that you added).
    • Verify that basic code intelligence works on Go or TypeScript.
  • Run the new version of Sourcegraph on a clean Kubernetes cluster with no previous data.
  • Upgrade Sourcegraph on a Kubernetes cluster.
  • Send a message to #dev-announce to report whether any release blocking issues were found.
  • Add any release blocking issues as checklist items here and start working to resolve them.
  • Review all open issues in the release milestone that aren't blocking and ask assignees to triage them to a different milestone (backlog preferred).
  • Remind the team that they should submit retrospective feedback 24 hours before the scheduled retrospective meeting.

As necessary

  • git cherry-pick bugfix (not feature!) commits from master into the release branch.
  • Re-test any flows that might have been impacted by commits that have been cherry picked into the release branch.
  • Tag additional release candidates.

1 working day before release (2019-06-19)

  • HH:MM AM/PM PT Tag the final release.
    VERSION='vMAJOR.MINOR.0' bash -c 'git tag -a "$VERSION" -m "$VERSION" && git push origin "$VERSION"'
    
  • Send a message to #dev-announce to announce the final release.
  • Verify that all changes that have been cherry picked onto the release branch have been moved to the approriate section of the CHANGELOG on master.
  • Wait for the final Docker images to be available at https://hub.docker.com/r/sourcegraph/server/tags.
  • In deploy-sourcegraph:
    • Wait for Renovate to open a PR to update the image tags and merge that PR (example).
    • Create the MAJOR.MINOR release branch from this commit.
    • Tag the vMAJOR.MINOR.0 release at this commit.
      VERSION='vMAJOR.MINOR.0' bash -c 'git tag -a "$VERSION" -m "$VERSION" && git push origin "$VERSION"'
      
  • Open (but do not merge) PRs that do the following:
    • Update the documented version of Sourcegraph (example).
    find . -type f -name '*.md' -exec sed -i '' -E 's/sourcegraph\/server:[0-9\.]+/sourcegraph\/server:$NEWVERSION/g' {} +
    
  • 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).
  • Verify that the blog post is ready to be merged.

By 10am PT on the 20th

  • Merge the docs PRs created in the previous step.
  • Merge the blog post (example).
  • Close this issue.
  • Close the milestone.
  • Notify the next release captain that they are on duty for the next release.
@beyang beyang added this to the 3.5 milestone May 22, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants