Skip to content

How to Run a Release

Marty Brutvan edited this page Sep 5, 2024 · 32 revisions

Schedule

A scheduled release for the NYPL Reservoir Design System React Library will be completed bi-weekly on Thursday mornings. This schedule is in alignment with the Reservoir 2-week development sprint cycles.

Process

  1. Switch to the development branch and pull the latest code. Choose a semver number for the release and create a new branch using the following naming convention: release-x.x.x where x.x.x is the new semver number.

  2. Switch to the new release prep branch and run npm version [<newversion> | major | minor | patch | build] from the command prompt. Assuming you select the correct newversion value, this will automatically update package.json and package-lock.json to the correct version number.

  3. Edit the CHANGELOG so that all of the changes included in the Prerelease section now fall within a section named with the release number from step 1. Ensure that any breaking changes are listed in a Breaking Changes subsection.

  4. For all components that have been updated or added in the new release, update the Latest Version tables and the component changelogs with the new server number and, in the case of the component changelogs, add the date of the new release. During development, the word Prerelease will be used as a placeholder for the new version number. This should make it easy to search the code for the locations that need to be updated in this step.

  5. commit and push the release prep branch to GitHub. On GitHub, make a PR from the new release prep branch into the development branch and request appropriate reviewers. Title the PR Prep for Release vX.X.X and add the Release label.

  6. Once the PR is approved, merge it into the development branch.

  7. Make a new PR from the development branch into the release branch and request the appropriate reviewers. Title the PR Release vX.X.X. Be sure to paste the release notes from the CHANGELOG into the PR description.

  8. Once the PR is approved, merge it into the release branch.

  9. Github Actions will create a git tag and release for this version automatically with the commit description as the release and tag body. You may optionally edit this on the Github releases page.

  10. Github Actions will publish the release to npm. You should can make sure the workflow has completed on the "Actions" tab, and then double check it was published successfully on our package page.

  11. Currently, the Storybook documentation site needs to be manually deployed. To do so, once all the above steps are complete, (1) checkout the gh-pages branch, (2) merge the release branch into the gh-pages branch, (3) push the branch. Verify that the Storybook documentation site has been updated on Github Pages.

Announce the Release

Once the release has been completed, announce the release in the #design-system Slack channel using the following format:

@channel #release #reservoir #reactlibrary ⚛️
The NYPL Reservoir Design System React Library has been upgraded from #.#.# to #.#.#. The CHANGELOG can be viewed here: https://github.com/NYPL/nypl-design-system/blob/development/CHANGELOG.md

Release Highlights 🎉

  • [item]
  • [item]
  • etc.

What's Next for Reservoir 👀

  • [item]
  • [item]
  • etc.