chore(release): v0.19.0 #254

Merged
quartermaster merged 1 commit from release-prep/rolling into main 2026-06-28 23:42:56 +02:00
Member

Added

  • config: gate unsupported version_files basenames at config time (#213)
  • release-prep: auto-stage hook-modified tracked files (#236)

Changed

config_validate now rejects an unsupported version_files basename at config-load time. The version-file extraction layer (manifest-check read + release-prep write) keys on each entry's basename and handles only VERSION and package.json; previously a config listing an unextractable basename (e.g. pyproject.toml, Cargo.toml) passed validation and then failed late at manifest-check or release-prep. The gate moves that failure to the earliest layer with a clear message naming the unsupported basename, the supported set, and a pointer to the TOML-support tracker (#252). Configs using VERSION, package.json, or version_files: [] (tag-is-version mode) are unaffected.

release-prep.sh now auto-stages tracked files that post_bump_hooks modify, retiring the "hooks must git add their own changes" convention from #209. A hook just modifies tracked files; release-prep snapshots the content of every tracked file before the hook loop and git adds any whose content changed, so the edits are committed with the cut. Existing self-staging hooks keep working unchanged (a second git add of the same change is idempotent).

Two exclusions are deliberate: new (untracked) files a hook creates are NOT auto-staged (only pre-existing tracked files are snapshotted, so committing a brand-new file remains an explicit hook decision), and pre-existing working-tree edits the hook did not make are NOT swept in (the snapshot is content-compared and isolates the hook-window delta, so an operator's unrelated dirty tracked file is never pulled into the release commit).

### Added - **config**: gate unsupported version_files basenames at config time (#213) - **release-prep**: auto-stage hook-modified tracked files (#236) ### Changed `config_validate` now rejects an unsupported `version_files` basename at config-load time. The version-file extraction layer (manifest-check read + release-prep write) keys on each entry's **basename** and handles only `VERSION` and `package.json`; previously a config listing an unextractable basename (e.g. `pyproject.toml`, `Cargo.toml`) passed validation and then failed late at manifest-check or release-prep. The gate moves that failure to the earliest layer with a clear message naming the unsupported basename, the supported set, and a pointer to the TOML-support tracker (#252). Configs using `VERSION`, `package.json`, or `version_files: []` (tag-is-version mode) are unaffected. `release-prep.sh` now auto-stages tracked files that `post_bump_hooks` modify, retiring the "hooks must `git add` their own changes" convention from #209. A hook just modifies tracked files; release-prep snapshots the content of every tracked file before the hook loop and `git add`s any whose content changed, so the edits are committed with the cut. Existing self-staging hooks keep working unchanged (a second `git add` of the same change is idempotent). Two exclusions are deliberate: new (untracked) files a hook creates are NOT auto-staged (only pre-existing tracked files are snapshotted, so committing a brand-new file remains an explicit hook decision), and pre-existing working-tree edits the hook did not make are NOT swept in (the snapshot is content-compared and isolates the hook-window delta, so an operator's unrelated dirty tracked file is never pulled into the release commit).
forgejo-actions force-pushed release-prep/rolling from 63b50510ca
Some checks failed
check-self-bootstrap / check (pull_request) Failing after 3s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
manifest-check / check (pull_request) Successful in 0s
to 5401ce2d71 2026-06-28 22:50:56 +02:00
Compare
forgejo-actions force-pushed release-prep/rolling from 5401ce2d71 to 139574e27b
All checks were successful
check-self-bootstrap / check (push) Successful in 3s
release / decide + act (push) Successful in 6s
release / release (push) Successful in 0s
2026-06-28 23:42:21 +02:00
Compare
quartermaster left a comment

Standing-approval covers — auto-generated v0.19.0 minor cut PR. Two feat: items merged since v0.18.1: #251 (auto-stage hook-modified tracked files) + #255 (config-time version_files basename gate). Both reviewed + merged (Surveyor 3226 + 3230). Re-pin #256 merged at ca7e8eac cleared the check-self-bootstrap reds. Standard rolling-cut content + #209 hook auto-swept doc refs.

Standing-approval covers — auto-generated v0.19.0 minor cut PR. Two `feat:` items merged since v0.18.1: #251 (auto-stage hook-modified tracked files) + #255 (config-time version_files basename gate). Both reviewed + merged (Surveyor 3226 + 3230). Re-pin #256 merged at ca7e8eac cleared the check-self-bootstrap reds. Standard rolling-cut content + #209 hook auto-swept doc refs.
Sign in to join this conversation.
No description provided.