-
Release v0.3.0
StableSome checks failedreleased this
2026-06-24 20:52:51 +02:00 | 1478 commits to main since this releasev0.3 sprint — tmux-tell migration enablement (closes
release-toolkit#4).
4 config additions + a migration guide that let pre-1.0 Go projects
(tmux-tell + similar) adopt the toolkit without compromising the
defaults for strict-SemVer projects. Each addition is opt-in;
existing consumers see zero behavior change.This is the first fully-dogfooded MINOR cut — operator dispatched
release.ymlin the Forgejo UI, the toolkit's own reusable
workflows fired autonomously, all 4 config additions exercised in
a single release. Substantive milestone closing the v0.3 arc.Added
-
pre_v1_breaking_to_minorconfig flag (opt-in) lets pre-1.0 projects in settling-shape express "breaking change" semantically (in commits or fragments) without triggering the major-version commitment that 1.0+ implies. Setpre_v1_breaking_to_minor: trueinrelease-toolkit.ymlto downgrademajor→minorbumps while the manifest is 0.x.y. Once the project crosses 1.0.0, the flag silently becomes a no-op — major bumps survive as major. Defaultfalse(strict SemVer); the policy is opt-in via the config flag. Seedocs/conventions.mdfor mechanics +semver_apply_pre_v1_policyfor the implementation. First v0.3 / release-toolkit#4 slice (1 of 5). -
version_files: []accepted as a valid config — opts into tag-is-version mode wheregit describe --tagsis the authoritative version source. The lockstep check inmanifest-check.shstep 2 emitsSKIPrather than failing; step 4 (tag-vs-manifest) treats the git tag as its own manifest (no comparison required).release-prep.shdoes NOT bump any files when configured this way; the new version propagates via the CHANGELOG transition + the tag at release-draft + publish. Distinguishes "field missing" (defaults toVERSIONper v0.1 behavior) from "field explicitly empty" (tag-is-version opt-in). Right shape for Go projects with-ldflagsversion injection (tmux-tell + similar) and projects where the tag IS the source of truth. Seedocs/integration.mdfor the config example. Second v0.3 / release-toolkit#4 slice (2 of 5). -
section_format: { tag_prefix, separator }config lets consumers customize the CHANGELOG.md section heading shape. Defaults match Keep a Changelog's example (## [vX.Y.Z] - YYYY-MM-DD); consumers can override either or both fields independently. Empty string fortag_prefixis a meaningful opt-out that drops the v-prefix (## [X.Y.Z]— matches tmux-tell's existing shape);separator: " — "switches to em-dash. The heading is constructed as## [<tag_prefix><X.Y.Z>]<separator><DATE>.changelog_transitiongains 2 new optional positional params (5th = TAG_PREFIX, 6th = SEPARATOR) with${var-default}(not${var:-default}) semantics so explicit empty string is preserved. Seedocs/integration.mdfor examples + the missing-vs-empty semantic distinction. Third v0.3 / release-toolkit#4 slice (3 of 5). -
post_bump_hooks: [path]config lets consumers register hook scripts that fire AFTERversion_filesare bumped + BEFORE the git commit. Used for per-consumer bookkeeping that doesn't belong in the toolkit's general flow (updating a--versionexample in README to match the cut, regenerating versioned docs, syncing vendored manifests). Each hook is an executable script invoked from the consumer repo root + receivesRELEASE_TOOLKIT_NEW_VERSION+RELEASE_TOOLKIT_NEW_TAG+RELEASE_TOOLKIT_PREVIOUS_TAGenv vars. Zero exit → release-prep continues; non-zero exit aborts the cut with the hook's stderr propagated (no commit, no push, no PR). Multiple hooks run in declaration order; first failure aborts the chain. Hook paths are operator-controlled (no injection risk) and properly arg-quoted (paths with spaces are safe). Seedocs/integration.mdfor the full mechanics + safety surfaces. Fourth v0.3 / release-toolkit#4 slice (4 of 5). -
docs/migration/tmux-tell.mdmigration guide — step-by-step migration walkthrough for projects with tmux-tell's substrate shape (Go projects with noVERSIONfile, build-time version injection via-ldflags, pre-1.0 BREAKING-as-minor discipline, em-dash CHANGELOG headings, per-consumer release-time bookkeeping). Covers: tmux-tell-shaperelease-toolkit.ymlconfig; 4 consumer-side workflow wrappers; the README pin-update hook script with the post_bump_hooks env-var contract; trust-model checkpoint (branch-protect the hook + the config); one-cycle parity check before retiring the old workflow chain. Generalizes to any pre-1.0 Go project with similar shape; cellblock's node-strategy migration doesn't need any of these flags. Fifth + final v0.3 / release-toolkit#4 slice (5 of 5).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-