Skip to content

Commit

Permalink
Changes to support Xcode 16, and prep for Release 7.2.0 (#884)
Browse files Browse the repository at this point in the history
* Fix minor issues in Tests for Xcode 15.x

* Update CI to use Xcode 15.2 and most recent GH action modules.
Update podspec to declare support for Swift 5.8 and 5.9

* Update Quick and Nimble to latest versions.

* Update Xcode schemes and minimum OS targets.

* Update iPhone device for testing.

* Updated CHANGELOG and podspec.

* Bump version in podspec in preparation for next release 7.2.0

* Changes to support Xcode 16

* Update iOS and watchOS test run destinations.

* Move deployment targets to Project settings instead of Target settings.
  • Loading branch information
mluisbrown authored Nov 11, 2024
1 parent f4f3d4d commit 4bb00b6
Show file tree
Hide file tree
Showing 33 changed files with 127 additions and 123 deletions.
29 changes: 13 additions & 16 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,19 @@ on:
- master

env:
# Keep using Xcode 13 until CP releases the fix for watchOS verification on Xcode 14
# https://github.com/CocoaPods/CocoaPods/issues/11558
# https://github.com/CocoaPods/CocoaPods/pull/11660
DEVELOPER_DIR: /Applications/Xcode_13.4.1.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_16.0.app/Contents/Developer

name: Verification | Release
jobs:
carthage:
if: ${{ github.event_name == 'push' || ( github.event_name == 'pull_request' && github.event.label.name == 'ci:verify' ) }}
name: Carthage Verification
runs-on: macos-12
runs-on: macos-15
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Recover cached dependencies
uses: actions/cache@v1
uses: actions/cache@v4
id: dependency-cache
with:
path: ~/Library/Caches/org.carthage.CarthageKit
Expand All @@ -39,10 +36,10 @@ jobs:
swiftpm-macos:
if: ${{ github.event_name == 'push' || ( github.event_name == 'pull_request' && github.event.label.name == 'ci:verify' ) }}
name: SwiftPM macOS Verification
runs-on: macos-12
runs-on: macos-15
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Pull dependencies
run: |
swift package resolve
Expand All @@ -54,10 +51,10 @@ jobs:
cocoapods:
if: ${{ github.event_name == 'push' || ( github.event_name == 'pull_request' && github.event.label.name == 'ci:verify' ) }}
name: CocoaPods Verification
runs-on: macos-12
runs-on: macos-15
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: CocoaPods verification
run: |
pod repo update
Expand All @@ -66,22 +63,22 @@ jobs:
release-github:
if: ${{ github.event_name == 'push' && github.ref_type == 'tag' }}
name: GitHub Release
runs-on: macos-12
runs-on: macos-15
needs: [swiftpm-macos, cocoapods, carthage]
steps:
- name: git checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: create release
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2

release-cocoapods:
if: ${{ github.event_name == 'push' && github.ref_type == 'tag' }}
name: CocoaPods Release
runs-on: macos-12
runs-on: macos-15
needs: [swiftpm-macos, cocoapods, carthage]
steps:
- name: git checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: pod trunk push
env:
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ name: Test
jobs:
test:
name: Test
runs-on: macos-12
runs-on: macos-15
strategy:
fail-fast: false
matrix:
destination: [macOS, iOS, tvOS, watchOS]
env:
DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_16.0.app/Contents/Developer
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Recover cached dependencies
uses: actions/cache@v1
uses: actions/cache@v4
id: dependency-cache
with:
path: Carthage/Checkouts
Expand All @@ -31,7 +31,7 @@ jobs:
case "${{ matrix.destination }}" in
"iOS")
DESTINATION="platform=iOS Simulator,name=iPhone 11 Pro"
DESTINATION="platform=iOS Simulator,name=iPhone 16"
SCHEME=ReactiveSwift-iOS
;;
"tvOS")
Expand All @@ -40,7 +40,7 @@ jobs:
;;
"watchOS")
ACTION=build
DESTINATION="platform=watchOS Simulator,name=Apple Watch Series 5 (44mm)"
DESTINATION="platform=watchOS Simulator,name=Apple Watch Series 10 (46mm)"
SCHEME=ReactiveSwift-watchOS
;;
"macCatalyst")
Expand Down Expand Up @@ -68,17 +68,17 @@ jobs:
swiftpm-linux:
strategy:
matrix:
swift: ["5.7"]
swift: ["5.9"]

