Skip to content

feat: add public Clang modules and Metal headers - #1232

Merged
Kyle-Ye merged 3 commits into
mainfrom
optimize/export
Oct 31, 2026
Merged

Kyle-Ye merged 3 commits into
mainfrom
optimize/export

Conversation

@Kyle-Ye

@Kyle-Ye Kyle-Ye commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Expose UIKit/AppKit APIs through the public OpenSwiftUI Clang module and core framework APIs through OpenSwiftUICore. Reuse the existing C targets and keep one package manifest.
  • Install an umbrella header, OpenSwiftUI_Metal.h, and a public module map in each framework. Exclude generated Swift headers from the public layout.
  • Add conditional CoreTransferable and DeveloperToolsSupport re-exports and update OpenObservation to support module selectors when Observation is also imported.
  • Select observation macros explicitly in unit and compatibility tests to avoid conflicts between Observation and OpenObservation.

Validation

  • Local unit tests pass on macOS and iOS Simulator after the rebase.
  • The Bindable compatibility test passes with both OpenSwiftUI and SwiftUI on macOS.
  • Header-installation and binary-interface script tests pass. Before the rebase, the same Clang module and Metal header implementation passed layout, Swift/Objective-C import, Metal compilation, and OpenSwiftUI-spm Example interface checks on iOS Simulator, macOS, and visionOS Simulator.

Dependency

@Kyle-Ye
Kyle-Ye requested a review from Mx-Iris as a code owner October 29, 2026 16:42
@github-actions github-actions Bot added area: tooling Developer tooling, package manifests, Tuist, scripts, formatting, or release tooling. type: build Build system, packaging, toolchain, release, or compiler support. type: feature New API, behavior, platform support, or user-facing capability. labels Oct 29, 2026
@tuist

tuist Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

🛠️ Tuist Run Report 🛠️

Tests 🧪

Scheme Status Ran test modules Commit
OpenSwiftUI ✅ 7 e3943af5b

Builds 🔨

Scheme Status Duration Commit
OpenSwiftUI ✅ 1m 9s e3943af5b

@codecov

codecov Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 31.37%. Comparing base (c79b90a) to head (a3bf6e4).

Files with missing lines Patch % Lines
...nt/Platform/AppKit/AppKitKeyEventConversions.swift 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1232      +/-   ##
==========================================
+ Coverage   27.75%   31.37%   +3.62%     
==========================================
  Files         908      982      +74     
  Lines       67675    80761   +13086     
==========================================
+ Hits        18782    25340    +6558     
- Misses      48893    55421    +6528     

☔ 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.

@github-actions github-actions Bot added the area: compatibility Compatibility, availability, legacy support, and cross-version behavior. label Oct 31, 2026
@Kyle-Ye
Kyle-Ye merged commit 14d2285 into main Oct 31, 2026
8 checks passed
@Kyle-Ye
Kyle-Ye deleted the optimize/export branch October 31, 2026 06:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: compatibility Compatibility, availability, legacy support, and cross-version behavior. area: tooling Developer tooling, package manifests, Tuist, scripts, formatting, or release tooling. type: build Build system, packaging, toolchain, release, or compiler support. type: feature New API, behavior, platform support, or user-facing capability.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant