• Stars
    star
    251
  • Rank 161,862 (Top 4 %)
  • Language
    Go
  • License
    MIT License
  • Created about 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

chglog is a changelog management library and tool

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 repository 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/goreleaser/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 <[email protected]>
  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.

More Repositories

1

goreleaser

Deliver Go binaries as fast and easily as possible
Go
13,560
star
2

nfpm

nFPM is Not FPM - a simple deb, rpm, apk, ipk, and arch linux packager written in Go
Go
2,128
star
3

goreleaser-action

GitHub Action for GoReleaser
TypeScript
849
star
4

godownloader

[DEPRECATED] Download Go binaries as fast and easily as possible.
Go
443
star
5

goreleaser-cross

Docker image for Golang cross-compiling with CGO
Shell
142
star
6

fileglob

A file globbing library.
Go
66
star
7

goreleaser-pro

Deliver Go binaries as fast, easily and pro as possible.
Go
58
star
8

goreleaser-example-supply-chain

Example goreleaser + github actions config with keyless signing and SBOM generation
Go
55
star
9

goreleaser-example-zig-cgo

A showcase of using Zig to cross-compile Go application with GoReleaser
Go
39
star
10

goreleaser-cross-example

Go
33
star
11

example

Example GoReleaser project
Go
27
star
12

homebrew-tap

Homebrew Formulae to @goreleaser binaries, powered by @goreleaser
Ruby
12
star
13

old-go-releaser

[DEPRECATED] A script to build and release go binaries to github releases
Shell
10
star
14

community

GoReleaser Community Resources
9
star
15

goreleaser-example-slsa-provenance

A demonstration of showing how to use 💃SLSA 3 Generic Generator with GoReleaser to release artifacts while generating signed SLSA provenance
Go
9
star
16

get

Get the latest goreleaser binary
Shell
8
star
17

scoop-bucket

Scoop bucket for @goreleaser binaries, powered by @goreleaser
6
star
18

archive

Moved to https://github.com/goreleaser/goreleaser/tree/master/pkg/archive
Go
5
star
19

artwork

logos & art
5
star
20

goreleaser-azure-devops-extension

Azure DevOps Extension for GoReleaser
TypeScript
4
star
21

goinstall

[DEPRECATED] curl | bash goreleaser projects
Shell
4
star
22

goreleaser-pro-split-merge-example

Example repository using the upcoming split/merge feature of @goreleaser pro
Dockerfile
4
star
23

.github

Smarty
4
star
24

goreleaser-pro-monorepo-example

GoReleaser Pro Monorepo example with GitHub Actions
Go
4
star
25

nur

nix user repository for goreleaser
Nix
3
star
26

goreleaser-pro-split-merge-example-real

Example repository using the split/merge feature of @goreleaser pro to build windows docker images
Dockerfile
3
star
27

fish-food

Gofish Rigs to @goreleaser binaries, powered by @goreleaser
Lua
2
star
28

users

graphs GoReleaser usage in the wild
Go
2
star
29

goreleaser-cross-toolchains

Dockerfile
2
star
30

example-mod-proxy

Example of project using @goreleaser's gomod.proxy feature.
Go
2
star
31

goreleaser-example-sign-with-env

Example signing with cosign using --key=env://KEY
Go
1
star
32

example-simple

Probably the simplest possible @goreleaser example
Makefile
1
star
33

tf

Terraform resources for GoReleaser's organization
HCL
1
star
34

acceptance-tests

Acceptance tests setup et al for GoReleaser.
Shell
1
star