Skip to content

docs: comprehensive gapless changelog + forensic switch docs#490

Merged
githubrobbi merged 1 commit into
mainfrom
docs/changelog-comprehensive-redistribute
Jun 29, 2026
Merged

docs: comprehensive gapless changelog + forensic switch docs#490
githubrobbi merged 1 commit into
mainfrom
docs/changelog-comprehensive-redistribute

Conversation

@githubrobbi

Copy link
Copy Markdown
Collaborator

Why

The changelog jumped straight from ## [Unreleased] to ## [0.5.120] — every release in between (0.5.121 → 0.6.15) was missing. Root cause: just ship / release-plz bumped versions but never rolled Unreleased into release sections, so ~1000 lines of rich prose for already-shipped 0.5.9x–0.6.x work piled up under Unreleased.

What

  • Gapless changelog: generated every missing version section v0.5.73v0.6.15 from the tagged history (git-cliff). Now gapless from 0.2.114Unreleased (60 versioned sections).
  • Full redistribution: moved all 22 rich Unreleased blocks under the version each actually shipped in (idxdelta → 0.6.15, broker + fan-out → 0.6.1, ship-pipeline → 0.5.106/0.5.107, WinGet → 0.5.102, gates → 0.5.92, memory tiering + dependabot → 0.5.90, cache-warm → 0.5.99, soak → 0.5.96). Zero prose lost (verified line-by-line). Unreleased keeps only the genuinely-unreleased corrupt-name forensics block.
  • filters.md §14a: document --normalize-malformed (<BAD:HHHH> markers, display-only, position preservation).
  • cli-overview.md: add the Forensic flag group (--malformed, --well-formed, --malformed-path, --normalize-malformed).

Docs-only; no code paths touched.

🤖 Generated with Claude Code

The changelog jumped from [Unreleased] straight to [0.5.120]: ship /
release-plz bumped versions but never rolled "Unreleased" into release
sections, so ~1000 lines of rich prose for already-shipped 0.5.9x-0.6.x
work piled up under [Unreleased] and every release in between was missing.

- Fill every missing version section v0.5.73 -> v0.6.15 from the tagged
  history (git-cliff), gapless now from 0.2.114 -> Unreleased.
- Redistribute all 22 rich Unreleased blocks under the version each
  actually shipped in (idxdelta -> 0.6.15, broker + fan-out -> 0.6.1,
  ship-pipeline -> 0.5.106/0.5.107, WinGet -> 0.5.102, gates -> 0.5.92,
  memory tiering + dependabot -> 0.5.90, cache-warm -> 0.5.99, soak ->
  0.5.96). Zero prose lost. Unreleased keeps only the genuinely
  unreleased corrupt-name forensics block.
- filters.md sec 14a: document --normalize-malformed (<BAD:HHHH> markers,
  display-only, position preservation).
- cli-overview.md: add the Forensic flag group (--malformed,
  --well-formed, --malformed-path, --normalize-malformed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@githubrobbi githubrobbi enabled auto-merge June 29, 2026 03:52
@githubrobbi githubrobbi added this pull request to the merge queue Jun 29, 2026
Merged via the queue into main with commit 5a58382 Jun 29, 2026
19 checks passed
@githubrobbi githubrobbi deleted the docs/changelog-comprehensive-redistribute branch June 29, 2026 03:55
deep-soft pushed a commit to deep-soft/UltraFastFileSearch-Rust that referenced this pull request Jun 29, 2026
… release (skyllc-ai#491)

The drift fixed wholesale in skyllc-ai#490 had a root cause: `just ship` bumped the
workspace version but never touched CHANGELOG.md, so `## [Unreleased]`
silently accumulated already-shipped work and every release in between went
unrecorded. This makes the ship flow self-maintaining so it cannot drift again.

- New `changelog` module in the ci-pipeline crate: pure, unit-tested
  `roll_unreleased(content, version, date)` moves the `## [Unreleased]` body
  under a fresh dated `## [vX.Y.Z]` header, leaves an empty `## [Unreleased]`
  for the next cycle, and repoints the Keep-a-Changelog footer compare-links
  ([Unreleased] -> vNEW...HEAD, adds [vNEW] -> vPREV...vNEW).
- Wired into Phase 2 right after `bump_workspace_version`, before `git_commit`
  (`git add .`), so the rolled changelog lands in the same signed release
  commit. Gated by `version_incremented` and itself a no-op on an
  already-rolled file, so resumed ships never double-roll.
- Soft no-ops: a missing CHANGELOG.md or an empty `## [Unreleased]` skip
  cleanly (no empty sections); only a changelog with no `## [Unreleased]`
  header at all is an error.
- 6 unit tests: roll, empty no-op, idempotent re-run, missing-header error,
  footer-less roll, header parse.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant