ci: build on macos-26 (Xcode 26) so the Python module map resolves#85
Conversation
…solves main's CI has been red since the dual-backend merge: the Build (Python backend) step fails precompiling ColumbaApp's bridging header with 'module Python … clang importer creation failed' (exit 65). The embedded- Python (Columba) scheme's Python.framework clang module map only resolves under Xcode 26.x; the runner was pinned to macos-15/Xcode 16. The fix lived on the combined #82 branch, which was closed (not merged) — so it was stranded, like the interop-harness fixes. - runs-on: macos-15 -> macos-26 (Xcode 26.x). - Select Xcode: pick newest (Xcode_*) instead of Xcode_16* so 26.x wins. - Add an explicit 'Resolve Swift packages' step to avoid the fresh-runner package-resolution race for the test target. Recovered verbatim from origin/feat/dual-backend-arch (#82). Fixes CI for main and unblocks the other open PRs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Greptile SummaryThis CI-only fix recovers the
Confidence Score: 5/5Safe to merge — this is a targeted CI infrastructure fix with no app source changes. All three changes (runner label, Xcode glob, package-resolve step) are straightforward and well-commented. The Xcode sort -V | tail -1 pattern correctly handles version ordering, the two-scheme resolve step addresses the previous reviewer concern about the Swift-native scheme not being explicitly warmed, and there are no app or test source changes that could introduce regressions. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[checkout] --> B[Clone sibling packages]
B --> C[Fetch Python framework + wheels]
C --> D[Select Xcode
macos-26 → pick newest Xcode_*.app]
D --> E[Resolve Swift packages
-scheme Columba
-scheme Columba-Swift]
E --> F[Find simulator]
F --> G[Build — Python backend
-scheme Columba]
F --> H[Build — Swift-native backend
-scheme Columba-Swift]
G --> I[Build and run tests
-scheme Columba]
H --> I
I --> J[Export coverage report
lcov via xccov + python3]
J --> K[Upload to Codecov]
Reviews (3): Last reviewed commit: "address greptile review feedback (greplo..." | Re-trigger Greptile |
|
@greptile review |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Resolve Swift packages for both Columba and Columba-Swift schemes so the Swift-native build step also benefits from the pre-warm (same sibling packages, but explicit removes any doubt). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
main'stestworkflow has been red since the dual-backend merge — every open PR inherits it (this is why #84's CI failed; it's not the CallKit change).Root cause
The
Build (Python backend — default)step fails precompiling ColumbaApp's bridging header:The embedded-Python (
Columba) scheme'sPython.frameworkclang module map only resolves under Xcode 26.x, but the runner was pinned tomacos-15/Xcode 16. The fix was made on the combined #82 branch (feat/dual-backend-arch), which was closed, not merged — so it was stranded (same pattern as the interop-harness fixes in #83).Fix (recovered verbatim from #82)
runs-on: macos-15→macos-26(carries Xcode 26.x)Xcode_*instead ofXcode_16*Resolve Swift packagesstep (fresh-runner resolution race for the test target)No app/source changes. Merging this fixes
main's CI; #83 and #84 should go green on re-run once this lands (theirpull_requestchecks build the merge withmain's fixed workflow).