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.