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 a "promoted" version that we've tested in product.

Prereleasing

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.

Testing in product

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 11 packages:

  • @patternfly/patternfly (get this number from NPM or Github
  • @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/react-catalog-view-extension@1.3.14 to latest from 1.2.5
npm dist-tag add @patternfly/react-catalog-view-extension@1.3.14 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! 🎉