Skip to content

fix(release): normalize and verify binary interfaces - #1188

Merged
Kyle-Ye merged 2 commits into
mainfrom
optimize/interface
Oct 18, 2026
Merged

Kyle-Ye merged 2 commits into
mainfrom
optimize/interface

Conversation

@Kyle-Ye

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

Copy link
Copy Markdown
Member

Summary

  • Normalize repeated platform introductions in exported Swift interfaces before packaging and final signing, keeping the highest version while preserving complex availability attributes. This works around Repeated @available attributes for the same platform produce an invalid .swiftinterface swiftlang/swift#93415 without changing source availability macros.
  • Add a required release check that builds single-architecture XCFrameworks and compiles the binary package Example from their textual interfaces. The same check can run locally.
  • Add regression coverage for version merging, unchanged attributes and literals, and loading public, private, and package interfaces with the original availability constraints.

Validation

  • All 46 targeted checks passed; interface-loading coverage passed with Swift 6.3.3 and Swift 6.4.
  • The complete iOS Simulator arm64 binary package Example build passed with fresh DerivedData and textual interface loading.

@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: ci GitHub Actions, test infrastructure, runners, checks, or automation. labels Oct 18, 2026
@tuist

tuist Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

🛠️ Tuist Run Report 🛠️

Tests 🧪

Scheme Status Ran test modules Commit
Unknown ⏳ 7 28290ce20
OpenSwiftUI ✅ 7 28290ce20

Builds 🔨

Scheme Status Duration Commit
OpenSwiftUI ✅ 1m 16s 28290ce20
OpenSwiftUICore ✅ 1m 30s 2ca29e44c

@codecov

codecov Bot commented Oct 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 29.91%. Comparing base (f41aa23) to head (d7ee1a6).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1188   +/-   ##
=======================================
  Coverage   29.90%   29.91%           
=======================================
  Files         942      942           
  Lines       73918    73918           
=======================================
+ Hits        22102    22109    +7     
+ Misses      51816    51809    -7     

☔ 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 force-pushed the optimize/interface branch from d7ee1a6 to b678975 Compare October 18, 2026 16:55
@Kyle-Ye
Kyle-Ye merged commit 62c0b99 into main Oct 18, 2026
5 of 8 checks passed
@Kyle-Ye
Kyle-Ye deleted the optimize/interface branch October 18, 2026 16:56
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. type: build Build system, packaging, toolchain, release, or compiler support. type: ci GitHub Actions, test infrastructure, runners, checks, or automation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant