Skip to content

Start a CHANGELOG, opening with the 0.3.0 entry - #105

Merged
MidnightDesign merged 3 commits into
masterfrom
docs/add-changelog
Jul 24, 2026
Merged

Start a CHANGELOG, opening with the 0.3.0 entry#105
MidnightDesign merged 3 commits into
masterfrom
docs/add-changelog

Conversation

@MidnightDesign

Copy link
Copy Markdown
Contributor

What

Adds a CHANGELOG.md in the Keep a Changelog / SemVer format. The first entry is 0.3.0, assembled from the work merged since 0.2.4:

  • Added — the new operators (+ * / %, !== >= < <=, !), Option-returning / and %, inferred function return types, fn(...) -> R / generic fn<...>(...) signatures, the filter/unwrap built-ins, and the new Expression builder methods.
  • Changed — the three behavioral breaks (&&/|| precedence, int-overflow error, strict typed comparison), Type going private, the final/self builder cleanup, rendering changes, and the @internal sealing.
  • RemovedType::some(), Type::returnType(), Parser\Types::resolve(), Parser\Delimiters, and the Eq/Gt classes.

Each break cross-references UPGRADING.md for the migration steps.

Why not back-fill 0.1.x / 0.2.x

The changelog starts at 0.3.0 by design. Those commits weren't written for changelog categorization, so reconstructing per-version Added/Changed/Removed after the fact would be guesswork — and a subtly-wrong changelog is worse than an absent one. The preamble points readers at the git tags, which are the authoritative record for earlier releases.

Note for release time

The 0.3.0 heading reads ## [0.3.0] - Unreleased and the compare link targets 0.2.4...HEAD. At tag time, swap "Unreleased" for the date and HEAD for 0.3.0.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Td1ZAFUUB3j7u4U2rXjz4J

MidnightDesign and others added 3 commits July 24, 2026 11:04
Adds a Keep a Changelog / SemVer changelog. The first entry is 0.3.0,
built from the work merged since 0.2.4: the new operators, the
Option-returning / and %, inferred return types, function and generic
signatures, the new built-ins and Expression builder methods, and the
API/behavioral breaks already documented in UPGRADING.md.

Releases before 0.3.0 are left to the git tags rather than reconstructed
from history, so nothing in the changelog is a post-hoc guess.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Td1ZAFUUB3j7u4U2rXjz4J
Both filter and unwrap already shipped in 0.2.4 — they lived in Scope and
evaluated fine. What 0.3.0 adds is their declared Signatures (they could
not be typed until generics), so the calls are now checked at parse time.
Calling them "new built-in functions" was wrong; fix it in both the new
CHANGELOG and the matching line in UPGRADING.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Td1ZAFUUB3j7u4U2rXjz4J
Audited every falsifiable claim in the CHANGELOG (and the matching lines
in UPGRADING) against 0.2.4 and HEAD. Four were wrong:

- "Evaluated values are now compared strictly" was not a library change at
  all — commit #78 only tightened the test harnesses; 0.2.4's Eq already
  used ===. Dropped the entry.
- Parser\Types::resolve() is not removed. It still exists with the same
  resolve(TypeNode) signature; it was newly marked @internal. Corrected in
  both docs.
- Eq/Gt were described as subclasses of Comparison, but in 0.2 they
  extended Expression — the Comparison base only arrived mid-0.3. Reworded
  to "the @internal nodes eq()/gt() returned" in both docs.
- The int-overflow break was framed as all integer arithmetic; the actual
  break vs 0.2.4 is subtraction and negation, with + and * new and sharing
  the rule. Scoped it down.

The rest (new operators, Type::some/returnType removed, the seven @internal
seals, builder methods, Delimiters removed, the fn(...) render change)
verified accurate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Td1ZAFUUB3j7u4U2rXjz4J
@MidnightDesign
MidnightDesign merged commit 0b1a87a into master Jul 24, 2026
25 checks passed
@MidnightDesign
MidnightDesign deleted the docs/add-changelog branch July 24, 2026 09:23
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.

1 participant