Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 47 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
- "**"
env:
CI_XCODE_16: /Applications/Xcode_16.4.0.app/Contents/Developer
CI_XCODE_26: /Applications/Xcode_26.4.app/Contents/Developer
jobs:
test-xcode:
env:
Expand All @@ -17,7 +18,7 @@ jobs:
strategy:
matrix:
include:
# Xcode
# Xcode 16
- name: Xcode 16
script: build:starters
iosVersion: '18.5'
Expand Down Expand Up @@ -57,6 +58,46 @@ jobs:
tvDeviceModel: Apple TV
macosVersion: 15
developerDir: CI_XCODE_16
# Xcode 26
- name: Xcode 26
script: build:starters
iosVersion: '26.4'
iosDeviceModel: iPhone 17 Pro Max
watchOsVersion: '26.4'
watchDeviceModel: Apple Watch SE 3 (40mm)
tvOsVersion: '26.4'
tvDeviceModel: Apple TV
macosVersion: 26
developerDir: CI_XCODE_26
# Core Module
- name: Core Module, iOS 26.4
script: test:ios
iosVersion: '26.4'
iosDeviceModel: iPhone 17 Pro Max
macosVersion: 26
developerDir: CI_XCODE_26
- name: LiveQuery Module, iOS 26.4
script: test:parse_live_query:ios
iosVersion: '26.4'
iosDeviceModel: iPhone 17 Pro Max
macosVersion: 26
developerDir: CI_XCODE_26
- name: LiveQuery Module, macOS 26
script: test:parse_live_query:osx
macosVersion: 26
developerDir: CI_XCODE_26
- name: LiveQuery Module, watchOS 26.4
script: test:parse_live_query:watchos
watchOsVersion: '26.4'
watchDeviceModel: Apple Watch SE 3 (40mm)
macosVersion: 26
developerDir: CI_XCODE_26
- name: LiveQuery Module, tvOS 26.4
script: test:parse_live_query:tvos
tvOsVersion: '26.4'
tvDeviceModel: Apple TV
macosVersion: 26
developerDir: CI_XCODE_26
Comment thread
coderabbitai[bot] marked this conversation as resolved.
fail-fast: false
runs-on: macos-${{ matrix.macosVersion }}
name: ${{ matrix.name }}
Expand Down Expand Up @@ -85,25 +126,11 @@ jobs:
run: set -o pipefail && env NSUnbufferedIO=YES IOS_VERSION="${{ matrix.iosVersion }}" IOS_DEVICE_MODEL="${{ matrix.iosDeviceModel }}" WATCH_DEVICE_MODEL="${{ matrix.watchDeviceModel }}" WATCH_OS_VERSION="${{ matrix.watchOsVersion }}" TV_DEVICE_MODEL="${{ matrix.tvDeviceModel }}" TV_OS_VERSION="${{ matrix.tvOsVersion }}" bundle exec rake ${{ matrix.script }}
env:
DEVELOPER_DIR: ${{ env[matrix.developerDir] }}
- name: Generate Environment Variables
if: ${{ always() }}
env:
ARTIFACT_NAME: ${{ matrix.script }}-logs
TEST_RESULTS: ${{ matrix.script }}.xcresult
run: |
ARTIFACT_NAME=${{ env.ARTIFACT_NAME }}
TEST_RESULTS=$(find ~/Library/Developer/Xcode/DerivedData -name "*.xcresult")
BUILD_RESULTS=$(find ~/Library/Developer/Xcode/DerivedData -name "*.xcactivitylog")
echo ARTIFACT_NAME=${ARTIFACT_NAME//:/-} >> $GITHUB_ENV # replace colon with dashes
echo TEST_RESULTS=${TEST_RESULTS} >> $GITHUB_ENV
echo "Artifact Name: $ARTIFACT_NAME"
echo "Test Result Location: $TEST_RESULTS"
echo "Build Result Location: $BUILD_RESULTS"
- name: Upload Artifact Logs
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
name: ${{ matrix.name }}-logs
path: |
~/Library/Developer/Xcode/DerivedData/Parse-*/Logs/Test
~/Library/Developer/Xcode/DerivedData/**/Logs/Build
Expand All @@ -119,7 +146,9 @@ jobs:
env:
COVERAGE_PATH: ${{ github.workspace }}/build/${{ matrix.script }}-coverage.xml
run: |
TEST_RESULTS=$(find ~/Library/Developer/Xcode/DerivedData -name "*.xcresult")
COVERAGE_PATH=${COVERAGE_PATH//:/-}
echo TEST_RESULTS=${TEST_RESULTS} >> $GITHUB_ENV
echo COVERAGE_PATH=$COVERAGE_PATH >> $GITHUB_ENV
echo "TEST_RESULTS: $TEST_RESULTS"
echo "COVERAGE_PATH: $COVERAGE_PATH"
Expand All @@ -146,6 +175,8 @@ jobs:
bundler-cache: true
- name: Submodules
run: git submodule update --init --recursive
- name: SPM
run: swift package resolve
- name: Create Jazzy Docs
run: |
./Scripts/jazzy.sh
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/release-manual-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ jobs:
bundler-cache: true
- name: Submodules
run: git submodule update --init --recursive
- name: SPM
run: swift package resolve
- name: Create Jazzy Docs
run: |
./Scripts/jazzy.sh
Expand Down
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ruby-3.1.0
4.0.0
Comment thread
coderabbitai[bot] marked this conversation as resolved.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ For analyzing bugs, creating bug fixes and features we recommend to clone this r
Install all dependencies:
```
git submodule update --init --recursive
gem install bundler -v 2.5.22
gem install bundler -v 4.0.10
bundle install
```
Run the tests:
Expand Down
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ source 'https://rubygems.org'

# Docs
gem 'jazzy', '0.15.4'
gem 'cgi', '0.5.1'

# Development
gem 'xcpretty', '0.3.0'
Expand Down
102 changes: 80 additions & 22 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.7)
base64
nkf
rexml
CFPropertyList (3.0.8)
activesupport (7.2.3.1)
base64
benchmark (>= 0.3)
Expand All @@ -25,7 +22,8 @@ GEM
atomos (0.1.3)
base64 (0.3.0)
benchmark (0.5.0)
bigdecimal (4.0.1)
bigdecimal (4.1.1)
cgi (0.5.1)
claide (1.1.0)
cocoapods (1.16.2)
addressable (~> 2.8)
Expand Down Expand Up @@ -66,14 +64,14 @@ GEM
cocoapods-try (1.2.0)
colored2 (3.1.2)
concurrent-ruby (1.3.6)
connection_pool (2.5.5)
connection_pool (3.0.2)
drb (2.2.3)
escape (0.0.4)
ethon (0.15.0)
ethon (0.18.0)
ffi (>= 1.15.0)
ffi (1.17.2-arm64-darwin)
ffi (1.17.2-x86_64-darwin)
ffi (1.17.2-x86_64-linux-gnu)
logger
ffi (1.17.4)
ffi (1.17.4-arm64-darwin)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
Expand All @@ -93,17 +91,17 @@ GEM
sassc (~> 2.1)
sqlite3 (~> 1.3)
xcinvoke (~> 0.3.0)
json (2.15.2.1)
json (2.19.3)
liferaft (0.0.6)
logger (1.7.0)
mini_portile2 (2.8.9)
minitest (5.27.0)
molinillo (0.8.0)
mustache (1.1.1)
mustache (1.1.2)
mutex_m (0.3.0)
nanaimo (0.4.0)
nap (1.1.0)
netrc (0.11.0)
nkf (0.2.0)
open4 (1.3.4)
plist (3.7.1)
public_suffix (4.0.7)
Expand All @@ -115,11 +113,10 @@ GEM
sassc (2.4.0)
ffi (~> 1.9)
securerandom (0.4.1)
sqlite3 (1.7.3-arm64-darwin)
sqlite3 (1.7.3-x86_64-darwin)
sqlite3 (1.7.3-x86_64-linux)
typhoeus (1.5.0)
ethon (>= 0.9.0, < 0.16.0)
sqlite3 (1.7.3)
mini_portile2 (~> 2.8.0)
typhoeus (1.6.0)
ethon (>= 0.18.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
xcinvoke (0.3.0)
Expand All @@ -135,15 +132,76 @@ GEM
rouge (~> 2.0.7)

PLATFORMS
arm64-darwin
x86_64-darwin
x86_64-linux
arm64-darwin-25
ruby

DEPENDENCIES
cgi (= 0.5.1)
jazzy (= 0.15.4)
plist (= 3.7.1)
rake (= 13.2.1)
xcpretty (= 0.3.0)

CHECKSUMS
CFPropertyList (3.0.8) sha256=2c99d0d980536d3d7ab252f7bd59ac8be50fbdd1ff487c98c949bb66bb114261
activesupport (7.2.3.1) sha256=11ebed516a43a0bb47346227a35ebae4d9427465a7c9eb197a03d5c8d283cb34
addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
algoliasearch (1.27.5) sha256=26c1cddf3c2ec4bd60c148389e42702c98fdac862881dc6b07a4c0b89ffec853
atomos (0.1.3) sha256=7d43b22f2454a36bace5532d30785b06de3711399cb1c6bf932573eda536789f
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c
bigdecimal (4.1.1) sha256=1c09efab961da45203c8316b0cdaec0ff391dfadb952dd459584b63ebf8054ca
cgi (0.5.1) sha256=e93fcafc69b8a934fe1e6146121fa35430efa8b4a4047c4893764067036f18e9
claide (1.1.0) sha256=6d3c5c089dde904d96aa30e73306d0d4bd444b1accb9b3125ce14a3c0183f82e
cocoapods (1.16.2) sha256=0ff1c860f32df3db8b16df09b58da1a6bb2a12fe55f6d5e8be994a74fadd1e5e
cocoapods-core (1.16.2) sha256=4bb1b5c420691e60cf36fa227dec6bc48c096c34c97bb7aa512ea7f3246fc12b
cocoapods-deintegrate (1.0.5) sha256=517c2a448ef563afe99b6e7668704c27f5de9e02715a88ee9de6974dc1b3f6a2
cocoapods-downloader (2.1) sha256=bb6ebe1b3966dc4055de54f7a28b773485ac724fdf575d9bee2212d235e7b6d1
cocoapods-plugins (1.0.0) sha256=725d17ce90b52f862e73476623fd91441b4430b742d8a071000831efb440ca9a
cocoapods-search (1.0.1) sha256=1b133b0e6719ed439bd840e84a1828cca46425ab73a11eff5e096c3b2df05589
cocoapods-trunk (1.6.0) sha256=5f5bda8c172afead48fa2d43a718cf534b1313c367ba1194cebdeb9bfee9ed31
cocoapods-try (1.2.0) sha256=145b946c6e7747ed0301d975165157951153d27469e6b2763c83e25c84b9defe
colored2 (3.1.2) sha256=b13c2bd7eeae2cf7356a62501d398e72fde78780bd26aec6a979578293c28b4a
concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
escape (0.0.4) sha256=e49f44ae2b4f47c6a3abd544ae77fe4157802794e32f19b8e773cbc4dcec4169
ethon (0.18.0) sha256=b598afc9f30448cb068b850714b7d6948e941476095d04f90a4ac65b8d6efcb2
ffi (1.17.4) sha256=bcd1642e06f0d16fc9e09ac6d49c3a7298b9789bcb58127302f934e437d60acf
ffi (1.17.4-arm64-darwin) sha256=19071aaf1419251b0a46852abf960e77330a3b334d13a4ab51d58b31a937001b
fourflusher (2.3.1) sha256=1b3de61c7c791b6a4e64f31e3719eb25203d151746bb519a0292bff1065ccaa9
fuzzy_match (2.0.4) sha256=b5de4f95816589c5b5c3ad13770c0af539b75131c158135b3f3bbba75d0cfca5
gh_inspector (1.1.3) sha256=04cca7171b87164e053aa43147971d3b7f500fcb58177698886b48a9fc4a1939
httpclient (2.9.0) sha256=4b645958e494b2f86c2f8a2f304c959baa273a310e77a2931ddb986d83e498c8
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
jazzy (0.15.4) sha256=d7766c62fe722b0b1b868c05e79be1fab3249ab2279435f3a0adcb1d955a3c4a
json (2.19.3) sha256=289b0bb53052a1fa8c34ab33cc750b659ba14a5c45f3fcf4b18762dc67c78646
liferaft (0.0.6) sha256=631ec13c52d2e62851d4e761f5ff5e090ef26437f92dc451effa3f82fa5a5acd
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
mini_portile2 (2.8.9) sha256=0cd7c7f824e010c072e33f68bc02d85a00aeb6fce05bb4819c03dfd3c140c289
minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
molinillo (0.8.0) sha256=efbff2716324e2a30bccd3eba1ff3a735f4d5d53ffddbc6a2f32c0ca9433045d
mustache (1.1.2) sha256=d420243400354da78ded2d81541b381ad8d94e8e9b95022d0d71d66f8ef36c00
mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
nanaimo (0.4.0) sha256=faf069551bab17f15169c1f74a1c73c220657e71b6e900919897a10d991d0723
nap (1.1.0) sha256=949691660f9d041d75be611bb2a8d2fd559c467537deac241f4097d9b5eea576
netrc (0.11.0) sha256=de1ce33da8c99ab1d97871726cba75151113f117146becbe45aa85cb3dabee3f
open4 (1.3.4) sha256=a1df037310624ecc1ea1d81264b11c83e96d0c3c1c6043108d37d396dcd0f4b1
plist (3.7.1) sha256=3f9542db1115d10fb77d87604dcb426755174920cc89453755efacb34a1cc42c
public_suffix (4.0.7) sha256=8be161e2421f8d45b0098c042c06486789731ea93dc3a896d30554ee38b573b8
rake (13.2.1) sha256=46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d
redcarpet (3.6.1) sha256=d444910e6aa55480c6bcdc0cdb057626e8a32c054c29e793fa642ba2f155f445
rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
rouge (2.0.7) sha256=2da14eb856839a81ad708883c2495507f50f973f3f46904cc7d87784039ed169
ruby-macho (2.5.1) sha256=9075e52e0f9270b552a90b24fcc6219ad149b0d15eae1bc364ecd0ac8984f5c9
sassc (2.4.0) sha256=4c60a2b0a3b36685c83b80d5789401c2f678c1652e3288315a1551d811d9f83e
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
sqlite3 (1.7.3) sha256=fa77f63c709548f46d4e9b6bb45cda52aa3881aa12cc85991132758e8968701c
typhoeus (1.6.0) sha256=bacc41c23e379547e29801dc235cd1699b70b955a1ba3d32b2b877aa844c331d
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
xcinvoke (0.3.0) sha256=67e936a5afa64659c58687c3d316947e287dcddb63769cb9778089bef9c1fe9a
xcodeproj (1.27.0) sha256=8cc7a73b4505c227deab044dce118ede787041c702bc47636856a2e566f854d3
xcpretty (0.3.0) sha256=75c7cc577be3527e7663ca627cbeb47613904c3a44f34cca3a92d202053e04f7

BUNDLED WITH
2.3.27
4.0.10
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,15 @@
<Test
Identifier = "ParseClientConfigurationTests/testExtensionDataSharing">
</Test>
<Test
Identifier = "QueryCachedControllerTests/testFindObjectsCacheElseNetworkCacheResult">
</Test>
<Test
Identifier = "QueryCachedControllerTests/testFindObjectsCacheOnly">
</Test>
<Test
Identifier = "QueryCachedControllerTests/testFindObjectsNetworkElseCache">
</Test>
</SkippedTests>
</TestableReference>
</Testables>
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ The Parse Apple SDK is continuously tested with the most recent releases of Xcod
| Xcode 14 | iOS 16 | macOS 13 | watchOS 9 | tvOS 16 | September 2022 | October 2024 | >= 2.7.2 < 5.0.0 |
| Xcode 15 | iOS 17 | macOS 14 | watchOS 10 | tvOS 17 | September 2023 | October 2025 | >= 3.0.0 <= 5.1.1 |
| Xcode 16 | iOS 18 | macOS 15 | watchOS 11 | tvOS 18 | September 2024 | tbd | >= 4.2.0 |
| Xcode 26 | iOS 26 | macOS 26 | watchOS 26 | tvOS 26 | September 2025 | tbd | >= 6.2.0 |

## How Do I Contribute?

Expand Down
30 changes: 25 additions & 5 deletions Scripts/jazzy.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,30 @@
mkdir -p ./Parse/Bolts # Create a temporary bolts folder
cp -R Carthage/Checkouts/Bolts-ObjC/Bolts/**/*.h ./Parse/Bolts # Copy bolts
#!/usr/bin/env bash

set -eo pipefail

bolts_headers_dir=""
for candidate in \
"./.build/checkouts/Bolts-ObjC/Bolts" \
"./.build/checkouts/Bolts/Bolts" \
"./build/checkouts/Bolts-ObjC/Bolts" \
"./SourcePackages/checkouts/Bolts-ObjC/Bolts"; do
if [[ -d "$candidate" ]]; then
bolts_headers_dir="$candidate"
break
fi
done

if [[ -z "$bolts_headers_dir" ]]; then
echo "Unable to locate Bolts headers. Resolve SwiftPM dependencies first (for example, run 'swift package resolve')."
exit 1
fi

mkdir -p ./Parse/Bolts
cp -R "$bolts_headers_dir"/. ./Parse/Bolts
trap 'rm -rf ./Parse/Bolts' EXIT

ver=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" Parse/Parse/Resources/Parse-iOS.Info.plist`
set -eo pipefail && bundle exec jazzy \
bundle exec jazzy \
--objc \
--clean \
--author "Parse Community" \
Expand All @@ -17,5 +39,3 @@ set -eo pipefail && bundle exec jazzy \
--umbrella-header Parse/Parse/Source/Parse.h \
--framework-root Parse \
--output docs/api

rm -rf ./Parse/Bolts # cleanup temporary bolts
Loading