Skip to content

Release v0.3.0-rc.2 - #53

Merged
samuelduchesne merged 1 commit into
mainfrom
release-v0.3.0-rc.2
Sep 6, 2026
Merged

Release v0.3.0-rc.2#53
samuelduchesne merged 1 commit into
mainfrom
release-v0.3.0-rc.2

Conversation

@samuelduchesne

Copy link
Copy Markdown
Contributor

The changelog section for v0.3.0-rc.2, and a repair to the link definitions.

0.3.0-rc.1 shipped a writer that gave the file back and then rewrote more of an edited object than the edit asked for. This release is that gap closed.

What is in it

Four defects in what a rewrite preserved, three of them found by consumers reading the branch before it merged rather than by this repository's own tests:

measured across the 693 EnergyPlus 22.1.0 example files
values grouped onto one line, unwrapped 21.5% of statements, 690 of 693 files
whole object on one line, unwrapped 11.3% of statements
!- one column right of where EnergyPlus puts it 91% of 1,504,802 comment lines
trailing authored blanks dropped 20,571 lines

Plus the author's per-field comments, which a single-field edit rebuilt on every field of the object, destroying the unit and any note left there.

Three accessors that compose, because the first was published on its own and turned out to be unusable without the other two: changedObjects() says which objects a write will rewrite, regionOf() where the old one was, renderObject() what it becomes. The test that pins them splices every changed object's render into its own range and requires the result to equal a whole write byte for byte.

Reformatting is roughly eight times faster. The annotation walk seeked its token cursor from the front of the file per statement. 647 ms to 76 ms on a 6,874-statement file. Neither performance gate covers that path, because both time an unchanged preserving write.

Levels

conformance-2026.11 and governance-2026.15, both already adopted on main. The corpus level changes no case; its runners stopped reporting a false failure on preserve-edit-one-field.

Not in this commit

No version bump. The git tag is the source of truth here and package.json carries a 0.0.0 placeholder the publish workflow stamps from GITHUB_REF_NAME.

The link definitions never gained a [0.3.0-rc.1] entry and [unreleased] still compared from v0.2.0; both are repaired here.

0.3.0-rc.1 shipped a writer that gave the file back and then rewrote more of an
edited object than the edit asked for. This is that gap closed: the line the
author put a value on, their per-field comments, the column the marker goes in,
and the fields they wrote out as blanks. Plus the three accessors that make
changedObjects() usable for a minimal edit rather than a whole-file diff.

Three of the four defects were found by consumers reading the branch before it
merged rather than by this repository's own tests, and the quadratic in the
annotation walk was found by a review pass looking where the benchmarks do not.

Also repairs the link definitions, which never gained a 0.3.0-rc.1 entry and left
[unreleased] comparing from v0.2.0.

No version bump in package.json: the git tag is the source of truth here and the
manifests carry 0.0.0 placeholders the publish workflow stamps.
@samuelduchesne
samuelduchesne requested a review from a team as a code owner September 6, 2026 23:20
@samuelduchesne
samuelduchesne merged commit e4bfc61 into main Sep 6, 2026
38 checks passed
@samuelduchesne
samuelduchesne deleted the release-v0.3.0-rc.2 branch September 6, 2026 23: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