workgroups/vendor/github.com/goreleaser/chglog
Marvin Preuss 1d4ae27878
All checks were successful
continuous-integration/drone/push Build is passing
ci: drone yaml with reusable anchors
2021-09-24 17:34:17 +02:00
..
.gitignore ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
.golangci.yml ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
.goreleaser.yml ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
add.go ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
conventional_commits.go ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
files.go ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
format.go ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
git.go ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
init.go ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
LICENSE ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
Makefile ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
README.md ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
templates.go ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00
types.go ci: drone yaml with reusable anchors 2021-09-24 17:34:17 +02:00

GoReleaser Logo

chglog

chglog is a changelog management library and tool

Release Software License GitHub Actions Codecov branch Go Report Card Go Doc Powered By: GoReleaser

Why

While there are other tool out there that will create a changelog output as part of their workflow none of the ones I could find did so in a way that allowed formatting the output via multiple templates.

The need to multiple output formats was being driven by the desire to add changelog support to https://github.com/goreleaser/nfpm and the deb and rpm changelog formats not being the same.

Goals

  • be simple to use
  • provide decent default templates for deb, rpm, release, and repo style changelog formats
  • be distributed as a single binary
  • reproducible results
    • depend on the fewer external things as possible
    • store changelog in a transportable format (.yml)
  • be possible to use it as a lib in other go projects (namely [goreleaser][] itself)

Install

go get github.com/djgilcrease/chglog/cmd/chglog

Usage

The first steps are to run chglog config to initialize a config file (.chglog.yml) and edit the generated file according to your needs:

conventional-commits: false
deb:
  distribution: []
  urgency: ""
debug: false
owner: ""
package-name: ""

The next step is to run chglog init.

- semver: 0.0.1
  date: 2019-10-18T16:05:33-07:00
  packager: dj gilcrease <example@example.com>
  changes:
  - commit: 2c499787328348f09ae1e8f03757c6483b9a938a
    note: |-
      oops i forgot to use Conventional Commits style message

      This should NOT break anything even if I am asking to build the changelog using Conventional Commits style message      
  - commit: 3ec1e9a60d07cc060cee727c97ffc8aac5713943
    note: |-
      feat: added file two feature

      BREAKING CHANGE: this is a backwards incompatible change      
  - commit: 2cc00abc77d401a541d18c26e5c7fbef1effd3ed
    note: |-
      feat: added the fileone feature

      * This is a test repo
      * so ya!      

Then to generate a CHANGELOG.md file you would do chglog format --template repo > CHANGELOG.md

Now whenever you goto do another release you would do chglog add --version v#.#.# (version MUST be semver format)

And that's it!

Usage as lib

You can look at the code of chglog itself to see how to use it as a library

Status

  • alpha

Donate

Donations are very much appreciated! You can donate/sponsor on the main goreleaser opencollective! It's easy and will surely help the developers at least buy some or 🍺!

Stargazers over time

goreleaser/chglog stargazers over time


Would you like to fix something in the documentation? Feel free to open an issue.