Skip to content

Release process

Adi Dahiya edited this page Jan 15, 2018 · 43 revisions

Prepare the release commit

  1. Ensure all relevant PRs have merged to master.

  2. Create release branch based off latest master. Use SemVer to come up with the next version number: [major].[minor].[patch] (all three numbers are required).

    git checkout master
    git pull
    git checkout -b release/[version number]
    
  3. Compile the monorepo with yarn compile-libs.

  4. Compile the publishable distributions and copy over artifacts to the gh-pages folder with yarn dist.

  5. Update the root package.json version (match core's version, or bump a patch version if core wasn't changed).

  6. Review and commit the changes.

    git commit -a -m "Prepare release v[version number]"
    

Review the release PR

  1. Create a PR on GitHub. Write the release notes in the description.
  2. Perform regression pass on the release preview artifacts.
  3. Merge the release PR.
  4. With the latest docs built locally (yarn dist), run yarn deploy to push changes to the live site hosted from the master branch.

Writing release notes

See other releases for example format. We typically describe changes using the following groups:

  1. 🔥 BREAKING
  2. NEW
  3. Fixed
  4. Changed
  5. Deprecated

A 🌟 is used to indicate release highlights: features or fixes of particular note.

A useful way to determine exactly what happened in a release is to diff the commits with the previous version or use the relevant milestone.

Publish to NPM

  1. Run lerna publish --skip-npm --scope '@blueprintjs/{core,datetime,labs,table}' (or some appropriate subset of the packages).
  2. Interactively pick version numbers.
  3. Review the commit which Lerna just produced.
    • Manually audit the dependencies between packages. This is an important step as not all packages need to depend on the latest version of the core package.
    • ⚠️ Lerna updates transitive package dependencies, so you'll need to revert those changes (unless datetime does actually require the latest version of core, for instance).
  4. Push to master with tags: git push origin master --follow-tags.
  5. Attach release notes to the new tags which were produced in the Github UI.
Clone this wiki locally