Skip to content

Commit

Permalink
feat: Remove support for Xcode 14 (#1835)
Browse files Browse the repository at this point in the history
BREAKING CHANGE: This release removes support for Xcode 14.
  • Loading branch information
dplewis authored Jan 28, 2025
1 parent 393a300 commit e94c4d5
Show file tree
Hide file tree
Showing 9 changed files with 200 additions and 37 deletions.
113 changes: 97 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,106 @@ on:
branches:
- "**"
env:
CI_XCODE_14: /Applications/Xcode_14.2.app/Contents/Developer
CI_XCODE_15: /Applications/Xcode_15.4.0.app/Contents/Developer
CI_XCODE_16: /Applications/Xcode_16.0.app/Contents/Developer
CI_XCODE_16: /Applications/Xcode_16.1.0.app/Contents/Developer
jobs:
tests:
test-xcode:
env:
GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
timeout-minutes: 45
strategy:
matrix:
script:
- test:ios
- test:macos
- test:parse_live_query:all
- xcode14 # runs build:starters on Xcode 14
- xcode15 # runs build:starters on Xcode 15
- xcode16 # runs build:starters on Xcode 16
include:
# Xcode
- name: Xcode 15
script: build:starters
iosVersion: '18.1'
iosDeviceModel: iPhone 16
watchOsVersion: '11.1'
watchDeviceModel: Apple Watch Series 10 (46mm)
tvOsVersion: '18.1'
tvDeviceModel: Apple TV
macosVersion: 14
developerDir: CI_XCODE_15
- name: Xcode 16
script: build:starters
iosVersion: '18.1'
iosDeviceModel: iPhone 16
watchOsVersion: '11.1'
watchDeviceModel: Apple Watch Series 10 (46mm)
tvOsVersion: '18.1'
tvDeviceModel: Apple TV
macosVersion: 14
developerDir: CI_XCODE_16
# Core Module
- name: Core Module, iOS 17
script: test:ios
iosVersion: '17.5'
iosDeviceModel: iPhone 15
macosVersion: 15
developerDir: CI_XCODE_16
- name: Core Module, iOS 18
script: test:ios
iosVersion: '18.1'
iosDeviceModel: iPhone 16
macosVersion: 15
developerDir: CI_XCODE_16
- name: Core Module, macOS 14
script: test:macos
macosVersion: 14
developerDir: CI_XCODE_16
- name: Core Module, macOS 15
script: test:macos
macosVersion: 15
developerDir: CI_XCODE_16
# LiveQuery Module
- name: LiveQuery Module, iOS 17
script: test:parse_live_query:ios
iosVersion: '17.5'
iosDeviceModel: iPhone 15
macosVersion: 15
developerDir: CI_XCODE_16
- name: LiveQuery Module, iOS 18
script: test:parse_live_query:ios
iosVersion: '18.1'
iosDeviceModel: iPhone 16
macosVersion: 15
developerDir: CI_XCODE_16
- name: LiveQuery Module, macOS 14
script: test:parse_live_query:osx
macosVersion: 14
developerDir: CI_XCODE_15
- name: LiveQuery Module, macOS 15
script: test:parse_live_query:osx
macosVersion: 15
developerDir: CI_XCODE_16
- name: LiveQuery Module, watchOS 10
script: test:parse_live_query:watchos
watchOsVersion: '10.5'
watchDeviceModel: Apple Watch Series 9 (45mm)
macosVersion: 15
developerDir: CI_XCODE_15
- name: LiveQuery Module, watchOS 11
script: test:parse_live_query:watchos
watchOsVersion: '11.1'
watchDeviceModel: Apple Watch Series 10 (46mm)
macosVersion: 15
developerDir: CI_XCODE_16
- name: LiveQuery Module, tvOS 17
script: test:parse_live_query:tvos
tvOsVersion: '17.5'
tvDeviceModel: Apple TV
macosVersion: 15
developerDir: CI_XCODE_16
- name: LiveQuery Module, tvOS 18
script: test:parse_live_query:tvos
tvOsVersion: '18.1'
tvDeviceModel: Apple TV
macosVersion: 15
developerDir: CI_XCODE_16
fail-fast: false
runs-on: ${{ ((matrix.script == 'xcode15' || matrix.script == 'xcode16') && 'macos-14') || 'macos-13' }}
runs-on: macos-${{ matrix.macosVersion }}
name: ${{ matrix.name }}
steps:
- uses: actions/checkout@v4
- name: Cache SPM
Expand All @@ -49,9 +130,9 @@ jobs:
- name: Submodules
run: git submodule update --init --recursive
- name: Build-Test
run: set -o pipefail && env NSUnbufferedIO=YES bundle exec rake ${{ ((matrix.script == 'xcode14' || matrix.script == 'xcode15' || matrix.script == 'xcode16') && 'build:starters') || matrix.script }}
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: ${{ (matrix.script == 'xcode15' && env.CI_XCODE_15) || (matrix.script == 'xcode16' && env.CI_XCODE_16) || env.CI_XCODE_14 }}
DEVELOPER_DIR: ${{ env[matrix.developerDir] }}
- name: Generate Environment Variables
if: ${{ always() }}
env:
Expand All @@ -68,7 +149,7 @@ jobs:
echo "Build Result Location: $BUILD_RESULTS"
- name: Upload Artifact Logs
if: ${{ failure() }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
path: |
Expand Down Expand Up @@ -103,7 +184,7 @@ jobs:
plugin: xcode
file: ${{ env.COVERAGE_PATH }}
docs:
runs-on: macos-13
runs-on: macos-14
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
Expand All @@ -117,7 +198,7 @@ jobs:
run: |
./Scripts/jazzy.sh
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_14 }}
DEVELOPER_DIR: ${{ env.CI_XCODE_16 }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
8 changes: 4 additions & 4 deletions .github/workflows/release-automated.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ on:
push:
branches: [ master, release, alpha, beta ]
env:
CI_XCODE_14: '/Applications/Xcode_14.2.app/Contents/Developer'
CI_XCODE_16: /Applications/Xcode_16.1.0.app/Contents/Developer

jobs:
release:
runs-on: macos-13
runs-on: macos-14
outputs:
current_tag: ${{ steps.tag.outputs.current_tag }}
steps:
Expand Down Expand Up @@ -46,7 +46,7 @@ jobs:
publish-docs:
needs: release
if: needs.release.outputs.current_tag != ''
runs-on: macos-13
runs-on: macos-14
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -62,7 +62,7 @@ jobs:
run: |
./Scripts/jazzy.sh
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_14 }}
DEVELOPER_DIR: ${{ env.CI_XCODE_16 }}
- name: Deploy Jazzy Docs
uses: peaceiris/actions-gh-pages@v3
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release-manual-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ on:
default: ''
description: 'Version tag:'
env:
CI_XCODE_14: '/Applications/Xcode_14.2.app/Contents/Developer'
CI_XCODE_16: /Applications/Xcode_16.1.0.app/Contents/Developer

