Skip to content

v1.3.2

Latest

Choose a tag to compare

@gsdali gsdali released this 19 Aug 08:14
· 4 commits to main since this release
c6fbe2b

Absorbs OCCTSwift v3.0.0.

There was no pin to bump. This package declares exactly one dependency, OCCTSwiftTools, and reaches the kernel through it. OCCTSwift 3.0.0 arrives transitively inside the existing 1.6.1..<2.0.0 range, via OCCTSwiftTools v1.6.4.

That is exactly why this package needed attention rather than why it could be skipped: it has real source breaks despite having no version to change.

The bounds accessors became Optional, and one default was already wrong

AreaSelection folded its bounds read into the enclosing condition, so an object with no bounding box is simply not a rubber-band candidate. Under the old fabricated (0,0,0)-(0,0,0) it would have presented as a zero-size box at the origin and matched any selection rectangle drawn over the origin.

DimensionAnchor's four resolvers previously used .zero as their failure value, which is the same defect one level up. Rather than unwrap into that, the Optional is now propagated: resolve(_:) and all four resolvers return SIMD3<Float>?, and anchorPoints returns an empty array. This makes an already-documented but previously unreachable path live, namely distance's "nan if either anchor failed to resolve". add(_:) now registers a dimension without pushing a measurement instead of drawing it at the origin.

All types involved are internal, so no public API signature changed.

Known issue, pre-existing and not from this release

InteractiveContextMutationTests fails 5 assertions, tracked as #46. 192 of 193 tests pass.

This is not a v3.0.0 regression. The test asserts the raw-versus-deduplicated Shape.faces() split that OCCTSwift 2.0.0 erased, and 2.0.0 arrived here transitively on 2026-08-10 when OCCTSwiftTools v1.6.3 released. Shape.faces() is byte-identical between the v2.0.0 and v3.0.0 tags, so this release cannot have caused it. It went unnoticed for nine days because this repo runs no tests in CI, which is being fixed in #47 and recorded fleet-wide as ecosystem#40.

Fixing it needs a decision about whether FaceIdentityTable should key on faces() or the still-occurrence-based orientedFaces(), not relaxed assertions, which would delete the regression test #31 exists to keep.

This release ships because holding it would block OCCTSwiftUX and OCCTSwiftCADKit on a defect that predates it and that it does not touch.

Part of the ecosystem-wide v3.0.0 fanout, ecosystem#39.