A CLI for changelog and release notes generation based on tags and commit history.
If you have npx
available, you can directly use it without explicit installation:
% npx @eqworks/release --help
Otherwise, or when explicitly local installation is needed:
% yarn global add @eqworks/release
% # or
% npm i -g @eqworks/release
Then:
% release --help
For best formatting result, follow the conventions below:
category - message
Where category
can have a sub-category
following a forward slash /
.
main-category/sub-category - message
For example:
builder/details - show job viz for newly created, unprocessed jobs
Since v1.3.0, a generic others
category is added to capture all unparsed commit messages.
Check the detailed git conventions for more details.
In any git repo (suppose the tagging pattern is v*
, you can use --pattern
option to fit yours), run:
% npx @eqworks/release changelog --print --skip alpha
The result is in markdown formatted changelog.
Since v2.0.0, an NLP-based auto labelling mechanism has been added, along with the sub-command changelog
intended for changelog-like formatting (as shown above).
Since v3.0.0, the NLP model has been retrained to adhere to Keep a Changelog conventions.
The sub-command notes
can be used for more category-oriented formatting:
% npx @eqworks/release notes --print --skip alpha
The result is in markdown formatted release notes.
Since v3.1.0, the sub-command tag
identifies the version inside the commit messages and can either create a local tag with the commit version as its name or make a GitHub release using the --github
flag:
% npx @eqworks/release tag --github
The above command reads from the latest three commits (by default, change with the -n
flag.)
When running the CLI commands on Node.js 18, you may need to add the --no-experimental-fetch
flag to the NODE_OPTIONS
environment variable. This flag is required to disable the experimental fetch feature introduced in Node.js 18.
To execute the CLI commands with the --no-experimental-fetch
flag, use the following syntax:
% NODE_OPTIONS=--no-experimental-fetch npx @eqworks/release <command>