/release-notes-cli

:neckbeard::tada: Command line interface for managing release notes. :tada::neckbeard:

Primary LanguageJavaScriptMIT LicenseMIT

Release Notes CLI

Subscribe to Release Notes NPM Package Build Status MIT license

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"]

Convert a CHANGELOG.md file into a release-notes.yml definition:

$ release-notes convert -t release-notes CHANGELOG.md > release-notes.yml

Converts the release-notes.yml file in the cwd to json and print it to stdout:

$ 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


LICENSE

The files in this archive are released under MIT license. You can find a copy of this license in LICENSE.