jobs:
publish-docs:
if: github.event.inputs.tag != ''
runs-on: macos-13
runs-on: macos-14
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -27,7 +27,7 @@ jobs:
run: |
./Scripts/jazzy.sh
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_14 }}
DEVELOPER_DIR: ${{ env.CI_XCODE_16 }}
- name: Deploy Jazzy Docs
uses: peaceiris/actions-gh-pages@v3
with:
Expand Down
8 changes: 4 additions & 4 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
source 'https://rubygems.org'

# Docs
gem 'jazzy', '~> 0.15.3'
gem 'jazzy', '0.15.3'

# Development
gem 'xcpretty', '~> 0.4.0'
gem 'rake', '~> 13.2.1'
gem 'plist', '~> 3.7.1'
gem 'xcpretty', '0.3.0'
gem 'rake', '13.2.1'
gem 'plist', '3.7.1'
14 changes: 7 additions & 7 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ GEM
rake (13.2.1)
redcarpet (3.6.0)
rexml (3.3.9)
rouge (3.28.0)
rouge (2.0.7)
ruby-macho (2.5.1)
sassc (2.4.0)
ffi (~> 1.9)
Expand All @@ -123,18 +123,18 @@ GEM
colored2 (~> 3.1)
nanaimo (~> 0.4.0)
rexml (>= 3.3.6, < 4.0)
xcpretty (0.4.0)
rouge (~> 3.28.0)
xcpretty (0.3.0)
rouge (~> 2.0.7)

