changelog_cli 0.5.1 changelog_cli: ^0.5.1 copied to clipboard
Simple CLI to generate basic changelog for your project using conventional commits
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