Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(releasing): update release process #11502

Merged
merged 2 commits into from
Oct 2, 2020
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 29 additions & 48 deletions docs/releasing.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@ We follow [semver](https://semver.org/) versioning semantics (`vMajor.Minor.Patc

## Release Process

Note: You'll wanna be on a Linux machine, since the Lightrider step will require that.

### On the scheduled release date

Before starting, you should announce to the LH eng channel that you are releasing,
Expand All @@ -57,68 +55,53 @@ and that no new PRs should be merged until you are done.
```sh
# Run the tests.
bash ./lighthouse-core/scripts/release/test.sh
# Change into the newly-created pristine folder.
cd ../lighthouse-pristine
```

Confirm DevTools integration will work:
```sh
# Checkout the DevTools Frontend code.
# See: https://chromium.googlesource.com/devtools/devtools-frontend/+/HEAD/docs/workflows.md

# Roll to DevTools Frontend folder.
# If at ~/src/devtools/devtools-frontend, the command to run is:
yarn devtools ~/src/devtools/devtools-frontend

# Build DevTools Frontend.
cd ~/src/devtools/devtools-frontend
gclient sync && autoninja -C out/Default

# Verify things work in DevTools.
# Mac:
"/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary" --custom-devtools-frontend=file://$HOME/src/devtools/devtools-frontend/out/Default/resources/inspector
# Change into the newly-created pristine folder.
cd ../lighthouse-pristine

# Verify that the Lighthouse panel still works. Consider the new features that have been added.
# If anything is wrong, stop releasing, investigate, land a fix and start over.
yarn test-devtools

# (TODO: when this is a required check in CI, can remove from release steps)
# Run webtests.
DEVTOOLS_PATH=~/src/devtools/devtools-frontend yarn test-devtools
# Do some manual testing on a number of sites.
yarn open-devtools

# Done with DevTools for now, will open a CL later.
```

Confirm Lightrider integration will work:
```sh
# See the internal README for updating Lighthouse.
# Leave pristine folder.
cd ../lighthouse
```

# Test things out locally, if happy, deploy to canary and see how the graphs react. 20 minutes should be enough time.
### Lightrider

# Do the stuff in "Test LR changes in Canary".
# go/lightrider-doc#test-lr-changes-in-canary
Confirm Lightrider integration will work.

# Verify that Lightrider works properly, and is generating reports fully. Consider the new features that have been added.
# Note: if the changes include proto changes make sure that the API has those new fields.
# If anything is wrong, stop releasing, investigate, land a fix and start over.
1. See the internal README for updating Lighthouse: go/lightrider-doc
1. Roll to the canary feed in a workspace
1. Run the tests
1. Update/fix any failing tests
1. All good: Hold on submitting a CL until after cutting a release
adamraine marked this conversation as resolved.
Show resolved Hide resolved

# For bonus points, add some tests covering new features. Either a new test, or an extra
# assertion in an existing test.
```
### Open the PR

Now that the integrations are confirmed to work, go back to `lighthouse` folder.

```sh
# Prepare the commit, replace x.x.x with the desired version
bash ./lighthouse-core/scripts/release/prepare-commit.sh x.x.x

# Fix-up the CHANGELOG.

# Rebaseline DevTools tests one more time (only version number should change).
yarn update:test-devtools
```

1. Edit the CHANGELOG before opening the PR
connorjclark marked this conversation as resolved.
Show resolved Hide resolved
1. Open the PR with title `vx.y.z`
connorjclark marked this conversation as resolved.
Show resolved Hide resolved
1. Hold until approved and merged

# Open PR with title `vx.x.x` and await merge...
echo "It's been merged! 🎉"
### Cut the release

```sh
# One last test (this script uses origin/master, so we also get the commit with the new changelog - that commit should be HEAD).
bash ./lighthouse-core/scripts/release/test.sh
# Package everything for publishing
Expand All @@ -139,7 +122,13 @@ npm publish

# Publish viewer.
yarn deploy-viewer
```

### Extensions

If the extensions changed, publish them.

```sh
# Publish the extensions (if it changed).
open https://chrome.google.com/webstore/developer/edit/blipmdconlkpinefehnmjammfjpmpbjk
cd dist/extension-package/
Expand All @@ -162,10 +151,6 @@ echo "Complete the _Release publicity_ tasks documented above"

### Chromium CL

If this is a branching week, wait until _after_ the branch point email, then land the CL.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😢

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh, you're not in this group chat. no one responded, so..
image


Otherwise, you can land it immediately.

```sh
git checkout vx.x.x # Checkout the specific version.
yarn build-devtools
Expand All @@ -176,7 +161,3 @@ git new-branch rls
git commit -am "[Lighthouse] Roll Lighthouse x.x.x\n\nBug: 772558"
connorjclark marked this conversation as resolved.
Show resolved Hide resolved
git cl upload --bypass-hooks
```

### The following Monday

Evaluate LR staging, if all looks good, promote to production!