Skip to content

Hide raw OpenUSD types from the public USDInterop surface #6

@elkraneo

Description

@elkraneo

Summary

Deconstructed now builds on the public USDInterop package family, but the public graph still exposes OpenUSD 6.1.0-preflight.1 more than intended.

This is not a business/IP leak. It is an API hygiene and build-friction issue.

Problem

Deconstructed does not publicly export OpenUSD types from its own app-facing modules, but USDInterop still exposes a public shim that uses raw pxr types in public signatures:

  • Sources/USDInterop/USDInterop+OpenUSDShim.swift

That keeps OpenUSD visible in the public technical contract even though the intended consumer contract is:

  • USDInterfaces
  • USDInterop
  • USDInteropCxx
  • USDOperations

with OpenUSD treated as an implementation dependency of the package family, not as part of the intended app-facing API.

Why this matters

  • creates accidental public API commitment to raw pxr types
  • increases build and macro-approval friction for downstream consumers
  • weakens the cleanliness of the USDOperations / USDTools split

Desired outcome

  • keep OpenUSD out of public-facing signatures where possible
  • make USDInteropOpenUSDShim internal or otherwise non-consumer-facing if only USDOperations needs it
  • preserve the existing functionality while tightening the public contract

Acceptance criteria

  • no public USDInterop or USDOperations API exposes raw OpenUSD / pxr types unless there is a deliberate documented exception
  • OpenUSD remains an implementation dependency of the USDInterop package family rather than an intended downstream app API surface
  • Deconstructed continues to build on the public USDInterop package family without requiring app code to import raw OpenUSD

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions