There are multiple things in this repository that can be released:
- The NPM packages listed in the workspace package.json file.
- Several container images like the SignallingWebServer or SFU
- The entire repo and built frontend as a Github release .zip/tar.gz archive
These releases are mostly handled by the changesets tooling.
If there is an existing Update CHANGELOG PR for the release branch you are targeting then do the following:
- Merging this PR into the release branch will consume change sets, update versions and changelogs.
- When a package.json file is pushed the publish action will start scanning packages in the repo.
- If a public package is found to have a greater version number than what is published, the new version will be published.
- A tag for the release will be made and a Github release with archives will be created.
If there is no PR for the release then no changesets have been added. If you still need to publish packages, then do the following:
- Make changes to the package.json files of the packages you require publishing.
- Make sure the version numbers are increased appropriately.
- Push these changes to the release branch.
- This will kick off the publish action and publish as described in the previous steps.
The order of publishing packages comes from the order of packages listed in the workspaces of package.json in the root folder. Packages that depend on other packages should always appear below their dependencies.
- Switch to the target branch (e.g 5.5)
- Make/merge any changes into
/SignallingWebServerdirectory - This will automatically kick off a this action for a build+push of the signalling server container image.
- Switch to the target branch (e.g 5.5)
- Make/merge any changes anywhere in the repo.
- Based on the changes made, bump the version number according to semver in the
RELEASE_VERSIONfile. - Commit the changes to
RELEASE_VERSIONfile. - This will automatically kick off a this action for tagged Github release with .zip and .tar.gz archives.
If multiple changes have been made, the order of releases should usually be like so:
- NPM packages
/SignallingWebServerRELEASE_VERSIONfile
You may get into a situation where a PR is failing Github Actions checks due to unpublished libraries, if you are certain everything is working and
up to date except that the libraries have not been published you can add this magic string to your commit #bypass-publish-check that will skip the check
of building everything using published libraries. Once the PR is landed, this check will run again and you can bump the library versions in a separate PR/commit.
If releasing for the latest UE version it is a good idea to merge the changes back into master. This can be done with a PR or simply with the git cli. When merging back to master, don't squash the commits. This will allow github to properly report how many commits ahead/behind the branch is.