This file describes the process for publishing a new version of the app as a GitHub release.
Releases are managed through the GitHub Releases page.
Release names follow the Semantic Versioning standard.
Follow the steps below to package and release a new version.
- Checkout the main branch and pull the latest changes.
- Create and checkout a new release branch, in the pattern of
1.0.x-release.- Note:
xis literal, to aid reuse of same branch for minor bugfixes.
- Note:
git pushthe new branch.- Create a new annotated tag with the version number, e.g.,
git tag -as v1.0.0 -m "v1.0.0".- IMPORTANT: make sure the tag abides by the format
vX.Y.ZwhereX,Y, andZare integers. It is important that the tag name has a different format than any branch name to avoid confusion with Bundler.
- IMPORTANT: make sure the tag abides by the format
- Push the tag to the remote repository, e.g.,
git push origin refs/tags/v1.0.0.- Avoid
git push --tags, to not accidentally push random assorted local tags.
- Avoid
- GitHub Actions will automatically create a new release on the GitHub Releases page with release notes. Confirm that the release was successfully published there and that all intended commits are included in the release.
- Fix bug in the main branch, via normal PR process.
For any release that has the bug:
2. Create a temp branch off any live release branch that has the bug.
- Using a branch, which is then PR’d, ensures traceability and inclusion of an item in the generated release notes.
3. Cherry-pick the fix commits to the temp branch.
4. git push the temp branch.
5. Issue a PR to merge to the release branch.
- Once the pull request is approved and merged, checkout the release branch and pull the latest changes.
- Create a new annotated tag with the version number, at the point of the release branch with the fix, e.g.,
git tag -as v1.0.1 -m "v1.0.1". - Push the tag to the remote repository, e.g.,
git push origin refs/tags/v1.0.1.- Again, better to avoid
git push --tags.
- Again, better to avoid
- Github Actions will create the release and pull in the fix PR's to the changelog.
