noun
- (in the Iliad) a Greek herald with a loud voice.
- (lowercase) a person having a very loud or powerful voice.
- (lowercase) a trumpet-shaped, ciliate protozoan of the genus Stentor.
stentor
is a CLI
for generating a change log or release notes
from a set of fragment files and templates.
It was inspired by towncrier
and git-chlog.
Download a pre-built binary for your OS and Architecture from the releases page.
You can also build stentor
directly using go install
:
go install github.com/wfscheper/stentor/cmd/stentor@latest
This example assumes that there is already a v0.1.0 tag.
-
Create a
.stentor.d
directory in your git repository.mkdir .stentor.d
This is where your fragments, configuration, and templates will go.
-
Create a minimal stentor config file.
$ cat >.stentor.d/stentor.toml << EOF [stentor] repository = "https://github.com/myname/myrepo" EOF
-
Create some fragment files.
$ cat >.stentor.d/1.feature.md << EOF Added the foo feature. The foo feature is full of foos, and is awesome. EOF $ cat >.stentor.d/2.fix.md << EOF Fixed parsing foos that contain special characters `fooer` no longer chokes when parsing a foo with the special characters `!@#$%`. EOF
-
Run stentor to see the output it would add to CHANGELOG.md.
$ stentor v0.2.0 v0.1.0 ## [v0.2.0] - 2006-01-02 ### Features - Added the foo feature The foo feature is full of foos, and is awesome. [#1](https://github.com/myname/myrepo/issues/1) ### Bug fixes - Fixed parsing foos that contain special characters `fooer` no longer chokes when parsing a foo with the special characters `!@#$%`. [#2](https://github.com/myname/myrepo/issues/2) [v0.2.0]: https://github.com/myname/myrepo/compare/v0.1.0...v0.2.0 --- $ git add .stentor.d/ $ git commit -m "Setup stentor to generate CHANGELOG.md"
-
Use the
-release
flag to consume the fragments and update the news file.Note: If a CHANGELOG.md does not exist already, one will be created.
$ stentor -release v0.2.0 v0.1.0 $ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: CHANGELOG.md deleted: .stentor.d/1.feature.md deleted: .stentor.d/2.fix.md no changes added to commit (use "git add" and/or "git commit -a")