name: SwiftPM Linux
runs-on: ubuntu-22.04
steps:
- name: Setup Swift version
uses: swift-actions/setup-swift@v1
uses: swift-actions/setup-swift@v2
with:
swift-version: ${{ matrix.swift }}
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Pull dependencies
run: |
swift package resolve
Expand Down
10 changes: 5 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# master
*Please add new entries at the top.*

1. Change `QueueScheduler` to use unspecified QoS when QoS parameter is defaulted
1. Add support for VisionOS (#875, kudos to @NachoSoto)
1. Fix minimum deployment target of iOS 11 in CocoaPods
1. Change `QueueScheduler` to use unspecified QoS when QoS parameter is defaulted (#880, kudos to @jamieQ)
1. Add support for visionOS (#875, kudos to @NachoSoto)
1. Fix CI release git tag push trigger (#869, kudos to @p4checo)
1. Find and remove items from Bag using a binary search to improve performance when the collection gets large.
2. Add extension to `ScopedDisposable` for inner `SerialDisposable` (#873, kudos to @sirnacnud)
1. Find and remove items from Bag using a binary search to improve performance when the collection gets large (#878, kudos to @nickoto)
1. Add extension to `ScopedDisposable` for inner `SerialDisposable` (#873, kudos to @sirnacnud)
1. Updated project settings for Xcode 16, bumped min deployment targets to iOS 12, macOS 10.13, tvOS 12, watchOS 4, visionOS 1.0 (#883, kudos to @mluisbrown)

# 7.1.1
1. Bumped deployment target to iOS 11, tvOS 11, watchOS 4, macOS 10.13, per Xcode 14 warnings (#865, kudos to @lickel)
Expand Down
4 changes: 2 additions & 2 deletions Cartfile.private
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
github "xcconfigs/xcconfigs" ~> 1.1
github "Quick/Quick" ~> 4.0.0
github "Quick/Nimble" ~> 9.0.0
github "Quick/Quick" ~> 7.0.0
github "Quick/Nimble" ~> 13.0.0
4 changes: 2 additions & 2 deletions Cartfile.resolved
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
github "Quick/Nimble" "v9.2.1"
github "Quick/Quick" "v4.0.0"
github "Quick/Nimble" "v13.2.1"
github "Quick/Quick" "v7.4.1"
github "xcconfigs/xcconfigs" "1.1"
2 changes: 1 addition & 1 deletion Carthage/Checkouts/Nimble
Submodule Nimble updated 388 files
2 changes: 1 addition & 1 deletion Carthage/Checkouts/Quick
Submodule Quick updated 226 files
16 changes: 8 additions & 8 deletions Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,35 @@
"repositoryURL": "https://github.com/mattgallagher/CwlCatchException.git",
"state": {
"branch": null,
"revision": "682841464136f8c66e04afe5dbd01ab51a3a56f2",
"version": "2.1.0"
"revision": "3ef6999c73b6938cc0da422f2c912d0158abb0a0",
"version": "2.2.0"
}
},
{
"package": "CwlPreconditionTesting",
"repositoryURL": "https://github.com/mattgallagher/CwlPreconditionTesting.git",
"state": {
"branch": null,
"revision": "02b7a39a99c4da27abe03cab2053a9034379639f",
"version": "2.0.0"
"revision": "2ef56b2caf25f55fa7eef8784c30d5a767550f54",
"version": "2.2.1"
}
},
{
"package": "Nimble",
"repositoryURL": "https://github.com/Quick/Nimble.git",
"state": {
"branch": null,
"revision": "af1730dde4e6c0d45bf01b99f8a41713ce536790",
"version": "9.2.0"
"revision": "efe11bbca024b57115260709b5c05e01131470d0",
"version": "13.2.1"
}
},
{
"package": "Quick",
"repositoryURL": "https://github.com/Quick/Quick.git",
"state": {
"branch": null,
"revision": "bd86ca0141e3cfb333546de5a11ede63f0c4a0e6",
"version": "4.0.0"
"revision": "6d01974d236f598633cac58280372c0c8cfea5bc",
"version": "7.4.1"
}
}
]
Expand Down
4 changes: 2 additions & 2 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ let package = Package(
.library(name: "ReactiveSwift", targets: ["ReactiveSwift"]),
],
dependencies: [
.package(url: "https://github.com/Quick/Quick.git", from: "4.0.0"),
.package(url: "https://github.com/Quick/Nimble.git", from: "9.0.0"),
.package(url: "https://github.com/Quick/Quick.git", from: "7.0.0"),
.package(url: "https://github.com/Quick/Nimble.git", from: "13.0.0"),
],
targets: [
.target(name: "ReactiveSwift", dependencies: [], path: "Sources"),
Expand Down
8 changes: 4 additions & 4 deletions ReactiveSwift.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "ReactiveSwift"
# Version goes here and will be used to access the git tag later on, once we have a first release.
s.version = "7.1.1"
s.version = "7.2.0"
s.summary = "Streams of values over time"
s.description = <<-DESC
ReactiveSwift is a Swift framework inspired by Functional Reactive Programming. It provides APIs for composing and transforming streams of values over time.
Expand All @@ -10,10 +10,10 @@ Pod::Spec.new do |s|
s.license = { :type => "MIT", :file => "LICENSE.md" }
s.author = "ReactiveCocoa"

s.ios.deployment_target = "11.0"
s.ios.deployment_target = "12.0"
s.osx.deployment_target = "10.13"
s.watchos.deployment_target = "4.0"
s.tvos.deployment_target = "11.0"
s.tvos.deployment_target = "12.0"

s.source = { :git => "https://github.com/ReactiveCocoa/ReactiveSwift.git", :tag => "#{s.version}" }
# Directory glob for all Swift files
Expand All @@ -25,5 +25,5 @@ Pod::Spec.new do |s|
}

s.cocoapods_version = ">= 1.7.0"
s.swift_versions = ["5.2", "5.3" "5.4", "5.5", "5.6", "5.7"]
s.swift_versions = ["5.2", "5.3" "5.4", "5.5", "5.6", "5.7", "5.8", "5.9"]
end
36 changes: 16 additions & 20 deletions ReactiveSwift.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1705,16 +1705,16 @@
CODE_SIGNING_REQUIRED = NO;
CURRENT_PROJECT_VERSION = 1;
ENABLE_TESTABILITY = YES;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.12;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MACOSX_DEPLOYMENT_TARGET = 10.13;
PRODUCT_BUNDLE_IDENTIFIER = "org.reactivecocoa.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(PROJECT_NAME)";
SWIFT_TREAT_WARNINGS_AS_ERRORS = NO;
SWIFT_VERSION = 5.2;
TVOS_DEPLOYMENT_TARGET = 10.0;
TVOS_DEPLOYMENT_TARGET = 12.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
WATCHOS_DEPLOYMENT_TARGET = 3.0;
WATCHOS_DEPLOYMENT_TARGET = 4.0;
XROS_DEPLOYMENT_TARGET = 1.0;
};
name = Debug;
Expand All @@ -1726,16 +1726,16 @@
BITCODE_GENERATION_MODE = bitcode;
CODE_SIGNING_REQUIRED = NO;
CURRENT_PROJECT_VERSION = 1;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.12;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MACOSX_DEPLOYMENT_TARGET = 10.13;
PRODUCT_BUNDLE_IDENTIFIER = "org.reactivecocoa.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(PROJECT_NAME)";
SWIFT_TREAT_WARNINGS_AS_ERRORS = NO;
SWIFT_VERSION = 5.2;
TVOS_DEPLOYMENT_TARGET = 10.0;
TVOS_DEPLOYMENT_TARGET = 12.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
WATCHOS_DEPLOYMENT_TARGET = 3.0;
WATCHOS_DEPLOYMENT_TARGET = 4.0;
XROS_DEPLOYMENT_TARGET = 1.0;
};
name = Release;
Expand Down Expand Up @@ -1769,7 +1769,6 @@
baseConfigurationReference = E6124BA9267DF505005A3490 /* macOS-XCTest.xcconfig */;
buildSettings = {
INFOPLIST_FILE = Tests/ReactiveSwiftTests/Info.plist;
MACOSX_DEPLOYMENT_TARGET = 10.12;
PRODUCT_NAME = "$(PROJECT_NAME)Tests";
};
name = Debug;
Expand All @@ -1779,7 +1778,6 @@
baseConfigurationReference = E6124BA9267DF505005A3490 /* macOS-XCTest.xcconfig */;
buildSettings = {
INFOPLIST_FILE = Tests/ReactiveSwiftTests/Info.plist;
MACOSX_DEPLOYMENT_TARGET = 10.12;
PRODUCT_NAME = "$(PROJECT_NAME)Tests";
};
name = Release;
Expand Down Expand Up @@ -1829,16 +1827,16 @@
BITCODE_GENERATION_MODE = bitcode;
CODE_SIGNING_REQUIRED = NO;
CURRENT_PROJECT_VERSION = 1;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.12;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MACOSX_DEPLOYMENT_TARGET = 10.13;
PRODUCT_BUNDLE_IDENTIFIER = "org.reactivecocoa.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(PROJECT_NAME)";
SWIFT_TREAT_WARNINGS_AS_ERRORS = NO;
SWIFT_VERSION = 5.2;
TVOS_DEPLOYMENT_TARGET = 10.0;
TVOS_DEPLOYMENT_TARGET = 12.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
WATCHOS_DEPLOYMENT_TARGET = 3.0;
WATCHOS_DEPLOYMENT_TARGET = 4.0;
XROS_DEPLOYMENT_TARGET = 1.0;
};
name = Profile;
Expand All @@ -1860,7 +1858,6 @@
baseConfigurationReference = E6124BA9267DF505005A3490 /* macOS-XCTest.xcconfig */;
buildSettings = {
INFOPLIST_FILE = Tests/ReactiveSwiftTests/Info.plist;
MACOSX_DEPLOYMENT_TARGET = 10.10;
PRODUCT_NAME = "$(PROJECT_NAME)Tests";
};
name = Profile;
Expand Down Expand Up @@ -1891,16 +1888,16 @@
BITCODE_GENERATION_MODE = bitcode;
CODE_SIGNING_REQUIRED = NO;
CURRENT_PROJECT_VERSION = 1;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.12;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MACOSX_DEPLOYMENT_TARGET = 10.13;
PRODUCT_BUNDLE_IDENTIFIER = "org.reactivecocoa.$(PRODUCT_NAME:rfc1034identifier)-Tests";
PRODUCT_NAME = "$(PROJECT_NAME)";
SWIFT_TREAT_WARNINGS_AS_ERRORS = NO;
SWIFT_VERSION = 5.2;
TVOS_DEPLOYMENT_TARGET = 10.0;
TVOS_DEPLOYMENT_TARGET = 12.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
WATCHOS_DEPLOYMENT_TARGET = 3.0;
WATCHOS_DEPLOYMENT_TARGET = 4.0;
XROS_DEPLOYMENT_TARGET = 1.0;
};
name = Test;
Expand All @@ -1922,7 +1919,6 @@
baseConfigurationReference = E6124BA9267DF505005A3490 /* macOS-XCTest.xcconfig */;
buildSettings = {
INFOPLIST_FILE = Tests/ReactiveSwiftTests/Info.plist;
MACOSX_DEPLOYMENT_TARGET = 10.10;
PRODUCT_NAME = "$(PROJECT_NAME)Tests";
};
name = Test;
Expand Down
Loading

0 comments on commit 4bb00b6

Please sign in to comment.