GoForge — Build | Test | Ship | Collaborate GoForge — Build | Test | Ship | Collaborate
v1.0.2

GoReleaser

The release pipeline, rewritten in Go+

$ go install goforge.dev/gpreleaser/cmd/goreleaser@v1.0.2

Current release — v1.0.2. goforge.dev/gpreleaser is a Go+ reimplementation of goreleaser/goreleaser v2.17.0 whose entire pipeline is authored in Go+, with goreleaser check output byte-identical to upstream. The installable artifact is still goreleaser — install with go install goforge.dev/gpreleaser/cmd/goreleaser@v1.0.2. The current line executes git through std/process and consumes Go+ stdlib v0.207.0.

GoForge GoReleaser targets goreleaser/goreleaser v2.17.0. It builds, archives, packages, and publishes Go releases — and its ~60-stage release pipeline is now Go+.

Parity

goreleaser check is byte-identical to the pinned upstream binary (across valid, release-disabled, and passing configs), build --snapshot works, and the test suite is green — 120 packages pass with zero rewrite-specific failures (the sole failing package needs a live Docker daemon and fails identically on upstream).

Go+ authorship

204 .gp files cover the hand-written source — every internal/pipe/ stage (archive, build, docker, brew, nix, publish, release, changelog, …), internal/builders, internal/pipeline, pkg, and the cmd cobra commands. Only the //go:embed template shims and one generated license table stay hand-off Go. Generation is deterministic and goplus gen -check is clean against released goplus v0.139.0.

Honest about its shape: gpreleaser introduces zero enums. Its discriminators are wire-coupled — artifact.Type serializes to dist/artifacts.json, context.Action’s zero value is the load-bearing default, and the config format/type/mode/provider kinds are YAML strings — so the wire and config formats are preserved byte-for-byte rather than reshaped.

Notes

Faithful to pinned upstream MIT provenance (© 2016-2026 Carlos Alexandro Becker). Third-party dependencies are unchanged. See the repository’s PARITY.md for the phase-by-phase ledger.