git-tag-changelog

Create change logs using git tag annotations

Usage no npm install needed!

<script type="module">
  import gitTagChangelog from 'https://cdn.skypack.dev/git-tag-changelog';
</script>

README

git-tag-changelog

NPM Version Build Status Coverage Status Dependency Status devDependency Status

Create change logs, saving them in git tag annotations

This module relies on the defacto standard of semver like tags existing within a repository. i.e., v1.0.0, v1.5.0, v2.0.0, etc.

It uses these tags to determine commits, find delta commits between tags, and to generate changelogs based on those delta commits. These changelogs, in markdown format, are then saved to the annotation of a git tag.

You can push these tags up to origin, and if you are using Github, it will automatically show up in the "releases" section of the repo.

Getting Started

Install the module with: npm install git-tag-changelog

Usage

Installing this module exposes a CLI command you can use:

$ cl -h
usage: cl [ACTION] [OPTIONS]

actions: 'list' | 'delta' | 'release' | 'nuclear'
options:
    -h, --help              Print this help and exit.
    -d, --dry               Dry run. Does not actually execute command.
    -l NUM, --logLevel=NUM  Logging level, valid values: 10, 20, 30, 40, 50.
    --v1=ARG                For 'delta' action. A semver version.
    --v2=ARG                For 'delta' action. A semver version.
    --version=ARG           For 'release' and 'rerelease' action. The semver of
                            the release.
    --raw                   Display raw results instead.
    --yesReally             Confirmation flag for the 'nuclear' action.

sample usage:
    * show all git tags that look like releases (semver):
        cl list
    * show semantic changes between two tags (order agnostic):
        cl delta --v1=4.0.0 --v2=6.0.0
    * recreate a changelog for an existing version:
        cl rerelease --version=7.7.0
    * create a changelog for a new release, and put it in the annotation of a git tag:
        cl release --version=8.0.0
    * DANGER: loop through all existing tags and recreate changelogs:
        cl nuclear --yesReally

Contributing

Ensure that all linting and codestyle tasks are passing. Add unit tests for any new or changed functionality.

To start contributing, install the git prepush hooks:

make githooks

Before committing, lint and test your code using the included Makefile:

make prepush

License

Copyright (c) 2019 Alex Liu

Licensed under the MIT license.