Skip to content

Migration: changelog generation/parsing → go/changelog

The Conventional-Commits changelog generator and parser, GenerateFromRepo and its options, Parse, ParseFromArchive, FormatSummary, and the Changelog / Release / Entry / Category model: has been extracted verbatim into the standalone module gitlab.com/phpboyscout/go/changelog (v0.1.0).

The package took plain arguments and returned values (no Props, config, or logger) so there is no adapter and no facade. Only the import path changes.

Repoint the import

// before
import "gitlab.com/phpboyscout/go-tool-base/pkg/changelog"

// after
import "gitlab.com/phpboyscout/go/changelog"

The API is identical:

md, err := changelog.GenerateFromRepo(".", changelog.WithSinceTag("v1.2.0"))
cl := changelog.Parse(rawNotes)

Add the dependency:

go get gitlab.com/phpboyscout/go/[email protected]

What did not change

The built-in changelog CLI command is unchanged, it now calls the module through the same code path. Its behaviour and flags are the same; see the CLI reference.

Why it moved

changelog is a general-purpose utility, generate a changelog from a repo's Conventional-Commits history, or parse existing release notes into a typed model. Its graph is go-git, the leodido conventional-commits parser, x/mod, and cockroachdb/errors: no framework weight. Extracting it lets any tool reuse it, with its own release cadence and docs at changelog.go.phpboyscout.uk.