chore(release): v0.2.1 #15

Merged
alex merged 2 commits from release-prep/v0.2.1 into main 2026-06-24 19:08:36 +02:00

Added

  • workflows: toolkit's own consumer workflows for v0.2.1+ dogfood

Fixed

  • Sudo-aware install-deps step in _release-prep.yml + _release-draft.yml + _manifest-check.yml. v0.2.0 hard-coded sudo apt-get install for the yq/jq/curl fallback, which failed opaquely with sudo: command not found on minimal root-only CI images (a common shape: Debian-derived images that run as root with no sudo package installed). v0.2.1 replaces the bare sudo calls with a 3-shape handler: (1) if EUID=0, apt-get directly; (2) else if sudo is on PATH, sudo apt-get; (3) else fail loud with ::error:: annotations naming the missing tools + actionable remedies ("pre-bake into your runner image, run as root, or install sudo"). _release-publish.yml is unchanged — it has no install-deps step (pure tag-format validation). Closes #10.

  • list_fragments warns on unrecognized basenames instead of silently skipping. v0.2.0 dropped fragments named <id>.<kind>.<suffix>.md (e.g., 3.fixed-2.md) without any signal — the parser extracts the LAST dot-segment as kind (fixed-2), which isn't a recognized kind, and the file was treated as "not a fragment" and quietly excluded from the cut. This was caught manually during the v0.2.0 release when a file-count probe surfaced a missing fragment. v0.2.1 emits warning: <path> does not match \..md` (unknown kind in basename) — skippingto stderr so the operator sees the dropped file before the cut consumes the workspace. A smarter parser that accepts...md` shapes is deferred to v0.3 (release-toolkit#9 disposition B). Closes #9.

  • workflows: sudo-aware install-deps step in 3 reusables (closes #10)

  • scripts/lib: list_fragments warns on unrecognized basenames

### Added - **workflows**: toolkit's own consumer workflows for v0.2.1+ dogfood ### Fixed - **Sudo-aware install-deps step** in `_release-prep.yml` + `_release-draft.yml` + `_manifest-check.yml`. v0.2.0 hard-coded `sudo apt-get install` for the yq/jq/curl fallback, which failed opaquely with `sudo: command not found` on minimal root-only CI images (a common shape: Debian-derived images that run as root with no `sudo` package installed). v0.2.1 replaces the bare `sudo` calls with a 3-shape handler: (1) if EUID=0, `apt-get` directly; (2) else if `sudo` is on PATH, `sudo apt-get`; (3) else fail loud with `::error::` annotations naming the missing tools + actionable remedies ("pre-bake into your runner image, run as root, or install sudo"). `_release-publish.yml` is unchanged — it has no install-deps step (pure tag-format validation). Closes [#10](https://git.frankenbit.de/frankenbit/release-toolkit/issues/10). - **`list_fragments` warns on unrecognized basenames** instead of silently skipping. v0.2.0 dropped fragments named `<id>.<kind>.<suffix>.md` (e.g., `3.fixed-2.md`) without any signal — the parser extracts the LAST dot-segment as kind (`fixed-2`), which isn't a recognized kind, and the file was treated as "not a fragment" and quietly excluded from the cut. This was caught manually during the v0.2.0 release when a file-count probe surfaced a missing fragment. v0.2.1 emits `warning: <path> does not match \`<id>.<kind>.md\` (unknown kind in basename) — skipping` to stderr so the operator sees the dropped file before the cut consumes the workspace. A smarter parser that accepts `<id>.<kind>.<suffix>.md` shapes is deferred to v0.3 ([release-toolkit#9](https://git.frankenbit.de/frankenbit/release-toolkit/issues/9) disposition B). Closes [#9](https://git.frankenbit.de/frankenbit/release-toolkit/issues/9). - **workflows**: sudo-aware install-deps step in 3 reusables (closes #10) - **scripts/lib**: list_fragments warns on unrecognized basenames
Generated by release-toolkit release-prep.sh.

Tracker: frankenbit/release-toolkit#1
docs(CHANGELOG): clean up v0.2.1 section per substrate-care discipline
Some checks failed
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
manifest-check / check (pull_request) Successful in 0s
release-draft / create Forgejo draft release (pull_request) Failing after 4s
release-draft / draft (pull_request) Failing after 0s
e6e156052a
The auto-generated v0.2.1 cut produced a CHANGELOG section with:
1. An `### Added` bullet ("toolkit's own consumer workflows for v0.2.1+
   dogfood") from PR #6's `feat:` commit — internal substrate, not
   external-consumer-facing surface. Same issue release-toolkit#14
   covers.
2. Duplicate commit-subject bullets at the end of `### Fixed` that
   restate what the long-form fragment prose above already says.

## Cleanup

- Move the "toolkit's own consumer workflows" entry from `### Added`
  to a new `### Internal` section + reframe as "internal substrate-of-
  record" (acknowledges the work shipped without overstating the
  user-facing impact — matches docs/conventions.md's `internal` kind
  semantics: emitted but no version impact).
- Drop the two duplicate commit-subject bullets ("workflows: sudo-aware
  install-deps step in 3 reusables" + "scripts/lib: list_fragments
  warns on unrecognized basenames"). The long-form fragment prose is
  the canonical CHANGELOG entry; per docs/conventions.md "No
  deduplication in v0.1; review prep PR + dedupe manually if it
  matters."

Substrate-honest disclosure: the Internal-section text I'm adding is
HAND-WRITTEN, not derived from a fragment. The toolkit's auto-generated
section was cosmetically wrong for the actual shape of the change.
v0.2.1 still ships the same code as the auto-cut; only the CHANGELOG
narrative changes.

Tracker: frankenbit/release-toolkit (v0.2.1 cut cleanup; related to #14)
alex merged commit e6e156052a into main 2026-06-24 19:08:36 +02:00
alex deleted branch release-prep/v0.2.1 2026-06-24 19:08:36 +02:00
Sign in to join this conversation.
No description provided.