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_TOKEN
environment variable with the github personal token value (you can use direnv)
$ npm run release
This command will:
- Create a new version based on the commit types from
HEAD
andpackage.json
version - Create the changelog with all the commits from
HEAD
and the last tag version following keepachangelog - Create a new commit to update the following files:
CHANGELOG.md
,package.json
andpackage-lock.json
- Create a new tag following the SemVer Standard
- Push this tag to the remote
- Trigger the new version publication