-
Notifications
You must be signed in to change notification settings - Fork 6
How to Run a Release
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.
-
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
wherex.x.x
is the new semver number. -
Switch to the new release prep branch and run
npm version [<newversion> | major | minor | patch | build]
from the command prompt. Assuming you select the correctnewversion
value, this will automatically updatepackage.json
andpackage-lock.json
to the correct version number. -
Edit the
CHANGELOG
so that all of the changes included in thePrerelease
section now fall within a section named with the release number from step 1. Ensure that any breaking changes are listed in aBreaking Changes
subsection. -
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 wordPrerelease
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. -
commit
andpush
the release prep branch to GitHub. On GitHub, make a PR from the new release prep branch into thedevelopment
branch and request appropriate reviewers. Title the PRPrep for Release vX.X.X
and add theRelease
label. -
Once the PR is approved, merge it into the
development
branch. -
Make a new PR from the
development
branch into therelease
branch and request the appropriate reviewers. Title the PRRelease vX.X.X
. Be sure to paste the release notes from theCHANGELOG
into the PR description. -
Once the PR is approved, merge it into the
release
branch. -
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.
-
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.
-
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 therelease
branch into thegh-pages
branch, (3) push the branch. Verify that the Storybook documentation site has been updated on Github Pages.
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.mdRelease Highlights 🎉
- [item]
- [item]
- etc.
What's Next for Reservoir 👀
- [item]
- [item]
- etc.
Still have questions? Want to improve this documentation? We're available on the #design-system slack channel.