The release process is composed by multiple standards and utilities combined together:
- Conventional Commits based on the Angular convention are used to keep standard commit messages all around the project
- Semantic Versioning (SemVer) Specification is used to determine the version format of each new release
- conventional-changelog/standard-version automatizes the process of creating a new release based on the commit history
- conventional-github-releaser/conventional-github-releaser takes care of publishing the new release on GitHub
- Create a new GitHub Personal Token
- Set the
CONVENTIONAL_GITHUB_RELEASER_TOKENenvironment variable with the github personal token value (you can use direnv)
$ npm run releaseThis command will:
- Create a new version based on the commit types from
HEADandpackage.jsonversion - Create the changelog with all the commits from
HEADand the last tag version following keepachangelog - Create a new commit to update the following files:
CHANGELOG.md,package.jsonandpackage-lock.json - Create a new tag following the SemVer Standard
- Push this tag to the remote
- Trigger the new version publication