Skip to content

chore: repin OCCTSwift to 1.17.0 (Pass 1a duplication/bug-fix audit) - #83

Merged
gsdali merged 1 commit into
mainfrom
chore/repin-occtswift-1.17.0
Jul 30, 2026
Merged

chore: repin OCCTSwift to 1.17.0 (Pass 1a duplication/bug-fix audit)#83
gsdali merged 1 commit into
mainfrom
chore/repin-occtswift-1.17.0

Conversation

@gsdali

@gsdali gsdali commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

What & why

Repins the OCCTSwift floor from 1.15.0 to 1.17.0 to pick up Pass 1a of OCCTSwift's #377/#380 duplication/bug-fix audit (see v1.17.0 release notes and docs/CHANGELOG.md there).

Note this bump spans 1.15.0 -> 1.17.0, not just Pass 1a in isolation — main had already moved this floor to 1.15.0 (BRepGraph rename, #79) since this repo's previous pin of 1.8.0, so the actual diff under review here also carries whatever shipped between 1.15.0 and 1.17.0, on top of Pass 1a itself.

Pass 1a's changes, verified against this repo:

  • Nine duplicated continuity enums consolidated into two — source-compatible via deprecated-alias shims.
  • Several dedup cleanups — source-compatible.
  • Edge-case bug fixes: arc-length sentinels, Surface.normal at singularities, Curve2D.circle at radius zero.
  • One real API break: Surface.drawMesh/evaluateGrid now return a SurfaceGrid struct instead of [[SIMD3<Double>]]. Zero call sites of either method found anywhere in this repo (grep-verified) — unused here.

Build + test pass locally against the local OCCTSwift sibling checkout at v1.17.0, using OCCTSwift's documented default (source) build path — zero warnings, zero failures.

Environment note, not specific to this PR, and corrected from an earlier draft of this description: this machine has OCCTSWIFT_BRIDGE_PREBUILT=1 set globally (~/.zshrc/~/.bashrc), which makes SwiftPM prefer OCCTSwift's prebuilt OCCTBridge.xcframework when one exists locally. With that override active, the build initially failed — several C bridge functions the Swift layer calls weren't found. This was a stale local, gitignored build artifact in the shared OCCTSwift sibling checkout (Libraries/OCCTBridge.xcframework, predating several Pass 1a bridge additions), not a defect in the real release. The actual published v1.17.0 OCCTBridge.xcframework.zip release asset was downloaded and verified directly — correct contents, checksum matches Package.swift's pin exactly. Once the stale local artifact was removed, the build fell through to that verified-good remote asset and passed. Unsetting the override (falling back to OCCTSwift's own documented default, source build) also works and is what this PR's build/test run above actually used. Noting this for whoever reviews the rest of the ecosystem fan-out, since the same global env var is likely to surface the same local-artifact symptom in other sibling repos too — the fix there is the same (refresh or remove the stale local artifact), not anything upstream in the OCCTSwift release itself.

Checklist

  • New or changed behavior is covered by a unit test in the same PR (not just manual verification) — N/A, this is a dependency floor bump with no behavior change on our side (the one real upstream API break, Surface.drawMesh/evaluateGridSurfaceGrid, is unused in this repo).

Notes for the reviewer

  • Do not merge — opening for review per the ecosystem fan-out coordination; this repo is just one of several dependents being repinned.
  • A stale-looking local Package.resolved (referencing packages absent from this repo's direct dependency graph — Nodal, SwiftGLTF, ThreeMF, Zip) was found and discarded (git checkout -- Package.resolved) before starting this work; it was not committed as part of this PR. Correction found while verifying: those four packages are legitimate transitive dependencies (via OCCTSwiftIO et al.) — a from-source local-sibling build reproduces a very similar-looking Package.resolved shape (SecondMouseAU/OCCT*-family pins dropped because SwiftPM doesn't pin local path dependencies, per the "Package.resolved FOOTGUN #260" note in OCCTSwift's own manifest). Either way, the locally-resolved version must never be committed — the committed Package.resolved here still matches the URL-pinned one from origin/main, untouched by this PR.

@gsdali
gsdali merged commit 5e158f3 into main Jul 30, 2026
2 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