Prepare concise 1.0 beta notes and fix release rotation

This commit is contained in:
vorotamoroz
2026-07-22 09:38:32 +00:00
parent f7577db1d2
commit a69c7b2b6c
3 changed files with 39 additions and 46 deletions
+2 -1
View File
@@ -86,7 +86,8 @@ function prepare(version) {
}
// Keep a fresh empty Unreleased section above the newly dated release notes.
const releasedBody = `${unreleased.body.trim()}\n\n`;
const releaseSuffix = unreleased.end < markdown.length ? "\n\n" : "\n";
const releasedBody = `${unreleased.body.trim()}${releaseSuffix}`;
const releaseDate = process.env.RELEASE_DATE || formatReleaseDate();
const replacement = `## Unreleased\n\n## ${version}\n\n${releaseDate}\n\n${releasedBody}`;
const nextMarkdown = markdown.slice(0, unreleased.headingStart) + replacement + markdown.slice(unreleased.end);
+18
View File
@@ -106,6 +106,24 @@ describe("release notes", () => {
expect(validated.status, validated.stderr).toBe(0);
});
it("ends rotated notes with one newline when Unreleased is the final release section", () => {
const directory = createReleaseFixture();
writeFileSync(
join(directory, "updates.md"),
"# 1.0\n\n## Unreleased\n\n### Fixed\n\n- Preserved file content.\n",
"utf8"
);
const prepared = runNode(releaseNotesScript, ["prepare", "1.0.0-beta.0"], directory, {
RELEASE_DATE: "22nd July, 2026",
});
expect(prepared.status, prepared.stderr).toBe(0);
expect(readFileSync(join(directory, "updates.md"), "utf8")).toBe(
"# 1.0\n\n## Unreleased\n\n## 1.0.0-beta.0\n\n22nd July, 2026\n\n### Fixed\n\n- Preserved file content.\n"
);
});
it("rejects an empty Unreleased section unless explicitly allowed", () => {
const directory = createReleaseFixture();
writeFileSync(