From 1e7945854a3590c8d0f15e733af9ea7d39a00930 Mon Sep 17 00:00:00 2001 From: Shevchik Igor Date: Wed, 19 Aug 2026 12:35:51 +0000 Subject: [PATCH] ci(release): restore the `revert` and `feature` changelog sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `changelog-sections` replaces the preset's default type list wholesale rather than extending it, so every type absent from ours resolves to nothing. Ours listed nine; two of the five the preset shows were missing. Verified against the preset release-please actually loads — the action is pinned to v5.0.0, whose lockfile resolves release-please 17.6.0 and conventional-changelog-conventionalcommits 6.1.0. There the defaults are an inline array in `writer-opts.js` -> `defaultConfig()`, keyed `hidden: true`; feat, feature, fix, perf and revert are visible, the other seven hidden. (Newer 10.x renamed that key to `effect`. Writing `effect` into this file would be a silent no-op here, so the citation matters.) `revert` is the one that counts. A revert is exactly the news a consumer has to see, and it rendered nothing. Two `Revert "..."` commits do exist — 8b774dcd and 2cc874e2, both 2025-01-10 — and neither reached a changelog; but both predate `bootstrap-sha`, and this config has produced exactly one release, so no published changelog is missing anything. `feature` is the sharper case. `DefaultVersioningStrategy` bumps on `type === 'feat' || type === 'feature'` regardless of this list, so a `feature:` commit already cuts a minor release while contributing no changelog line — the version moves and nothing explains why. Scope, stated rather than implied: this reaches conventional `revert:` and `revert(scope):` subjects only. Plain `git revert` produces `Revert "..."`, which release-please's parser rejects outright, and squash-merging a revert PR makes that the subject. Those stay invisible. Documenting the `revert:`-prefixed subject in releasing.md is the follow-up that makes this section reachable. `style` stays out, but not for the reason first given here. Listing a type and omitting it are not equivalent: a listed entry arrives without the `hidden` flag and prints, and — the part that matters — an omitted type skips the `if (entry)` section rewrite, so a breaking commit of that type hoists a raw lowercase heading above Features, `indexOf` returning -1. That hole is not specific to `style`: twelve types in this history are unconfigured, `playground` (31) and `doc` (23) ahead of it. Fixing one of twelve here would be arbitrary; filed separately instead. No live defect — all 30 breaking commits so far are of configured types. Section order is the array's own, so Reverts lands after Performance and above the docs/tests/chore block. Only the head matches the preset's ordering; our tail already differed and is untouched. Closes #434. --- release-please-config.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/release-please-config.json b/release-please-config.json index 29d41eca..72757521 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -7,8 +7,10 @@ "release-type": "node", "changelog-sections": [ { "type": "feat", "section": "Features" }, + { "type": "feature", "section": "Features" }, { "type": "fix", "section": "Bug Fixes" }, { "type": "perf", "section": "Performance" }, + { "type": "revert", "section": "Reverts" }, { "type": "docs", "section": "Docs" }, { "type": "test", "section": "Tests" }, { "type": "chore", "section": "Chore" },