Skip to content

Add Tuist support and Example project#224

Merged
Kyle-Ye merged 4 commits intomainfrom
feature/tuist-support
Mar 25, 2026
Merged

Add Tuist support and Example project#224
Kyle-Ye merged 4 commits intomainfrom
feature/tuist-support

Conversation

@Kyle-Ye
Copy link
Contributor

@Kyle-Ye Kyle-Ye commented Mar 25, 2026

Summary

  • Replace hand-maintained OpenAttributeGraph.xcodeproj with Tuist project generation (Project.swift)
  • Add Example/ with minimal macOS commandLine app consuming OpenAttributeGraph via SPM
  • Update build_xcframework.sh to auto-run tuist generate before archiving
  • Add Tuist docs to README

Details

  • Uses defaultSettings: .none so xcconfigs remain the single source of truth for build settings
  • Uses Tuist 4.x API (Tuist struct, Tuist/Package.swift)
  • Pins tuist 4.156.0 via mise.toml
  • Fixes pre-existing missing return in GraphDescription.cpp for non-ObjC path

Verified

  • tuist generate + xcodebuild build for macOS: BUILD SUCCEEDED
  • Scripts/build_xcframework.sh: xcframework built for macOS, iOS, iOS Simulator
  • Example/: tuist install && tuist generate succeeds

Test plan

  • tuist generate --no-open && xcodebuild build -project OpenAttributeGraph.xcodeproj -scheme OpenAttributeGraph -destination "generic/platform=macOS" ENABLE_USER_SCRIPT_SANDBOXING=NO
  • cd Example && tuist install && tuist generate --no-open
  • Scripts/build_xcframework.sh

Kyle-Ye added 4 commits March 26, 2026 01:28
- Add root Project.swift replacing hand-maintained xcodeproj
- Add Tuist.swift and .mise.toml (pins tuist 4.115.1)
- Add Example/ with minimal commandLine app consuming OpenAttributeGraph
- Update build_xcframework.sh to use tuist generate
- Update .gitignore for Tuist-generated files
Replaced by Tuist project generation via Project.swift.
- Fix libz SDK dependency name (use "z" not "libz" to avoid double prefix)
- Add GCC_TREAT_WARNINGS_AS_ERRORS=NO and DEFINES_MODULE=NO overrides
- Fix missing return in GraphDescription.cpp when OAG_OBJC_FOUNDATION=0
- Use Tuist 4.x API (Tuist struct) instead of deprecated Config()
- Add defaultSettings: .none to let xcconfigs drive all build settings
- Add Tuist/Package.swift for Tuist 4.x external dependency support
- Add explicit headers configuration for project headers
- Use .pre(path:) script API with explicit input/output paths
- Rename .mise.toml to mise.toml, update to tuist 4.156.0
- Add Tuist/.build/ and *.xcframework to .gitignore
- Add "Xcode (via Tuist)" section to README.md
- Update Example/Tuist.swift to Tuist 4.x API
@github-actions github-actions bot added enhancement New feature or request documentation Improvements or additions to documentation build issue platform: macOS platform: iOS labels Mar 25, 2026
@codecov
Copy link

codecov bot commented Mar 25, 2026

Codecov Report

❌ Patch coverage is 0% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 32.10%. Comparing base (2d5c015) to head (22af58d).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...s/OpenAttributeGraphCxx/Graph/GraphDescription.cpp 0.00% 1 Missing ⚠️

❌ Your patch status has failed because the patch coverage (0.00%) is below the target coverage (70.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #224      +/-   ##
==========================================
+ Coverage   31.20%   32.10%   +0.90%     
==========================================
  Files          71       71              
  Lines        2628     2601      -27     
==========================================
+ Hits          820      835      +15     
+ Misses       1808     1766      -42     
Flag Coverage Δ
ios 32.11% <0.00%> (+0.90%) ⬆️
macos 10.15% <ø> (ø)
ubuntu 12.03% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...s/OpenAttributeGraphCxx/Graph/GraphDescription.cpp 0.00% <0.00%> (ø)

... and 9 files with indirect coverage changes

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

@augmentcode
Copy link

augmentcode bot commented Mar 25, 2026

🤖 Augment PR Summary

Summary: This PR replaces the checked-in Xcode project with Tuist-based project generation, and adds a minimal Example app to consume OpenAttributeGraph via SPM.

Changes:

  • Removed the hand-maintained OpenAttributeGraph.xcodeproj from the repo and introduced root Project.swift / Tuist.swift for Tuist generation
  • Added Example/ as a Tuist project with a macOS command-line target that imports OpenAttributeGraph
  • Updated Scripts/build_xcframework.sh to run tuist generate before archiving for xcframework creation
  • Documented Tuist-based Xcode generation/build steps in README.md
  • Pinned Tuist (4.156.0) via mise.toml and adjusted .gitignore for generated artifacts
  • Fixed a missing return path in GraphDescription.cpp when ObjC Foundation isn’t available

Technical Notes: Tuist generation uses defaultSettings: .none so the existing xcconfigs remain the source of truth for build settings.

🤖 Was this summary useful? React with 👍 or 👎

Copy link

@augmentcode augmentcode bot left a comment

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.

sources: [
"Sources/Platform/**",
"Sources/Utilities/**",
"Sources/OpenAttributeGraphCxx/**",
Copy link

Choose a reason for hiding this comment

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

The sources/headers globs here will also match non-build files under these trees (e.g. Sources/OpenAttributeGraphCxx/include/OpenAttributeGraphCxx/Vector/vector.tpp and Sources/Utilities/include/SwiftBridging/README.md), which the previous Xcode project explicitly excluded. Could you confirm Tuist filters these out so they don’t end up in build phases or in the header-processing script’s inputs?

Severity: medium

Fix This in Augment

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

@Kyle-Ye Kyle-Ye merged commit 989983e into main Mar 25, 2026
14 of 16 checks passed
@Kyle-Ye Kyle-Ye deleted the feature/tuist-support branch March 25, 2026 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build issue documentation Improvements or additions to documentation enhancement New feature or request platform: iOS platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant