Skip to content

Fix support framework linkage for binary consumers - #959

Merged
Kyle-Ye merged 5 commits into
mainfrom
codex/spm-binary-preview-crash
Aug 1, 2026
Merged

Fix support framework linkage for binary consumers#959
Kyle-Ye merged 5 commits into
mainfrom
codex/spm-binary-preview-crash

Conversation

@Kyle-Ye

@Kyle-Ye Kyle-Ye commented Aug 1, 2026

Copy link
Copy Markdown
Member

Summary

  • make OpenSwiftUICore the single owner of static support modules and AttributeGraph linkage
  • distribute CoreGraphics, QuartzCore, Observation, and RenderBox support as dynamic frameworks
  • link the C++ runtime from OpenSwiftUICore when using the Compute backend
  • resolve local and Tuist-derived dependency projects consistently during XCFramework packaging
  • consume the latest OpenCoreGraphics support-framework dependency fix

Motivation

Binary SwiftPM consumers could load duplicate support types or fail to locate runtime framework dependencies, preventing application and Preview hosts from launching. This keeps static AttributeGraph support owned by OpenSwiftUICore while distributing the remaining runtime support frameworks explicitly.

Validation

  • release-equivalent Compute packaging produces all seven XCFrameworks for macOS, iOS Simulator, and iOS Device
  • every generated XCFramework has the expected three platform slices
  • the local binary-package Example builds successfully for the iOS Simulator

@github-actions github-actions Bot added area: tooling Developer tooling, package manifests, Tuist, scripts, formatting, or release tooling. impact: crash Crash, assertion, or fatal runtime failure. type: build Build system, packaging, toolchain, release, or compiler support. labels Aug 1, 2026
@codecov

codecov Bot commented Aug 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 26.78%. Comparing base (dd6eeb0) to head (eb17682).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #959      +/-   ##
==========================================
- Coverage   26.78%   26.78%   -0.01%     
==========================================
  Files         732      732              
  Lines       52771    52771              
==========================================
- Hits        14136    14135       -1     
- Misses      38635    38636       +1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Kyle-Ye
Kyle-Ye marked this pull request as ready for review August 1, 2026 07:08
@Kyle-Ye
Kyle-Ye merged commit 617f96f into main Aug 1, 2026
7 of 9 checks passed
@Kyle-Ye
Kyle-Ye deleted the codex/spm-binary-preview-crash branch August 1, 2026 07:08
@augmentcode

augmentcode Bot commented Aug 1, 2026

Copy link
Copy Markdown

PR Risk Analyzer Agent🛡️

👀 Human Input Needed
A pair-review briefing is ready for you.

→ Pair Review Briefing

@augmentcode

augmentcode Bot commented Aug 1, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: Fixes binary-consumer linkage by making OpenSwiftUICore the single owner of static support modules and AttributeGraph linkage.

Changes:

  • Moves shim/support linkage out of OpenSwiftUI and into OpenSwiftUICore to avoid duplicate runtime types for binary consumers.
  • Adds conditional C++ runtime linkage (-lc++) for the Compute backend on Darwin platforms.
  • Adjusts packaging product types to distribute CoreGraphics/QuartzCore/Observation/RenderBox support as dynamic frameworks, while keeping AttributeGraph shims static (and adds OpenObservationCxx as static).
  • Improves XCFramework build scripting to consistently resolve dependency projects between local checkouts and Tuist-derived projects, and expands macro-reference cleanup for OpenObservation.
  • Updates the OpenCoreGraphics support dependency revision to pick up the latest support-framework fix.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestion posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.


if [ "${OPENSWIFTUI_USE_LOCAL_DEPS:-0}" = "1" ]; then
echo "$local_project"
else

@augmentcode augmentcode Bot Aug 1, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dependency_project_path echoes local_project unconditionally when OPENSWIFTUI_USE_LOCAL_DEPS=1; if the local checkout path is missing, the resulting xcodebuild failure can be hard to diagnose. Consider validating that the path exists (or emitting a targeted error) before returning it.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: tooling Developer tooling, package manifests, Tuist, scripts, formatting, or release tooling. impact: crash Crash, assertion, or fatal runtime failure. type: build Build system, packaging, toolchain, release, or compiler support.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant