Skip to content

State the 0.x versioning rule and cut the 0.2.0 changelog - #37

Merged
sehkone merged 1 commit into
mainfrom
sehkone/issue-31b
Aug 8, 2026
Merged

State the 0.x versioning rule and cut the 0.2.0 changelog#37
sehkone merged 1 commit into
mainfrom
sehkone/issue-31b

Conversation

@sehkone

@sehkone sehkone commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Closes #31. Last step before tagging 0.2.0; does not create the tag.

README

The Versioning section defined MAJOR, MINOR, and PATCH but said nothing about 0.x, and those definitions read as 1.x semantics. That matters right now rather than hypothetically: 0.2.0 is entirely breaking — the install path moved from docs/.theme/ to docs/theme/, the installer's --version/--template interface is gone, extra.pdf_copyright is now an error — while the section defines MINOR as "adding a markdown extension, theme feature, or asset". A consumer deciding how carefully to review a bump pull request would draw exactly the wrong conclusion from the number.

Four lines, per the discussion on #31: the rule, plus the clause saying the project stays on 0.x until consumers have adopted the contract. The earlier draft re-listed the contract's components and closed with a sentence about what 1.0.0 means; both are rationale the surrounding sections already carry.

The three definitions themselves are unchanged.

CHANGELOG

Promotes ## Unreleased to ## [0.2.0] - 2026-08-08 and adds the matching link reference. Entries are promoted unchanged — they were written as each change landed and are already scoped by area.

This is a prerequisite for tagging, not a tidy-up: release.yml extracts release notes by grepping ^## \[$VERSION\], so a tag pushed against a bare ## Unreleased produces Release for version 0.2.0 as the entire release body — which is also what the Slack subscription would post.

Verification

  • Ran release.yml's extraction logic against the new heading: resolves ## [0.2.0] at line 10, stops at ## [0.1.0], and yields 149 lines — 29 entries under all four scoped subsections (manual, api-reference, shared, scripts).
  • No Unreleased heading left behind.
  • markdownlint-cli2 passes; both files stay within MD013's 80 columns.
  • Test-merged against sehkone/issue-34 (Stop naming a release version outside the changelog #36): no conflict, though both touch README. Either order works.

Adjust the date in the heading if the tag lands on a different day.

The Versioning section defined MAJOR, MINOR and PATCH without saying
anything about 0.x, and those definitions read as 1.x semantics. That
matters immediately: 0.2.0 is entirely breaking — the install path
moved, the installer's argument interface is gone, extra.pdf_copyright
is now an error — while the section defines MINOR as additive. A
consumer deciding how carefully to review a bump would draw the
opposite conclusion from the one intended.

The project stays on 0.x because the contract that landed since 0.1.0
is self-tested against the samples but unproven by a consumer adopting
it, and a breaking change during adoption is expected often enough that
spending MAJOR on one would drain the signal MAJOR carries.

The changelog entries are promoted unchanged; they were written as each
change landed and are already scoped by area.

Closes #31
@sehkone
sehkone merged commit 0724888 into main Aug 8, 2026
6 checks passed
@sehkone
sehkone deleted the sehkone/issue-31b branch August 8, 2026 05:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

State the 0.x versioning rule and prepare the 0.2.0 changelog

1 participant