The release process of new minor version consists of the following steps:
- Bump version in
package.jsonto the new versionv{MAJOR}.{MINOR}.0. - Update version tags in
packages/react-native-executorch/src/constants/modelUrls.tsto point to the properMINORversion and update tags on 🤗 huggingface. - Commit with a message 'Release v{MAJOR}.{MINOR}.0'. (We want to keep the latest
MINORversion on themainbranch.) - Create a new branch release branch
release/{MAJOR}.{MINOR}and push it to the remote. - Stability tests are performed on the release branch and all fixes to the new-found issues are pushed into the main branch and cherry-picked into the release branch. This allows for further development on the main branch without interfering with the release process.
- Once all tests are passed, tag the release branch with proper version tag
v{MAJOR}.{MINOR}.0and runnpm publish. - Create versioned docs by running from repo root
(cd docs && yarn docusaurus docs:version {MAJOR}.{MINOR}.x)(the 'x' part is intentional and is not to be substituted). - Create a PR with the updated docs.
- Create the release notes on GitHub.
- Update README.md with release video, if available.
- Update README.md links to release branch.
After the release branch is created and the version is published to npm we only allow for bug fixes and other critical changes to be included into the release branch. For this purpose we use git cherry-pick command.
Caution
Those changes should NOT include documentation changes, as they would be released automatically on the PR's merge and before the code changes are live. Instead create a separate PR with doc changes according to the Docs update section.
- Create a PR to the main branch.
- Once the PR is merged,
cherry-pickthe commit to the release branch. - Bump version in
package.jsonto the new versionv{MAJOR}.{MINOR}.{REVISION}. Commit with a message 'Release v{MAJOR}.{MINOR}.0'. - Tag release branch with proper version tag
v{MAJOR}.{MINOR}.{REVISION}and runnpm publish. - Create release notes on GitHub.
We are using docusaurus with docs versioning. By default when merging PRs with docs changes to the main branch, a GitHub workflow is started to publish the docs. For this reason those changes should be merged only once the related changes are released. When updating docs the following steps should be considered.
- Update the desired doc pages.
- Check if the changes are applicable to past versions, if so make the same updates to the correct files in versioned docs inside
react-native-executorch/docs/versioned_docs/version-{MAJOR}.{MINOR}.x. - Create a PR to the main branch.