Remove CHANGELOG.md and CONTRIBUTORS.md, which nothing reads - #586
Merged
Conversation
Nothing consumes either file, and CHANGELOG.md costs a conflict on every concurrent PR because every entry is inserted at the same anchor. Release notes do not come from CHANGELOG.md. The local override .github/scripts/generate-release-notes.sh names its variable CHANGELOG but populates it from git log, and the published bodies are written by hand on the draft release. The file was a second, hand-maintained copy of the same story. CONTRIBUTORS.md is a hand-kept snapshot of something git already knows. Its own footer says the list is based on commit history and asks anyone missing to open a PR, which is a standing maintenance cost for a fact `git shortlog -sne` answers exactly and without drift.
mairas
force-pushed
the
chore/drop-redundant-root-docs
branch
from
August 13, 2026 07:51
b9af79c to
dddc763
Compare
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
CHANGELOG.mdcost a merge conflict on every concurrent PR. Every entry goes in at the same anchor under## Fixes, so the six fix branches open this week all collided there, and each one had to be rebased and re-inserted by hand.It bought nothing for that. Nothing reads the file. Release notes come from
git log:.github/scripts/generate-release-notes.sh(the local override for the sharedbuild-releaseworkflow) names its variableCHANGELOG, but populates it fromgit log "${LAST_TAG}"..HEAD— not fromCHANGELOG.md. The published bodies, like v1.3.0, are then written by hand on the draft release. So the file was a second hand-maintained copy of a story that gets told again, differently, at publish time.CONTRIBUTORS.mdwas a hand-kept snapshot of something git already knows. Its own closing line said so: "This list is based on commit history. If you contributed and are missing, please open a PR!" — a standing maintenance cost, and a request that contributors notice their own absence, for a factgit shortlog -sneanswers exactly and without drift.What changed
Both files deleted, and both dropped from
package.jsonfilesso the npm tarball stops advertising them.Attribution is unaffected.
LICENSEis MIT and carriesCopyright (c) 2023 mxtommyandCopyright (c) 2026 Hat Labs Oy and Skip contributors;package.jsonkeeps itscontributorsfield; and the full record stays in the history the deleted file was transcribed from.Before the next release
The deleted
# Unreleasedsection held the user-facing prose for everything landed since v1.3.0, and the five open fix PRs each add to it. That prose is the raw material for the v1.4.0 notes, and it is not gone —git show 401f4fc8:CHANGELOG.mdretrieves the file at its last state on main. Fold what is wanted into the draft release body before publishing.Landing order
The five open fix PRs (#573, #577, #578, #579, #583) all modify
CHANGELOG.md. Merging this first turns each of them into a delete/modify conflict — trivial to resolve (keep the deletion), but five of them. Merging this last means one conflict resolution here instead. Either works; last is less handling.