We ship once a month, on the Thursday before the 1st. While not necessary, followup minor/patch releases may be done if warranted. The planned ship dates are added to the internal Lighthouse calendar.
Release manager is appointed, according to the list below. However, if the appointed manager is absent, the next engineer in line in the list would own it.
bckenny, paulirish, patrickhulce
Release manager follows the below Release Process.
- Release mgr copies changelog to a new Releases. Tags and ships it.
- Include a line of
We expect this release to ship in the DevTools of Chrome XX
.
- Include a line of
- Release mgr tells the LH public Hangout chat about the new version.
- V & Kayce write and publish the /updates blog post
- Paul writes the tweet (linking the /updates post) and sends it on @____lighthouse.
- Paul prepares a roll for DevTools frontend
We follow semver versioning semantics (vMajor.Minor.Patch
), to align with the greater Node community. Generally, this means our bi-weekly releases will bump a minor. Though we will release a new patch version if high-priority fixes are required before the next schedule release. Additionally, if a schedule release contains no new features, then we'll only bump the patch version.
# Run the tests
bash ./lighthouse-core/scripts/release/test.sh
# Prepare the commit, replace x.x.x with the desired version
bash ./lighthouse-core/scripts/release/prepare-commit.sh x.x.x
# Open the PR and await merge...
echo "It's been merged! 🎉"
# Run the tests again :)
bash ./lighthouse-core/scripts/release/test.sh
# Package everything for publishing
bash ./lighthouse-core/scripts/release/prepare-package.sh
# Upload the extension
node build/build-extension.js package; cd dist/extension-package/
open https://chrome.google.com/webstore/developer/edit/blipmdconlkpinefehnmjammfjpmpbjk
echo "Upload the package zip to CWS dev dashboard"
# Be in lighthouse-extension-owners group
# Open <https://chrome.google.com/webstore/developer/dashboard>
# Click _Edit_ on lighthouse
# _Upload Updated Package_
# Select `lighthouse-4.X.X.zip`
# _Publish_ at the bottom
# Make sure you're in the Lighthouse pristine repo we just tested.
cd ../lighthouse-pristine
# Publish to NPM
npm publish
# Publish viewer
yarn deploy-viewer
# * Tell the world!!! *
echo "Complete the _Release publicity_ tasks documented above"