All ongoing development is done on the next
branch. When preparing for a release, we'll create a release
branch
which will eventually be merged into master
. This way, what's on master
is always what's published on npm
.
Release management is currently a manual process, to be performed by core team members only. Here's the process:
- Create a
release
branch, usually based onnext
. - Open a pull request for
release
->master
- Write the release notes in the PR description.
- Decide on the version number, taking care to follow semver. Do a pre-release before doing the actual release.
- Run
yarn bump
to increment the version number and commit it as "Release vX.X.X" (using the correct version number). - Tag the release commit with
git tag vX.X.X
(using the correct version number). - Push the release commit AND tag:
git push --follow-tags
- Publish each package (in
./packages
) to npm using the script below. - Create a new release on GitHub and copy the release notes there.
yarn build:packages
cd packages/react-async
npm publish pkg
cd ../react-async-devtools
npm publish pkg
Take care to publish the pkg
directory!