autologs

Automatically create release notes and a changelog.

View the Project on GitHub ktmeaton/autologs

Autologs Logo

GitHub release Test Lint

Automatically create release notes and a changelog.

Install

# Download executable
curl https://raw.githubusercontent.com/ktmeaton/autologs/main/autologs -o autologs

# Add to path
sudo mv autologs /usr/local/bin/

# Test installation
autologs --help

Git Submodule

git submodule add https://github.com/ktmeaton/autologs
./autologs/autologs --help

Usage

List parameters autologs will use:

$ autologs

        Repository:      ktmeaton/autologs
        Commit URL:      https://github.com/ktmeaton/autologs/commit
        Old tag:         a4c28c5
        New tag:         HEAD
        Max Commits:     20
        Notes Directory: docs/notes
        Output File:     /dev/stdout
        Run:             ListParams

Commit History

autologs --commits --max-commits 3

Release Notes

autologs --release --old-tag v0.1.0 --new-tag v0.1.1 --max-commits 5

v0.1.1

Notes

  1. Deploy to Github Pages.

Pull Requests

Commits

The optional section “### Notes” will appear if a notes file matching the tag name exists. The notes file must contain an enumerated list of notes.

autologs parameters:
  --new-tag v0.1.0
  --notes-dir docs/notes/

matching file: docs/notes/Notes_v0.1.0.md
  1. Create repository
  1. Add scripts.
  1. Add release workflow.

Changelog

autologs --changelog -o CHANGELOG.md

See CHANGELOG.md for full output.

Help

$ autologs --help
Automatically create commit history, release notes, and a changelog.

Syntax: autologs [-h|-v|-o|--old-tag|--new-tag|--max-commits|--notes-dir|--commits|--release]

Options:
        -h, --help        Print this Help.
        -v, --version     Print software version and exit.
        -o, --output      Output file.                                [ default: /dev/stdout ]
        --old-tag         An earlier tag/commit hash to compare to.   [ default: a4c28c5 ]
        --new-tag         A newer tag/commit hash to compare to.      [ default: HEAD ]
        --max-commits     The maximum number of commits to print.     [ default: 20 ]
        --notes-dir       A directory containing manual notees.       [ default: docs/notes ]
        --commits         Print commit history.
        --release         Print release notes.
        --changelog       Print changelog.

Credits

Author: Katherine Eaton
Commit History Style: https://github.com/yuzu-emu/yuzu-mainline/releases
Argument Parsing: https://medium.com/@Drew_Stokes/bash-argument-parsing-54f3b81a6a8f
Help Function: https://opensource.com/article/19/12/help-bash-program