v0.29.0
🚀 Features
-
(cmd) Add --build to heraut release for build-id release flows - (280b29d) by @bchatard
Mirror heraut changelog --build: --build requires --version, the value is
validated via app.ValidateBuildID, and it is passed to NewResolver, which renders
{build} into the tag and returns a StaticResolver. The release pipeline consumes
result.Tag unchanged, so no pipeline/resolver change is needed — the build path
already existed (deferred from T52). Build-id teams can now run a full release
(changelog -> tag -> publish) per CI build. release-per-build is allowed freely:
passing both --version and --build is already a deliberate, scripted opt-in.Closes T57.
Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
🐛 Bug Fixes
-
(generators/gitcliff) Render New Contributors from any platform's remote - (316ce84) by @bchatard
The embedded release-notes template only read gitlab.contributors, so non-GitLab
repos never rendered the New Contributors section. Extract a print_contributors
macro and call it once over the first-time contributors concat'd across all five
remote namespaces (gitlab/github/gitea/bitbucket/azure_devops). The single call
over a merged list keeps git-cliff's proven single-block whitespace — verified
against the real CLI for the empty, single-platform, and multi-platform cases (no
blank-line regression).Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
📚 Documentation
-
(roadmap) Mark T68 done (checkbox lag; work landed in ADR-0021) - (7061e89) by @bchatard
T68's decision and PoC were completed and documented in its Done note (the
context-injection shape resolved in ADR-0021, dependents T69/T71a/T71b already
done) — only the heading checkbox was never flipped. Flip it. T57 is now the
single open roadmap task.Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
-
(roadmap) Complete T57 (heraut release --build) - (d86c09b) by @bchatard
Flip T57 to done with a completion note: mirrored changelog --build, no
pipeline change (resolver already handled build), release-per-build allowed
freely. Roadmap is now fully resolved — no open tasks.Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
-
(specs) Document heraut release --build (T57) - (3e8e37a) by @bchatard
Flip the {build} support table — heraut release --build is now supported, not
changelog-only — add the release example, the --build flag to the release command
reference, and note that release-per-build (one platform release per build) is
intentional and unguarded.Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
🎨 Styling
-
(generators/gitcliff) Drop redundant version heading from release notes - (c977f61) by @bchatard
Release notes are attached to a GitHub/GitLab release whose header already shows
the tag/version and date, so the '## [version] - date' line in the body was pure
duplication. Drop it (the changelog template keeps its heading — that file
accumulates every release). Also pack the macro definitions (whitespace-only).
Verified against the real git-cliff: config accepted, contributors render across
all platforms, no output regression (one leading blank line is git-cliff
structural with an empty header, and invisible on the rendered release page).Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
⚙️ Miscellaneous Tasks
-
Keep CHANGELOG.md in Docker build context for the whatsnew embed - (acac7b6) by @bchatard
changelog.go embeds CHANGELOG.md into the binary (//go:embed, 09fe57c) for the
whatsnew offline fallback, so the Dockerfile's COPY . . + go build needs the file
present. The .dockerignore '*.md' rule was excluding it, breaking the image build
with 'pattern CHANGELOG.md: no matching files found'. Add a !CHANGELOG.md
exception; other .md files stay ignored.Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
Commit Statistics
- 7 commit(s) contributed to the release.
- 0 day(s) passed between the first and last commit.
- 7 commit(s) parsed as conventional.
- 0 linked issue(s) detected in commits.
- 1 day(s) passed between releases.