chore: archive pre-0.60 changelog notes and distill corrupted 0.47–0.59 entries

Raise the durable archive cutoff to 0.60.0, keep only the current release in CHANGELOG.md, and rewrite labeled summary/category/dev package aggregates for 0.47–0.59 into operator-facing Highlights/New/Fixed notes.
This commit is contained in:
gsxdsm
2026-07-13 23:00:25 -07:00
parent 8e4514e585
commit f7d29dd1da
5 changed files with 1169 additions and 4392 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -8,38 +8,38 @@ import {
partitionVersionsByCutoff,
} from "../lib/changelog-archive.mjs";
test("partitions versions at the pre-0.50 archive cutoff", () => {
test("partitions versions at the pre-0.60 archive cutoff", () => {
assert.deepEqual(
partitionVersionsByCutoff(["0.58.0", "0.50.0", "0.49.0", "0.11.1"]),
partitionVersionsByCutoff(["0.60.0", "0.59.0", "0.50.0", "0.11.1"]),
{
current: ["0.58.0", "0.50.0"],
archived: ["0.49.0", "0.11.1"],
current: ["0.60.0"],
archived: ["0.59.0", "0.50.0", "0.11.1"],
},
);
});
test("keeps the 0.50.0 boundary and newer patch versions current", () => {
const partitioned = partitionVersionsByCutoff(["0.53.1", "0.50.0", "0.49.0"]);
test("keeps the 0.60.0 boundary and newer patch versions current", () => {
const partitioned = partitionVersionsByCutoff(["0.61.0", "0.60.0", "0.59.0"]);
assert.deepEqual(partitioned.current, ["0.53.1", "0.50.0"]);
assert.deepEqual(partitioned.archived, ["0.49.0"]);
assert.deepEqual(partitioned.current, ["0.61.0", "0.60.0"]);
assert.deepEqual(partitioned.archived, ["0.59.0"]);
});
test("preserves input order and archives non-parseable version keys", () => {
const partitioned = partitionVersionsByCutoff([
"0.51.0",
"0.61.0",
"legacy notes",
"0.50.0 (pre-release, unpublished)",
"0.49.9",
"0.53.0",
"0.60.0 (pre-release, unpublished)",
"0.59.9",
"0.62.0",
]);
assert.deepEqual(partitioned.current, [
"0.51.0",
"0.50.0 (pre-release, unpublished)",
"0.53.0",
"0.61.0",
"0.60.0 (pre-release, unpublished)",
"0.62.0",
]);
assert.deepEqual(partitioned.archived, ["legacy notes", "0.49.9"]);
assert.deepEqual(partitioned.archived, ["legacy notes", "0.59.9"]);
});
test("supports a custom cutoff with release.mjs semver-ish parsing", () => {
@@ -54,5 +54,6 @@ test("archive pointer references the archive file and cutoff", () => {
assert.ok(pointer.includes(CHANGELOG_ARCHIVE_FILE));
assert.ok(pointer.includes(CHANGELOG_ARCHIVE_CUTOFF));
assert.equal(CHANGELOG_ARCHIVE_CUTOFF, "0.60.0");
assert.match(pointer, /\.\/CHANGELOG-archive\.md/);
});

View File

@@ -1,9 +1,12 @@
/**
* FNXC:ReleaseChangelog 2026-07-12-00:00:
* The root CHANGELOG.md is regenerated by scripts/release.mjs on every release, so pruning old release notes by hand would be reverted.
* Keep the 0.50.0 cutoff in generator-owned pure logic so current release notes stay in CHANGELOG.md and older notes are durably split into CHANGELOG-archive.md.
* Keep the archive cutoff in generator-owned pure logic so current release notes stay in CHANGELOG.md and older notes are durably split into CHANGELOG-archive.md.
*
* FNXC:ReleaseChangelog 2026-07-13-22:55:
* Raise the archive cutoff from 0.50.0 to 0.60.0 so CHANGELOG.md keeps only 0.60.x+ and everything below 0.60 moves into CHANGELOG-archive.md.
*/
export const CHANGELOG_ARCHIVE_CUTOFF = "0.50.0";
export const CHANGELOG_ARCHIVE_CUTOFF = "0.60.0";
export const CHANGELOG_ARCHIVE_FILE = "CHANGELOG-archive.md";
/**

View File

@@ -88,8 +88,11 @@ function run(cmd, { capture = false, allowFail = false, cwd } = {}) {
* order at the end.
*
* FNXC:ReleaseChangelog 2026-07-12-00:00:
* The root CHANGELOG.md is regenerated during every release, so the pre-0.50 prune must happen in this generator instead of as a manual docs edit.
* Keep versions greater than or equal to the 0.50.0 cutoff in CHANGELOG.md, and write older versions to CHANGELOG-archive.md so the split survives the next release sync.
* The root CHANGELOG.md is regenerated during every release, so the archive prune must happen in this generator instead of as a manual docs edit.
* Keep versions greater than or equal to the archive cutoff in CHANGELOG.md, and write older versions to CHANGELOG-archive.md so the split survives the next release sync.
*
* FNXC:ReleaseChangelog 2026-07-13-22:55:
* Cutoff is CHANGELOG_ARCHIVE_CUTOFF (currently 0.60.0) from scripts/lib/changelog-archive.mjs.
*/
function syncRootChangelog() {
const pkgsDir = "packages";