Skip to content

Stentor is a CLI for generating a change log or release notes from a set of fragment files and templates.

License

Notifications You must be signed in to change notification settings

wfscheper/stentor

Repository files navigation

stentor

noun

  1. (in the Iliad) a Greek herald with a loud voice.
  2. (lowercase) a person having a very loud or powerful voice.
  3. (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.

Badges

Build codecov License Contributor Covenant

Installation

Binary

Download a pre-built binary for your OS and Architecture from the releases page.

Go

You can also build stentor directly using go install:

go install github.com/wfscheper/stentor/cmd/stentor@latest

Usage

Setup

This example assumes that there is already a v0.1.0 tag.

  1. Create a .stentor.d directory in your git repository.

    mkdir .stentor.d

    This is where your fragments, configuration, and templates will go.

  2. Create a minimal stentor config file.

    $ cat >.stentor.d/stentor.toml << EOF
    [stentor]
    repository = "https://github.com/myname/myrepo"
    EOF
  3. 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
  4. 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"
  5. 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")