Releases are handled by a mostly automated process consisting of:
- Manual
release.shscripts to start/finish releases - Typescript scripts in
scripts/changes/ - The release.yml Github workflow
When you are ready to begin the release process:
- Start with a clean git working directory on the
devbranch - Pull latest
dev - Manually run
./scripts/changes/release.sh start- creates the
releasebranch fromdev - merges in latest
main - pushes to
origin/release
- creates the
- The
release.ymlworkflow will see thereleasebranch with change files in it:- This triggers the "PR" step and runs
scripts/changes/pr.ts - This will create a new
release-prbranch fromrelease - Runs
scripts/changes/version.ts- Updates versions
- Generate changelogs
- Deletes change files
- Opens a PR to the
releasebranch
- This triggers the "PR" step and runs
- Once that PR is merged, the
release.ymlworkflow will run again againstreleaseand see no change files:- This triggers the "publish" step and runs
scripts/changes/publish.ts - Publishes all packages to npm
- Tags the commits and pushes tags to the origin
- Creates a github release
- This triggers the "publish" step and runs
- Pull latest
releasebranch - Manually run
./scripts/changes/release.sh finish- Merges the
releasebranch intodevandmainand pushes to origin - Deletes the
releasebranch
- Merges the
You may need to make changes to a release while the release PR is open - to do so:
- Branch off of
releaseand make whatever changes you need - Add changes files as needed
- Push your branch to GitHub and PR it to
release - Once reviewed/approved, merge the PR to the
releasebranch - This will trigger an update of the release PR created above
Hotfix releases operate like the above but off of a hotfix branch that is created from the proper version tag we are hotfixing.
- Create a
hotfixbranch from git tag for the release we are hotfixinggit checkout -b hotfix {tag}git push origin --set-upstream hotfix
- Branch from hotfix and make changes
- PR those changes to
hotfixwith a change file - Merge into
hotfix - The
release.ymlworkflow will see thehotfixbranch with change files in it:- This triggers the "PR" step (
scripts/changes/pr.ts) - This will create a new branch from
hotfix - Update the versions in the new branch
- Generate the proper
CHANGELOG.mdentries - Delete the change files
- Open a PR to the
hotfixbranch
- This triggers the "PR" step (
- Once that PR is merged, the
release.ymlworkflow will run again againsthotfixand see no change files:- This triggers the "publish" step (
scripts/changes/publish.ts) - Publishes all packages to npm
- Tags the commits and pushes tags to the origin
- Creates a github release
- This triggers the "publish" step (
- Merge the
hotfixbranch intodevandmainand push to origin - Deletes the
hotfixbranch