Skip to content

release: 2.2.7b1 - #62

Merged
NiJingzhe merged 11 commits into
masterfrom
dev
Oct 25, 2026
Merged

NiJingzhe merged 11 commits into
masterfrom
dev

Conversation

@NiJingzhe

Copy link
Copy Markdown
Collaborator

2.2.7b1 (beta): the geometry engine is C++ on OpenCASCADE, shipped as prebuilt wheels for Linux x86_64, Linux aarch64, macOS arm64 and Windows x86_64 (Python 3.10-3.13).

  • cut_rsolid_list keeps every piece of a cut; cut_rsolid raises instead of silently dropping pieces when a cut splits the body.
  • Release workflow verified end to end by a dry run on the same content (4 wheels, tests on Python 3.10-3.13, release verification).

Notes: docs/updates/2.2.7b1.md.

🤖 Generated with Claude Code

NiJingzhe and others added 11 commits October 24, 2026 11:33
setup-uv's post step failed the validate job: nothing had been cached.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… platforms and keeps the OCCT cache

First runs of the release workflow on GitHub found portability errors that the local toolchains accept:
- Apple clang 15 (Xcode 15.4) cannot capture a structured binding in a lambda (role_tags.cpp);
- windows.h defines near and far as empty macros: parameters and locals named near/far/small are renamed
  (probes.cpp, sketch/diagnostics.cpp and the C++ tests).
Checked the whole C++ tree with clang 15 + libc++ 15: no other failure.

Workflow: a platforms input for dry runs, Ninja with -k 0 on Windows (all compiler errors in one run), the static
OCCT cache is saved even when the wheel build fails, setup-uv without a cache where nothing is cached.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…source tree

The validation workers put the checkout's src on PYTHONPATH first; with a wheel installed and no in-place build that
imported a package without its compiled module.  src is added only when it is a built tree.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
OpenCASCADE's integration over the B-spline thread faces differs between builds at the 1e-5 level (the static OCCT of
the Linux wheels against the reference's); the geometry is the same.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…ception per case

Areas, volumes and bounding boxes of the parity tests come out of OpenCASCADE's numerical integration and
optimisation, which differ between OCCT builds at the 1e-5 level.  GEOMETRY_REL (ref.py) is the default of every
comparison helper; counts, names, ids and strings are still compared exactly.  Replaces the per-name exception for
the modeled-thread areas.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
The builders keep the first candidate angle whose Boolean is valid; which one that is
depends on last-bit floating point of the helix sweep, so it differs between platforms.
The angle and the topology counts it implies are dropped from the comparison.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…rop pieces

A cut that splits the body returned only the first solid from cut_rsolid, silently losing the rest
(a slot through a bar reported half the volume). cut_rsolid_list returns all pieces (empty when the
body is consumed), is recorded as make_cut_rsolid_list and replays. cut_rsolid now raises when the
result is not exactly one solid and names cut_rsolid_list. Tests that relied on the dropped sliver
of a tangent cut use a tool that does not touch the walls.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Release workflow fixes, cut_rsolid_list, unified geometry tolerance (2.2.7b1)
@NiJingzhe
NiJingzhe merged commit 7f652b0 into master Oct 25, 2026
12 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