Skip to content

Releasing

zallen edited this page Feb 12, 2020 · 13 revisions

Releasing

Whenever someone runs npm install @patternfly/react-core they aren't using our latest code from master. Instead, they're using an older promoted version that we released after we tested in product.

How we prerelease

Every commit to master runs lerna publish, which causes packages whose files have changed to be released to NPM under a prerelease tag. Some packages do not use prereleases, like react-icons, and some packages are not released at all like react-docs. Some like react-styled-system haven't been released in 7+ months, are unused, and can be ignored in all steps.

What we release

Since most of our @patternfly/react-* packages release on a prerelease cycle and might break products, we periodically promote them from "prerelease" to "latest" after testing in-product. The version numbers can be gathered by checking the commit messages of the latest few commits by patternfly-build in master's commit log. Grab the latest version numbers for the following 10 packages:

  • @patternfly/react-catalog-view-extension
  • @patternfly/react-charts
  • @patternfly/react-core
  • @patternfly/react-icons
  • @patternfly/react-inline-edit-extension
  • @patternfly/react-styles
  • @patternfly/react-table
  • @patternfly/react-tokens
  • @patternfly/react-topology
  • @patternfly/react-virtualized-extension

and share them with product testers. You might have to do this a few more times if product testers require changes to our packages to not break their products.

Promoting

Once product testers have approved, @redallen has written a script to echo the commands to promote, which should always be done manually after verification from products.

The output looks like:

Promoting @patternfly/[email protected] to latest from 1.2.5
npm dist-tag add @patternfly/[email protected] latest
...

Simply run the npm dist-tag add @patternfly/react-*@version latest commands after verifying the @version part is the same version as was tested in product. Once the 9 packages are promoted (react-icons being the exception), we have a release! 🎉

Clone this wiki locally