changelog_cli
CLI to generate an opinionated changelog.
By default it just generates the changelog based on the whole git history. You can pass custom --start
and --end
parameters which are git refs to get a subset of changes between two commits or tags. That was my main goal with this CLI as it doesn't necessarily require semantic versioning.
Installation
Pub.dev
If the CLI application is available on pub, activate globally via:
dart pub global activate changelog_cli
Or locally via:
dart pub global activate --source=path <path to this package>
Homebrew
You can install the CLI via Homebrew:
brew tap orestesgaolin/tap
brew install changelog_cli
Usage
Get usage information:
changelog_cli generate --help
Generate a changelog:
changelog_cli generate
# or more elaborate
changelog_cli generate --path ~/Projects/my-app --start 1.0.0 --end 1.1.0 --version 1.1.0 --limit 2000 --printer markdown
# or with custom formatting
changelog_cli generate --path packages/something --start $CM_PREVIOUS_COMMIT --version "Version $BUILD_VERSION ($PROJECT_BUILD_NUMBER)" --printer slack-markdown --group-by date-asc --date-format-locale en_US --date-format yyyy-MM-dd
# for monorepos tagged with my_package-x.y.z pattern
changelog_cli generate --path lib/packages/my_package --auto true --auto-tag-glob-pattern "my_package*"
You can get the previous tag using git command and then pass it to changelog_cli
:
git describe --tags --abbrev=0
changelog_cli generate --start changelog_cli-v0.0.2
Printers
simple
- simple text outputmarkdown
- markdown outputslack-markdown
- markdown output with Slack-specific formatting
Running Tests with coverage 🧪
To run all unit tests use the following command:
$ dart pub global activate coverage
$ dart test --coverage=coverage
$ dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info
To view the generated coverage report you can use lcov.
# Generate Coverage Report
$ genhtml coverage/lcov.info -o coverage/
# Open Coverage Report
$ open coverage/index.html
Libraries
- changelog_cli
- changelog_cli, A Very Good Project created by Very Good CLI.