PLATFORMS
arm64-darwin
x86_64-darwin

DEPENDENCIES
jazzy (~> 0.15.3)
plist (~> 3.7.1)
rake (~> 13.2.1)
xcpretty (~> 0.4.0)
jazzy (= 0.15.3)
plist (= 3.7.1)
rake (= 13.2.1)
xcpretty (= 0.3.0)

BUNDLED WITH
2.5.22
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,12 @@
<Test
Identifier = "ExtensionDataSharingTests">
</Test>
<Test
Identifier = "InstallationUnitTests/testInstallationHasApplicationBadge">
</Test>
<Test
Identifier = "InstallationUnitTests/testInstallationSetsApplicationBadge">
</Test>
<Test
Identifier = "PFTestCase">
</Test>
Expand All @@ -90,6 +96,9 @@
<Test
Identifier = "ParseClientConfigurationTests/testExtensionDataSharing">
</Test>
<Test
Identifier = "ParseClientConfigurationTests/testServerValidation">
</Test>
</SkippedTests>
</TestableReference>
</Testables>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@
BlueprintName = "ParseUnitTests-macOS"
ReferencedContainer = "container:Parse.xcodeproj">
</BuildableReference>
<SkippedTests>
<Test
Identifier = "ParseClientConfigurationTests/testServerValidation">
</Test>
</SkippedTests>
</TestableReference>
</Testables>
</TestAction>
Expand Down
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ A library that gives you access to the powerful Parse Server backend from your i
---

- [Getting Started](#getting-started)
- [Compatibility](#compatibility)
- [Parse Server](#parse-server)
- [Xcode, iOS, macOS](#xcode-ios-macos)
- [How Do I Contribute?](#how-do-i-contribute)
- [Dependencies](#dependencies)

Expand All @@ -49,6 +52,27 @@ The easiest way to install the SDK is via Swift Package Manager.

Take a look at the public [documentation][docs] & [API][api] and start building.

## Compatibility

### Parse Server

Parse Apple SDK is compatible with the following versions of Parse Server.

| Parse Apple SDK | Parse Server |
|-----------------|--------------|
| 1.0.0 | >= 1.0.0 |

### Xcode, iOS, macOS

The Parse Apple SDK is continuously tested with the most recent releases of Xcode to ensure compatibility. We follow the annual release schedule of Xcode to support the current and previous major Xcode version.

| Xcode Version | iOS Version | macOS Version | macOS Version | Release Date | End-of-Support Date | Parse Apple SDK Support |
|---------------|-------------|---------------|---------------|----------------|---------------------|-------------------------|
| Xcode 13 | iOS 15 | macOS 12 | watchOS 8 | September 2021 | October 2023 | >= 1.19.3 <2.7.2 |
| Xcode 14 | iOS 16 | macOS 13 | watchOS 9 | September 2022 | October 2024 | >= 2.7.2 <= 5.0.0 |
| Xcode 15 | iOS 17 | macOS 14 | watchOS 10 | September 2023 | October 2025 | >= 3.0.0 |
| Xcode 16 | iOS 18 | macOS 15 | watchOS 11 | September 2024 | tbd | >= 4.2.0 |

## How Do I Contribute?

We want to make contributing to this project as easy and transparent as possible. Please refer to the [Contribution Guidelines][contributing].
Expand Down
Loading

0 comments on commit e94c4d5

Please sign in to comment.