changelog: adopt changie fragment files to end CHANGELOG merge conflicts#230
Draft
iainmcgin wants to merge 2 commits into
Draft
changelog: adopt changie fragment files to end CHANGELOG merge conflicts#230iainmcgin wants to merge 2 commits into
iainmcgin wants to merge 2 commits into
Conversation
PRs that each add an entry to the top of [Unreleased] in CHANGELOG.md conflict with one another on every merge. This switches to changie's fragment model: each change adds a new file under .changes/unreleased/, and CHANGELOG.md is assembled from .changes/ at release time. - .changie.yaml tuned to the existing Keep a Changelog format (bracketed [X.Y.Z] headings, hyphen bullets, multi-line bodies with hanging indent, per-version compare-link footer via PreviousVersion). - Taskfile: install-changie / changelog-new / changelog-batch / changelog-merge. install-protoc no longer wipes all of .local/bin. - CI: check-changelog job verifies CHANGELOG.md == changie merge, same enforcement pattern as check-generated-code. - CONTRIBUTING.md: Changelog Entries section. The history migration is in the next commit.
Mechanical relocation, no content edits: - Released sections 0.1.0..0.7.1 split into .changes/<ver>.md verbatim, each carrying its own [ver]: compare-link reference definition (so changie batch can emit the same shape for new versions automatically). - 24 current Unreleased entries split into .changes/unreleased/*.yaml fragments. - CHANGELOG.md regenerated via changie merge. The released body is byte-identical; the [Unreleased] section is gone (its entries now live as fragments) and the header gains a do-not-edit pointer to .changes/unreleased/.
|
All contributors have signed the CLA ✍️ ✅ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Every PR that adds an entry to the top of
[Unreleased]inCHANGELOG.mdconflicts with every other open PR doing the same, so the merge queue turns into a sequence of manual changelog rebases. This switches to changie's fragment model: each PR adds a new file under.changes/unreleased/, andCHANGELOG.mdis assembled from.changes/at release time. New file → no shared lines → no conflict.What
Two commits, intended to be reviewed separately:
.changie.yaml(tuned to our exact Keep a Changelog format: bracketed[X.Y.Z],-bullets, multi-line bodies with hanging indent, auto-generated[ver]: …compare/…link via{{.PreviousVersion}}),task install-changie/changelog-new/changelog-batch/changelog-merge, acheck-changelogCI job (same pattern ascheck-generated-code), and aCONTRIBUTING.mdsection.0.1.0…0.7.1split into.changes/<ver>.mdverbatim (each now self-contained with its own compare-link def); the 24 current[Unreleased]entries split into.changes/unreleased/*.yaml;CHANGELOG.mdregenerated. Released body round-trips byte-identical.Contributor workflow change
Instead of editing
CHANGELOG.md:task changelog-new # prompts for kind + body, writes .changes/unreleased/<Kind>-<ts>.yamlCI fails any PR whose
CHANGELOG.mddiverges fromchangie mergeoutput.Release workflow change
Sequencing
Open PRs that currently edit
CHANGELOG.mdwill failcheck-changelogonce this lands; each needs its entry moved to a fragment (one last time). If preferred, this can land immediately after the 0.8.0 cut so the migration carries zero unreleased fragments.