Skip to content

docs: transcribe #943's CHANGELOG entry and add its v3.0.0 SemVer break - #947

Merged
gsdali merged 1 commit into
mainfrom
chore/943-semver-changelog
Aug 18, 2026
Merged

docs: transcribe #943's CHANGELOG entry and add its v3.0.0 SemVer break#947
gsdali merged 1 commit into
mainfrom
chore/943-semver-changelog

Conversation

@gsdali

@gsdali gsdali commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

What & why

PR #944 (#943) merged without its CHANGELOG entry and without its SemVer break row. This adds both.

What would have shipped

docs/SEMVER.md's v3.0.0 break table listed only #844 — an enum rename and a RawValue change. Meanwhile six accessors had become Optional on main:

Shape.bounds, Shape.size, Shape.center, Wire.bounds, Edge.bounds, Face.bounds

That is a compile error for every caller, and it is the break a consumer is most likely to hit, because bounds, size and center get read casually.

This is #829 repeating. v2.0.0 shipped with #595 missing from its break table; a real downstream consumer (swiftGCS) hit a compile error that reading the table could not have predicted; we corrected it four days ago in PR #939. Same gap, one release later, same cause: a break whose row nobody wrote at merge time.

Changes

The subsection records the measured reason a value-based test was rejected: a vertex at the world origin measures exactly (0,0,0)-(0,0,0) through BRepBndLib::AddOptimal, so inferring "void" from the coordinates is the same fabrication relocated. Through ordinary BRepBndLib::Add the same vertex measures ±1e-7, because BRep_Tool::Tolerance floors at Precision::Confusion() — so a sentinel would have misfired on one path and not the other. Both from Scripts/repro/943-bounds-void-vs-zero/.

Verification

All seven gate scripts run clean, including check-changelog-transcription.py, which no longer reports #944.

CHANGELOG entry

None. This PR is the transcription; per changelog-on-merge a PR whose only purpose is to write an entry from another PR's body is the merger doing their job, and it is the only open PR touching either file.

SemVer impact

NONE in itself. Documentation only. It documents a break that already landed in #944; it does not introduce one.

PR #944 merged without either. The entry existed in its PR body and was never
copied across; the SemVer row could not be, because semver-at-release forbids a
PR touching docs/SEMVER.md, so the row is written here as the merging step.

Without this, v3.0.0 would have shipped a break table listing only #844 while
six accessors became Optional -- Shape.bounds/size/center, Wire.bounds,
Edge.bounds and Face.bounds, a compile error for every caller and the break a
consumer is most likely to hit.

That is exactly #829: v2.0.0 shipped omitting #595 from its table, a downstream
consumer (swiftGCS) hit an unpredicted compile error, and we corrected it four
days ago. The same gap, one release later, from the same cause: a break whose
row nobody wrote at merge.

The v3.0.0 intro said the major was "carried by a single merged change", which
is no longer true; it now names both.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@kilo-code-bot

kilo-code-bot Bot commented Aug 18, 2026

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)

Reviewed by nemotron-3-ultra-550b-a55b:free · Input: 218K · Output: 1.7K · Cached: 336.6K

@gsdali
gsdali merged commit 907d8d3 into main Aug 18, 2026
6 checks passed
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