Skip to content

Conversation

dplewis
Copy link
Member

@dplewis dplewis commented Oct 13, 2025

New Pull Request Checklist

Issue Description

Xcode, iOS and MacOS versions not aligned to readme

Summary by CodeRabbit

  • Chores

    • CI/toolchain updated to Xcode 16.4 and platform versions aligned across modules for more consistent builds.
  • Bug Fixes

    • Improved import and compatibility handling to reduce platform-specific build issues and mismatches between toolchains.
  • Documentation

    • Docs workflow now runs on a newer macOS runner to match the updated toolchain.

Copy link

parse-github-assistant bot commented Oct 13, 2025

🚀 Thanks for opening this pull request! We appreciate your effort in improving the project. Please let us know once your pull request is ready for review.

@parseplatformorg
Copy link
Contributor

parseplatformorg commented Oct 13, 2025

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

Copy link

coderabbitai bot commented Oct 13, 2025

📝 Walkthrough

Walkthrough

CI workflows updated to reference Xcode 16.4.0 and align iOS/watchOS/tvOS/macOS versions across module matrices; docs runner moved to macos-15. Two source headers adjusted: conditional Bolts import in PFAnalytics.h and changed #import to #include for TargetConditionals.h in PFConstants.h.

Changes

Cohort / File(s) Change Summary
CI: primary matrix updates
/.github/workflows/ci.yml
Updated CI_XCODE_16 path to Xcode 16.4.0; bumped iOS/watchOS/tvOS versions where applicable (18.1 → 18.5, 11.1 → 11.5); adjusted macOS entries (14 ↔ 15, 15 → 15-intel) and developerDir assignments across Core and LiveQuery module matrices; docs runner moved from macos-14 to macos-15.
CI: release workflows
/.github/workflows/release-automated.yml, /.github/workflows/release-manual-docs.yml
Updated CI_XCODE_16 env path from /Applications/Xcode_16.1.0.app/Contents/Developer to /Applications/Xcode_16.4.0.app/Contents/Developer.
Source header adjustments
Parse/Parse/Source/PFAnalytics.h, Parse/Parse/Source/PFConstants.h
PFAnalytics.h: use conditional import (#if __has_include(<Bolts/BFTask.h>) ... fallback to local BFTask.h). PFConstants.h: replaced #import <TargetConditionals.h> with #include <TargetConditionals.h>. No public API/signature changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Description Check ⚠️ Warning The PR description is incomplete compared to the required template. While it includes the "New Pull Request Checklist" and a minimal "Issue Description" section stating "Xcode, iOS and MacOS versions not aligned to readme," the description is missing two required template sections: the "Approach" section that should explain how the author intends to solve the issue, and the "TODOs before merging" checklist section. The Issue Description itself is also inadequately detailed—it merely restates a problem without explaining what specifically needs to be fixed or why the current configuration is incorrect. This lack of explanation makes it difficult for reviewers to understand the full scope and intent of the changes without referencing the code diffs. Complete the PR description by adding the missing "Approach" section, which should detail the specific changes being made (e.g., updating Xcode from 16.1.0 to 16.4.0, updating platform version numbers to match README requirements, and fixing import paths). Also add the "TODOs before merging" section to indicate whether any additional steps are needed. Additionally, expand the Issue Description to explain the specific problem—for example, that Xcode 15 CI jobs were configured with iOS 18.1, watchOS 11.1, and tvOS 18.1, which are not available in Xcode 15, causing simulator availability failures.
Title Check ❓ Inconclusive The title "ci: Fix build" is extremely vague and generic, lacking any specific information about what is actually being fixed. While it correctly identifies that the changes relate to CI, the title does not convey the actual nature of the changes (updating Xcode versions from 16.1.0 to 16.4.0, aligning platform versions to match the README compatibility matrix, and fixing import paths). According to the PR objectives, the core issue is that "Xcode, iOS and macOS versions in CI are not aligned with the README compatibility matrix, causing build failures," yet the title fails to reflect this specific problem and could apply to almost any CI-related fix.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b5f649f and 14c198a.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml (4 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/ci.yml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (4)
.github/workflows/release-automated.yml (2)

6-6: Avoid hard-coded Xcode path; use setup-xcode and verify availability on macOS 15 runners.

Hard-coding /Applications/Xcode_16.4.0.app is brittle across runner images. Prefer apple-actions/setup-xcode@v2 with xcode-version: '16.4', then rely on DEVELOPER_DIR set by the action. Also verify that this exact path exists on macos-15; otherwise the docs step will fail.


14-21: Optional: Update Actions to current majors (compatibility with Node 22).

actions/checkout@v2 and actions/setup-node@v2 are outdated; consider @v4 for both (and actions/cache@v4) to ensure support for Node 22 and benefit from fixes.

.github/workflows/release-manual-docs.yml (1)

9-9: Same here: replace hard-coded Xcode 16.4 path with setup-xcode.

Use apple-actions/setup-xcode@v2 (xcode-version: '16.4') and drop the env-level CI_XCODE_16. This is more robust across runner images.

.github/workflows/ci.yml (1)

12-12: Prefer setup-xcode over hard-coded DEVELOPER_DIR; watch for macOS 14 + Xcode 16.4 mismatch.

  • Hard-coding /Applications/Xcode_16.4.0.app may fail if that app isn’t present on the selected runner image. Use apple-actions/setup-xcode@v2 with matrix-provided xcode-version (e.g., '15.4'/'16.4') and remove DEVELOPER_DIR indirection.
  • Some matrix entries run on macos-14 but reference CI_XCODE_16 (e.g., “Core Module, macOS 14”). Confirm macos-14 images actually contain Xcode 16.4 at that path; otherwise switch those to macos-15 or to CI_XCODE_15.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a54f842 and d651518.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml (7 hunks)
  • .github/workflows/release-automated.yml (1 hunks)
  • .github/workflows/release-manual-docs.yml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: LiveQuery Module, tvOS 18
  • GitHub Check: Core Module, iOS 18
  • GitHub Check: LiveQuery Module, iOS 17
  • GitHub Check: Core Module, macOS 14
  • GitHub Check: docs
🔇 Additional comments (6)
.github/workflows/ci.yml (6)

33-41: LGTM: Xcode 16 block versions updated (iOS/watchOS/tvOS/macOS).

The 18.5/11.5/18.5/15 bumps align with current simulator images. Looks good.


49-55: LGTM: Core Module iOS 18 updated to 18.5.


70-76: LGTM: LiveQuery iOS 18 updated to 18.5.


90-96: LGTM: LiveQuery watchOS updated to 11.5.


102-108: LGTM: LiveQuery tvOS updated to 18.5.


187-187: LGTM: Docs job runner moved to macos-15.

Consistent with using the Xcode 16 toolchain for Jazzy docs.

coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 13, 2025
Copy link

codecov bot commented Oct 13, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.65%. Comparing base (dd05d41) to head (14c198a).
⚠️ Report is 55 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff             @@
##           master    #1865       +/-   ##
===========================================
+ Coverage   64.24%   82.65%   +18.41%     
===========================================
  Files         201      282       +81     
  Lines       23233    30735     +7502     
===========================================
+ Hits        14926    25405    +10479     
+ Misses       8307     5330     -2977     

☔ View full report in Codecov by Sentry.
📢 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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (3)
.github/workflows/ci.yml (3)

12-12: Verify Xcode 16.4 path exists on runners

The hardcoded path must exist on macos-15 and any job that references CI_XCODE_16. Add an early sanity check to print selected toolchain and SDKs to fail fast if missing.

Example step to add before Build-Test:

- name: Verify Xcode toolchain
  run: |
    echo "DEVELOPER_DIR=${DEVELOPER_DIR}"
    xcodebuild -version
    xcodebuild -showsdks
  env:
    DEVELOPER_DIR: ${{ env[matrix.developerDir] && env[env[matrix.developerDir]] || env.CI_XCODE_16 }}

34-41: Bumped simulator OS targets; ensure runtimes/devices exist under Xcode 16.4

iOS/watchOS/tvOS/macOS set to 18.5/11.5/18.5/15. If flakes occur, add a pre-flight check (xcrun simctl list) or pre-create required devices.

Optional pre-flight:

- name: List runtimes/devices
  run: |
    xcrun simctl list runtimes
    xcrun simctl list devices
  env:
    DEVELOPER_DIR: ${{ env[matrix.developerDir] }}

187-201: Docs runner moved to macos-15; uses CI_XCODE_16

Ensure Xcode 16.4 is present on macos-15 image. Add a tiny sanity step to aid debugging (xcodebuild -version, swift --version).

Example:

- name: Verify Xcode for docs
  run: |
    xcodebuild -version
    xcrun swift --version
  env:
    DEVELOPER_DIR: ${{ env.CI_XCODE_16 }}
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d651518 and 32aac36.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml (5 hunks)
🔇 Additional comments (9)
.github/workflows/ci.yml (9)

47-49: Good pin for iOS 17 jobs to Xcode 15/macOS 14

This improves availability of older runtimes/sims. LGTM.


51-55: iOS 18 → 18.5 under Xcode 16.4

Looks right. Please confirm the “iPhone 16” sim exists by default; if not, pre-create it via simctl.


56-59: Core macOS 14 under Xcode 15

Consistent with older target support. LGTM.


68-70: LiveQuery iOS 17 pinned to Xcode 15/macOS 14

Solid choice to avoid missing runtimes. LGTM.


72-76: LiveQuery iOS 18 → 18.5 on Xcode 16.4

Update looks correct.

Please confirm the “iPhone 16” device is available in this runner image/Xcode combo.


88-90: watchOS 10 on Xcode 15/macOS 14

Appropriate to keep older watchOS support. LGTM.


92-96: watchOS 11 → 11.5 on Xcode 16.4

Looks good; ensure Series 10 (46mm) sim exists in this image.


100-101: tvOS 17 on Xcode 15/macOS 14

Matches the pattern for older runtimes. LGTM.


104-107: tvOS 18 → 18.5 on Xcode 16.4

Version bump looks correct.

Confirm the tvOS 18.5 runtime is present in Xcode 16.4 on macos-15.

coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 13, 2025
coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 13, 2025
@mtrezza
Copy link
Member

mtrezza commented Oct 14, 2025

Re-running CI to see which jobs are just flaky

@dplewis
Copy link
Member Author

dplewis commented Oct 15, 2025

@mtrezza Not sure where to go from here without removing those files from the test build

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/ci.yml (1)

22-32: Align Xcode 15 matrix to supported runtimes
Xcode 15.4 supports only iOS 17.5, watchOS 10.5 and tvOS 17.5 simulators—update accordingly:

           - name: Xcode 15
             script: build:starters
-            iosVersion: '18.1'
+            iosVersion: '17.5'
             iosDeviceModel: iPhone 16
-            watchOsVersion: '11.1'
+            watchOsVersion: '10.5'
             watchDeviceModel: Apple Watch Series 10 (46mm)
-            tvOsVersion: '18.1'
+            tvOsVersion: '17.5'
             tvDeviceModel: Apple TV
             macosVersion: 14
             developerDir: CI_XCODE_15

Verify that the device models remain valid for these OS versions.

🧹 Nitpick comments (2)
.github/workflows/release-manual-docs.yml (1)

9-9: Pin to Xcode 16.4.0: verify runner image or use setup-xcode for robustness

macos-15 must have /Applications/Xcode_16.4.0.app present. Consider setup-xcode to avoid image drift.

Example insertion before “Create Jazzy Docs”:

+      - name: Select Xcode 16.4.0
+        uses: maxim-lobanov/setup-xcode@v1
+        with:
+          xcode-version: '16.4'
.github/workflows/ci.yml (1)

187-201: Docs job runner moved to macos-15 — consider pinning Ruby version for parity with manual docs

To avoid tooling drift, pin Ruby like in release-manual-docs (3.1.0).

       - name: Setup Ruby
         uses: ruby/setup-ruby@v1
         with:
+          ruby-version: '3.1.0'
           bundler-cache: true

Also consider a short preflight to surface DEVELOPER_DIR selection:

+      - name: Xcode env preflight
+        run: |
+          xcode-select -p
+          xcodebuild -version
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e659991 and 2dc06e9.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml (5 hunks)
  • .github/workflows/release-automated.yml (1 hunks)
  • .github/workflows/release-manual-docs.yml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/release-automated.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Core Module, iOS 17
  • GitHub Check: LiveQuery Module, iOS 18
  • GitHub Check: Core Module, macOS 15
  • GitHub Check: Xcode 15
  • GitHub Check: Xcode 16
🔇 Additional comments (2)
.github/workflows/ci.yml (2)

12-12: CI_XCODE_16 bumped to 16.4.0 — LGTM; confirm availability on macos-15 runners

Change looks good. Ensure Xcode_16.4.0 exists on macos-15 images used in this workflow.


34-41: Updated Xcode 16 block to 18.5/11.5/18.5 + macOS 15 — LGTM

These versions align with Xcode 16 usage.

coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 15, 2025
@mtrezza
Copy link
Member

mtrezza commented Oct 15, 2025

Which files?

@dplewis
Copy link
Member Author

dplewis commented Oct 15, 2025

UserFileCodingLogicTests, UserControllerTests, UserUnitTests, not sure if there are others. I don't know what the underlying issue is.

@mtrezza
Copy link
Member

mtrezza commented Oct 15, 2025

@coderabbitai can you analyze the issue and propose a solution?

Copy link

coderabbitai bot commented Oct 15, 2025

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash

# Find the test files mentioned
echo "=== Finding test files ==="
fd -t f "UserFileCodingLogicTests|UserControllerTests|UserUnitTests"

echo -e "\n=== Finding README ==="
fd -t f "^README"

echo -e "\n=== Checking CI workflow structure ==="
cat .github/workflows/ci.yml | head -100

Length of output: 3543


🏁 Script executed:

#!/bin/bash

# Read the README to check version requirements
echo "=== README content (first 200 lines) ==="
head -200 README.md

echo -e "\n=== Examining test file headers ==="
for file in Parse/Tests/Unit/UserControllerTests.m Parse/Tests/Unit/UserFileCodingLogicTests.m Parse/Tests/Unit/UserUnitTests.m; do
  echo -e "\n--- $file (first 50 lines) ---"
  head -50 "$file"
done

echo -e "\n=== Checking for iOS 18.1 references in CI ==="
rg -n "18\.1" .github/workflows/ci.yml

echo -e "\n=== Looking for Xcode version compatibility issues ==="
rg -n "Xcode" README.md

Length of output: 11429


🏁 Script executed:

#!/bin/bash

# Check the exact Xcode 15 configuration in CI
echo "=== Xcode 15 entry in CI (should match README) ==="
rg -A 8 "name: Xcode 15$" .github/workflows/ci.yml

# Check what iOS simulators are available in Xcode 15.4
echo -e "\n=== Checking Xcode 15 compatibility ==="
echo "According to README: Xcode 15 -> iOS 17, macOS 14, watchOS 10, tvOS 17"
echo "According to Apple: Xcode 15.4 supports iOS 17.x, not iOS 18.x"

# Let's see the full matrix entries to understand the pattern
echo -e "\n=== Full CI matrix for comparison ==="
cat .github/workflows/ci.yml | grep -A 8 "name: Xcode"

# Check if there are build scripts that might give us clues
echo -e "\n=== Looking for package.json scripts ==="
if [ -f package.json ]; then
  cat package.json | jq '.scripts' 2>/dev/null || cat package.json | grep -A 20 '"scripts"'
fi

Length of output: 1280


🏁 Script executed:

#!/bin/bash

# Check what iOS 17 versions are being used elsewhere in the CI
echo "=== iOS 17 versions used in CI ==="
rg "iosVersion: '17" .github/workflows/ci.yml

echo -e "\n=== watchOS 10 versions used in CI ==="
rg "watchOsVersion: '10" .github/workflows/ci.yml

echo -e "\n=== tvOS 17 versions used in CI ==="
rg "tvOsVersion: '17" .github/workflows/ci.yml

# Let's also check GitHub Actions runner logs if available
echo -e "\n=== Checking for recent CI failures ==="
gh run list --repo parse-community/Parse-SDK-iOS-OSX --branch fix-build --limit 5 2>/dev/null || echo "Unable to fetch run list"

# Look for any test configuration files
echo -e "\n=== Looking for test configuration files ==="
fd -t f -e xcodeproj -e xcworkspace | head -5

Length of output: 803


🏁 Script executed:

#!/bin/bash

# Get the exact job details from one of the failed runs to confirm the hypothesis
echo "=== Checking failed run details ==="
gh run view 18533040259 --repo parse-community/Parse-SDK-iOS-OSX --log-failed 2>&1 | head -100 || echo "Cannot fetch logs"

# Let's double-check what the PR actually changed vs what it should have changed
echo -e "\n=== Checking the git diff for ci.yml ==="
git diff origin/master .github/workflows/ci.yml | head -80

Length of output: 14981


@mtrezza I've identified the root cause of the CI failures. The issue is that the "Xcode 15" matrix entry in the CI workflow is attempting to use iOS 18.1, watchOS 11.1, and tvOS 18.1 simulators, which are not available in Xcode 15.4.

Problem Analysis

According to the README compatibility matrix:

  • Xcode 15 supports: iOS 17, macOS 14, watchOS 10, tvOS 17
  • Xcode 16 supports: iOS 18, macOS 15, watchOS 11, tvOS 18

However, lines 21-30 in .github/workflows/ci.yml still have the "Xcode 15" entry configured with:

- name: Xcode 15
  script: build:starters
  iosVersion: '18.1'        # ❌ Not available in Xcode 15
  watchOsVersion: '11.1'    # ❌ Not available in Xcode 15
  tvOsVersion: '18.1'       # ❌ Not available in Xcode 15
  macosVersion: 14
  developerDir: CI_XCODE_15

Proposed Solution

Update the "Xcode 15" entry to use the correct platform versions that are available in Xcode 15:

- name: Xcode 15
  script: build:starters
  iosVersion: '17.5'
  iosDeviceModel: iPhone 15
  watchOsVersion: '10.5'
  watchDeviceModel: Apple Watch Series 9 (45mm)
  tvOsVersion: '17.5'
  tvDeviceModel: Apple TV
  macosVersion: 14
  developerDir: CI_XCODE_15

This aligns with the versions used in the other "iOS 17", "watchOS 10", and "tvOS 17" test jobs, which are all correctly using Xcode 15.

The test failures for UserFileCodingLogicTests, UserControllerTests, and UserUnitTests are likely occurring because Xcode 15 is trying to build for an iOS 18 simulator that doesn't exist in that version, causing the entire test suite to fail before those specific tests even run.

coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 15, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 86c88ce and e8d6980.

📒 Files selected for processing (1)
  • Rakefile (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: LiveQuery Module, macOS 14
  • GitHub Check: Xcode 15
  • GitHub Check: LiveQuery Module, macOS 15
  • GitHub Check: Core Module, macOS 15
  • GitHub Check: Core Module, macOS 14

This reverts commit e8d6980.
@dplewis
Copy link
Member Author

dplewis commented Oct 15, 2025

@mtrezza Looks like an issue using modules on MacOS 15. I got these messages when I downloaded the artifact logs from the failed builds.

While building module 'ParseCore':\rIn file included from <module-includes>:18:\rIn file included from \/Users\/runner\/work\/Parse-SDK-iOS-OSX\/Parse-SDK-iOS-OSX\/Parse\/Parse\/Source\/PFGeoPoint.h:10:\rIn file included from \/Applications\/Xcode_16.4.app\/Contents\/Developer\/Platforms\/MacOSX.platform\/Developer\/SDKs\/MacOSX15.5.sdk\/System\/Library\/Frameworks\/CoreLocation.framework\/Headers\/CoreLocation.h:17:\r\/Applications\/Xcode_16.4.app\/Contents\/Developer\/Platforms\/MacOSX.platform\/Developer\/SDKs\/MacOSX15.5.sdk\/System\/Library\/Frameworks\/CoreLocation.framework\/Headers\/CLAvailability.h:15:9: fatal error: module 'os_availability' is needed but has not been provided, and implicit use of module files is disabled\r   15 | #import <Availability.h>\r 
While building module 'ParseCore':\rIn file included from <module-includes>:2:\rIn file included from \/Users\/runner\/work\/Parse-SDK-iOS-OSX\/Parse-SDK-iOS-OSX\/Parse\/Parse\/Source\/PFAnalytics.h:18:\r\/Users\/runner\/work\/Parse-SDK-iOS-OSX\/Parse-SDK-iOS-OSX\/Parse\/Parse\/Source\/PFConstants.h:11:10: fatal error: module 'TargetConditionals' is needed but has not been provided, and implicit use of module files is disabled\r   11 | #include <TargetConditionals.h>\r 

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 57d2f1b and 13ce570.

📒 Files selected for processing (1)
  • Parse/Parse.xcodeproj/project.pbxproj (4 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Core Module, macOS 14
  • GitHub Check: Core Module, macOS 15
  • GitHub Check: Xcode 15
  • GitHub Check: Core Module, iOS 18
  • GitHub Check: Xcode 16

coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 16, 2025
@dplewis
Copy link
Member Author

dplewis commented Oct 16, 2025

@mtrezza I'm going to upgrade to MacOS 15 might take a while

@ashish-naik
Copy link

coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 16, 2025
coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 16, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/ci.yml (1)

24-30: Xcode 15 job still has incompatible simulator versions — contradicts PR objective.

The "Xcode 15" job still specifies iOS 18.1, watchOS 11.1, and tvOS 18.1, which are not available in Xcode 15 and contradict the PR's stated goal of aligning with the README compatibility matrix (Xcode 15 → iOS 17 / macOS 14 / watchOS 10 / tvOS 17). This was the root cause of the original CI failures per the PR context.

According to the PR objectives and the coderabbitai analysis, the Xcode 15 job should be updated to iOS 17.5, watchOS 10.5, tvOS 17.5, and use iPhone 15 as the device model.

Apply this diff to fix the Xcode 15 job:

          - name: Xcode 15
            script: build:starters
-           iosVersion: '18.1'
-           iosDeviceModel: iPhone 16
-           watchOsVersion: '11.1'
+           iosVersion: '17.5'
+           iosDeviceModel: iPhone 15
+           watchOsVersion: '10.5'
            watchDeviceModel: Apple Watch Series 9 (45mm)
-           tvOsVersion: '18.1'
+           tvOsVersion: '17.5'
            tvDeviceModel: Apple TV
            macosVersion: 14
            developerDir: CI_XCODE_15
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between dacc751 and 056e02c.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml (4 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: LiveQuery Module, iOS 18
  • GitHub Check: Core Module, macOS 14
  • GitHub Check: Xcode 15
  • GitHub Check: Core Module, iOS 17
  • GitHub Check: Xcode 16
🔇 Additional comments (1)
.github/workflows/ci.yml (1)

92-95: Verify watchOS 11 macOS/Xcode pairing is intentional.

The "LiveQuery Module, watchOS 11" entry (lines 92–95) is configured with macOS 15 and CI_XCODE_16 (Xcode 16.4.0), which aligns with the iOS 18 ecosystem. However, the commented PR objectives mention that watchOS 11 should pair with Xcode 16 → macOS 15, which is correct. Confirm this intentional pairing aligns with your test coverage strategy (e.g., you are deliberately testing watchOS 11 only against the Xcode 16 ecosystem).

coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 16, 2025
coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 16, 2025
@dplewis
Copy link
Member Author

dplewis commented Oct 16, 2025

I'm not sure how to fix the MacOS 15 issue with modules. But there are workarounds

TargetConditional.h can be replaced with the API Availability Checks #1788

os_availability module can be fixed by making CoreLocation optional or remove it entirely #1398

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.

4 participants