The stream-chat-react package follows semantic versioning and the release is to a big part automated by semantic-release. The utility automates:
- Collects release notes from the commits added since the last release
- Creates a GitHub release
- Appends release notes to
CHANGELOG.md - Publishes a new package version to NPM.
In order the above generates correct outputs, each contributor should Angular's Commit Messag Format rules.
At the moment these manual actions have to be taken while doing a release:
- Make sure that all the new required features and bug fixes in peer dependency repositories
@stream-io/stream-chat-cssandstream-chat-jsare released - Make sure that the peer dependencies
@stream-io/stream-chat-cssandstream-chat-jsare installed at their latest version (seepackage.json,yarn.lock) - Create a new PR request from
developtomasterbranch.- The PR name should correspond to the next package version that is to be released (e.g. v1.1, v8, v9.1.2). You can use GitHub's CLI utility (e.g.
gh pr create —base master) - The PR description should list all the changes in form of commit messages (therefore we require squashing the commit history when merging into
develop).
- The PR name should correspond to the next package version that is to be released (e.g. v1.1, v8, v9.1.2). You can use GitHub's CLI utility (e.g.
- Solve potential conflicts between the two branches
- As
masterreceives updates only fromdevelop, there should be no conflicts.
- As
- Merge the PR and make sure that:
- the
CHANGELOG.mdfile has been correctly updated - a new (correct) version of the package has been published at NPM
- a new release with correct version number has be created in GitHub
- the
We maintain multiple demo applications developed with stream-chat-react. With each new version of the package, the applications should have their dependencies upgraded explicitly in their package.json.
The demo apps repositories are:
- GetStream/website-react-examples
- GetStream/watercooler