fix(changelog): the reconcile script leaves out upstream entries the fork removed
Merged
BO
7d ago+32+32+01234567890123456789-15-15-01234567890123456789
The next upstream merge no longer brings back changelog entries the fork removed or reworded, and eight doubled entries are gone from [Unreleased].
Problem
scripts/changelog-reconcile.mjsadded every entry in upstream's[Unreleased]that the fork's did not have. An entry the fork had removed or reworded came back on each upstream merge, so each reconcile needed a manual override. Run against the current fork and upstreambaf19067, it would re-add four such entries (VB.NET type lookup, CRLF store export, the C++std::unique_ptrcall, the C++ string-literal declaration).- Eight "
codegraph syncand the file watcher …" entries appeared twice in[Unreleased]> Fixes. Upstream's own changelog already had both copies at the5da4a41dreconcile (#499); upstream has since removed its copies, so the fork's second copies were left over.
Change
- The script now skips an upstream entry that the merge base's
[Unreleased]already had and the fork lacks, and prints it asleft out. An entry new since the merge base is still added, and with no merge base nothing is skipped. - The second copy of the eight doubled entries is removed. After this,
[Unreleased]has no repeated entry and equals the script's rebuild againstupstream/main. codegraph-build-validationnotes theleft outline.
Checks
On head fad31b0a:
| Check | Result |
|---|---|
New test in fork-tooling-scripts.test.ts (dropped entry stays out, new one is added, no base re-adds) | fails on the old script, passes here |
fork-tooling-scripts, readme-sync, prepare-release | 49 passed, 0 failed |
check:agent-docs | exit 0 |
Script against HEAD and upstream/main before the change | would add 4 entries; after: adds 0, lists 4 as left out |
README rows checked
None: no user-visible behavior, number or README table changes.
Not covered
- An upstream entry the fork never carried because a union merge lost it (not removed on purpose) also stays out; the
left outlist is where to spot that.
Summary by cubic
The changelog reconcile script no longer re-adds upstream entries the fork removed or reworded, and the eight doubled codegraph sync and the file watcher entries are gone from [Unreleased].
An upstream [Unreleased] entry that the merge base's [Unreleased] already had and the fork lacks is now skipped and reported as left out, instead of coming back on every upstream merge and needing a manual override. Entries new since the merge base are still added; with no merge base, nothing is skipped.