Release Notes CLI
About
Release Notes CLI is a console tool for automated release notes management around traditional CHANGELOG files and our generalized Release Notes Schema Specification.
Installation
$ yarn global add @release-notes/cli
# or
$ npm i -g @release-notes/cli
Usage
$ release-notes -h
release-notes <command> [args]
Commands:
release-notes init [file] Initialize release notes file
release-notes convert [file] Convert release notes to another format
release-notes validate [file] Validate release notes file
release-notes publish [file] Publish release notes file to the hub
(https://release-notes.com)
Options:
--version, -v Show version number
--help, -h Show help
Initialize Release Notes
$ release-notes init [options] [file]
Parameter | Default Value | Description |
---|---|---|
--help, -h | false |
Show help |
--file, -f | "./release-notes.yml" |
Path to the release-notes.yml file to create. |
--title, -t | "Release Notes of something awesome" |
Title of the project |
--description, -d | empty | Project description. Can be passed multiple times. |
Example
If you want to initialize a new release-notes.yml
file in your current working directory:
$ release-notes init --title 'Release notes of an awesome project.' \
-d 'You can pass multiple lines of description' \
-d 'This is a second line of description'
Convert Release Notes
$ release-notes convert [options] [file]
Parameter | Default Value | Description |
---|---|---|
--help, -h | false |
Show help |
--file, -f | "./release-notes.yml" |
Path to some release-notes or CHANGELOG file |
--type, -t | empty - required | The converter to use. Possible values are ["json", "release-notes", "yml", "changelog", "md"] |
release-notes.yml
definition:
Convert a CHANGELOG.md file into a $ release-notes convert -t release-notes CHANGELOG.md > release-notes.yml
release-notes.yml
file in the cwd to json and print it to stdout:
Converts the $ release-notes convert -t json
Convert a release-notes.yml file to a CHANGELOG.md:
$ release-notes convert -t changelog path-to/release-notes.yml > CHANGELOG.md
Print all released versions
The following command rely on jq a json processor for the console.
# show versions of the ./release-notes.yml file
$ release-notes convert -t json | jq .releases[].version
# or of a CHANGELOG.md file
$ release-notes convert -t json path-to/CHANGELOG.md | jq .releases[].version
Validate Release Notes
$ release-notes validate [options] [file]
Parameter | Default Value | Description |
---|---|---|
--help, -h | false |
Show help |
--file, -f | "./release-notes.yml" |
Path to a release-notes.yml file. |
Validate the release-notes.yml file in the CWD:
$ release-notes validate
The command will exit with code 0 on success. Any other exit code can be treated as failure.
Publish Release Notes
$ release-notes publish [options] [file]
In order to publish some release notes to the release notes hub run:
$ release-notes publish \
--scope my-user-name \
--name some-package-name \
--token PMxU6hEiLQPdoGkKy8rij1qsgrQmplk5gvWdJWubrNg= \
./CHANGELOG.md
This would publish your ./CHANGELOG.md definition to https://release-notes.com/@my-user-name/some-package-name.
You can also pass the parameters via environment variables, which may be handy.
Parameter | Environment variable | Description |
---|---|---|
--scope, -s | RELEASE_NOTES_SCOPE | Your release-notes hub username |
--name, -n | RELEASE_NOTES_NAME | Your release notes handle (only numbers, letters and dashes) |
--file, -f | RELEASE_NOTES_FILE | Path to a CHANGELOG.md or release-notes.yml file (default ./release-notes.yml) |
--token, -t | RELEASE_NOTES_TOKEN | Your release-notes api token see (https://release-notes.com/auth-tokens) |
Project Repositories
- Cockpit Repository
- Release Notes Specification
- Release Notes JSON-Schema Definitions
- Release Notes Node.js Lib
- Release Notes Hub
- Release Notes JS Coding Styles
LICENSE
The files in this archive are released under MIT license. You can find a copy of this license in LICENSE.