chore: repin OCCTSwift to 1.17.0 (Pass 1a duplication/bug-fix audit) - #83
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Repins the
OCCTSwiftfloor from1.15.0to1.17.0to pick up Pass 1a of OCCTSwift's #377/#380 duplication/bug-fix audit (see v1.17.0 release notes anddocs/CHANGELOG.mdthere).Note this bump spans 1.15.0 -> 1.17.0, not just Pass 1a in isolation —
mainhad 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:
Surface.normalat singularities,Curve2D.circleat radius zero.Surface.drawMesh/evaluateGridnow return aSurfaceGridstruct 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
OCCTSwiftsibling 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=1set globally (~/.zshrc/~/.bashrc), which makes SwiftPM prefer OCCTSwift's prebuiltOCCTBridge.xcframeworkwhen 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 sharedOCCTSwiftsibling checkout (Libraries/OCCTBridge.xcframework, predating several Pass 1a bridge additions), not a defect in the real release. The actual publishedv1.17.0OCCTBridge.xcframework.ziprelease asset was downloaded and verified directly — correct contents, checksum matchesPackage.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
Surface.drawMesh/evaluateGrid→SurfaceGrid, is unused in this repo).Notes for the reviewer
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 (viaOCCTSwiftIOet al.) — a from-source local-sibling build reproduces a very similar-lookingPackage.resolvedshape (SecondMouseAU/OCCT*-family pins dropped because SwiftPM doesn't pin local path dependencies, per the "Package.resolvedFOOTGUN #260" note inOCCTSwift's own manifest). Either way, the locally-resolved version must never be committed — the committedPackage.resolvedhere still matches the URL-pinned one fromorigin/main, untouched by this PR.