Skip to content

Make SPM the canonical build; isolate Carthage project under ios/#55

Merged
alexvbush merged 1 commit into
mainfrom
spm-canonical-build
Jul 12, 2026
Merged

Make SPM the canonical build; isolate Carthage project under ios/#55
alexvbush merged 1 commit into
mainfrom
spm-canonical-build

Conversation

@alexvbush

Copy link
Copy Markdown
Collaborator

Why

The repo shipped a Swift Package (Package.swift at the root) and a Carthage RIBs.xcodeproj sitting right next to it. When both live at the root, xcodebuild resolves the .xcodeproj over the package, so the SPM build was effectively shadowed — you couldn't build/test the package from the root without moving the project aside first.

What

  • Move RIBs.xcodeprojios/RIBs.xcodeproj so the root resolves directly to Package.swift. The Carthage project is preserved (not deleted) for Carthage consumers, just no longer shadowing the package. Its group paths are fixed for the new depth (RIBs../RIBs, RIBsTests../RIBsTests).
  • Add an spm-test CI job that builds and tests the package straight from the root. It resolves an available simulator at runtime (same non-rotting approach as ci: resolve iOS simulator at runtime instead of pinning iPhone 16 #54) rather than pinning a model name.
  • Drop .travis.yml — CI runs on GitHub Actions.
  • Align the Cartfile RxSwift pin (~> 6.9.0) with Package.swift.

Verification

  • xcodebuild test -scheme RIBs from the root (SPM package) → 55/55 passing on an iOS 26 simulator.
  • xcodebuild -project ios/RIBs.xcodeproj -list resolves the RIBs scheme (path fixups valid).
  • The Example/CocoaPods build is unaffected: Example/ has its own project and its Podfile reads RIBs.podspec (source globs), with no reference to the root xcodeproj.

🤖 Generated with Claude Code

The Swift Package is now the primary, unshadowed build at the repo root. The
Carthage Xcode project moves under `ios/` so it no longer sits next to (and
shadow) `Package.swift`, which previously forced `xcodebuild` to pick the
Carthage project over the package at the root.

- Move `RIBs.xcodeproj` to `ios/RIBs.xcodeproj` and fix its group paths
  (`RIBs` -> `../RIBs`, `RIBsTests` -> `../RIBsTests`) for the new depth.
- Add an `spm-test` CI job that builds and tests the package directly from the
  root, resolving an available simulator at runtime (no pinned model name).
- Drop the retired `.travis.yml` (CI runs on GitHub Actions).
- Align the Cartfile RxSwift pin (~> 6.9.0) with `Package.swift`.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01J9mruKG6RSYg6SfPaq6MPG
@alexvbush alexvbush merged commit d29015a into main Jul 12, 2026
5 checks passed
@alexvbush alexvbush deleted the spm-canonical-build branch July 12, 2026 22:35
@alexvbush alexvbush mentioned this pull request Jul 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant