Skip to content

rename: TopologyGraph -> BRepGraph, bump OCCTSwift floor to 1.15.0#79

Merged
gsdali merged 1 commit into
mainfrom
rename/78-topologygraph-to-brepgraph
Jul 20, 2026
Merged

rename: TopologyGraph -> BRepGraph, bump OCCTSwift floor to 1.15.0#79
gsdali merged 1 commit into
mainfrom
rename/78-topologygraph-to-brepgraph

Conversation

@gsdali

@gsdali gsdali commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

OCCTSwift renamed its Swift wrapper class TopologyGraph -> BRepGraph to
match the C++ package it wraps (SecondMouseAU/OCCTSwift#335, shipped in
v1.15.0),
leaving a deprecated typealias so downstream consumers keep compiling with
a warning. Tracked here as #78.

This PR does the mechanical migration:

  • OCCTSwift floor bumped 1.12.9 -> 1.15.0 (Package.swift). The bare
    BRepGraph symbol doesn't exist before 1.15.0 (only the deprecated
    TopologyGraph typealias does, and only from that release forward), so
    once our own code stops using the deprecated name the floor has to
    guarantee the new symbol is actually present — the previous open
    from: "1.12.9" range technically permitted 1.15.0 but didn't require it.
    Package.resolved refreshed accordingly (occtswift 1.8.0 -> 1.15.0; the
    rest of the cohort floats up within their existing open floors: AIS 1.0.5,
    IO 1.0.2, Mesh 1.1.6, Tools 1.3.1, Viewport 1.1.24 — no manifest changes
    needed for those, already-open ranges).

  • TopologyGraph -> BRepGraph across every real reference (re-grepped
    the whole tree rather than trusting the tracking issue's file list
    verbatim, which turned up a few more spots than originally filed):

    • Sources/ScriptHarness/BREPGraphJSONExporter.swift
    • Sources/ScriptHarness/BREPGraphSQLiteExporter.swift
    • Sources/ScriptHarness/GraphIO.swift
    • Sources/ScriptHarness/ScriptContext.swift
    • Sources/occtkit/Commands/GraphSelect.swift
    • Sources/occtkit/Commands/GraphML.swift
    • Sources/GraphML/main.swift
    • Package.swift (comment)
    • CLAUDE.md (dependency-floor writeup + a Key Conventions bullet)
    • README.md (Requirements table floor bump)
    • docs/guides/architecture.md
    • docs/reference/topology-graph.md, docs/reference/script-harness.md,
      docs/reference/ScriptHarness.md, docs/reference/occtkit-verbs.md
    • docs/guides/cookbook/topology-graph.md

    Left the "Topology graph" CLI-verb-family name untouched (page titles,
    topology-graph.md filenames, the graph-validate/compact/dedup/
    query/ml/select verb-group prose) — that's this repo's own product
    terminology for a command family, distinct from the OCCTSwift class name.
    docs/reference/introspection.md already shows the two coexisting
    ("Topology graph family" alongside "BRepGraph output") from before this
    PR, which is the pattern followed here. Pure identifier rename otherwise —
    no behavior change.

Pairs with OCCTSwift#335 / v1.15.0.

Test plan

  • swift package resolve (after deleting Package.resolved) — resolves
    OCCTSwift at 1.15.0
  • swift build — clean, 0 errors, 0 warnings
  • swift build --build-tests — clean, 0 errors, 0 warnings
  • swift test — 3/3 tests pass (DrawingComposerTests; this repo has no
    dedicated test target over ScriptHarness/graph exporters, per
    CLAUDE.md's "No tests exist" note for that area)
  • Manual smoke test against recipes/01-mounting-bracket/output.brep:
    occtkit graph-validate, occtkit graph-select --query face-adjacency,
    occtkit graph-ml, and the standalone GraphML target all run and
    produce correct output against the rebuilt BRepGraph path

Version

Latest tag is v1.4.6. This repo's own convention (per its release history)
treats floor bumps that are required by an actual API/behavior change as
minor bumps (e.g. v1.1.0 for the OCCTSwift 1.7.1 floor), reserving patch
bumps for same-API crash-fix repins (v1.4.3-v1.4.6). Since this floor bump is
required by the renamed symbol rather than being a drop-in crash fix, I'd
suggest v1.5.0 as the next tag — but leaving the tag/release itself to
the maintainer, per usual.

Closes #78

🤖 Generated with Claude Code

OCCTSwift v1.15.0 (SecondMouseAU/OCCTSwift#335) renamed the Swift wrapper
class TopologyGraph -> BRepGraph to match the C++ package it wraps, leaving
a deprecated typealias for compatibility. This repo built against the
deprecated name; migrate every real reference (Sources, doc code samples,
CLAUDE.md) onto BRepGraph directly.

The OCCTSwift dependency floor moves 1.12.9 -> 1.15.0: the bare BRepGraph
symbol does not exist before that release, so an open `from:` range alone
isn't enough once the deprecated alias is dropped from our own code.
Package.resolved is refreshed accordingly (occtswift 1.8.0 -> 1.15.0; the
rest of the cohort floats up within their existing open floors).

Left the "Topology graph" CLI-verb-family name (docs/reference/topology-graph.md,
docs/guides/cookbook/topology-graph.md, and prose describing the
graph-validate/compact/dedup/query/ml/select verb group) untouched --
that's this repo's own product terminology for a command family, not the
OCCTSwift class name, and docs/reference/introspection.md already
demonstrates the two coexisting ("Topology graph family" / "BRepGraph
output") pre-rename.

Closes #78

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@gsdali
gsdali merged commit 68c8ccd into main Jul 20, 2026
0 of 2 checks passed
@gsdali
gsdali deleted the rename/78-topologygraph-to-brepgraph branch July 20, 2026 11:41
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.

Migrate off deprecated TopologyGraph → BRepGraph (OCCTSwift #333)

1 participant