This guide highlights the release process for Phoenix packages. We currently publish the packages phoenix-event-display
and phoenix-ui-components
to npm.
There are two ways to make a release.
- Automated release using GitHub Actions.
- Manual release from local machine. (Not recommended)
- Go to the "Actions" tab of the Phoenix repository.
- Navigate to the
phoenix-release
workflow. - Click on the "Run workflow" menu.
- Specify the type of the next version update to be released and run the workflow.
- Possible options for the release type are:
patch
,minor
,major
,pre
,graduate
- See the Release commands section for details on each option.
- Possible options for the release type are:
If you are not a part of Phoenix on npm and want to make a release, you can ask 9inpachi or EdwardMoyse to add you to the npm org.
For a smooth release make sure to check the following points.
- The repository's origin is set to
HSF/phoenix
.
git remote set-url origin https://github.com/HSF/phoenix.git
- Angular is globally installed on the system.
npm install --global @angular/cli
- Clean
phoenix-ui-components
by removing thedist
and__ivy_ngcc__
directories inpackages/phoenix-ng/projects/phoenix-ui-components
if any.
In the terminal, navigate to the root directory of the Phoenix repo.
Then, login to npm in the terminal to be able to publish the packages.
npm login
You will also need a GitHub token with write permission for pushing the Git release tag. Follow this guide to get the access token.
Then you need to set the GH_TOKEN
environment variable in your terminal when running the release commands.
The release commands will then be structured like:
GH_TOKEN=<your_github_token> yarn release:<release_type>
Here's a list of the release commands.
yarn release:patch
- Will release a patch version of all the packages. (1.0.x where x will be updated)
yarn release:minor
- Will release a minor version of all the packages. (1.x.0 where x will be updated)
yarn release:major
- Will release a major version of all the packages. (x.0.0 where x will be updated)
yarn release:pre
- Will prerelease a patch version. (1.0.0-alpha-x - alpha suffix will be added and x will be updated with each release)
yarn release:graduate
- Will graduate a prerelease (the one we did above) to a full stable version removing the alpha suffix from the version. (If you don't graduate a prerelease, the normal release commands (
yarn release:major
,yarn release
etc.) will also prerelease with the alpha suffix)
- Will graduate a prerelease (the one we did above) to a full stable version removing the alpha suffix from the version. (If you don't graduate a prerelease, the normal release commands (
- All
yarn release:<release_type>
commands will- Release all the packages (
phoenix-event-display
andphoenix-ui-components
). - Deploy the API docs.
- Deploy the Angular application.
- Push a release tag to GitHub.
- Release all the packages (