Skip to content

Commit 7c0a210

Browse files
authored
Merge branch 'main' into topic/date-app-storage
2 parents 73a9bac + 12268ed commit 7c0a210

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+484
-224
lines changed

.github/package.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/workflows/ci.yml

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,51 @@ concurrency:
1414
cancel-in-progress: true
1515

1616
jobs:
17+
xcodebuild-latest:
18+
name: xcodebuild (16)
19+
runs-on: macos-15
20+
strategy:
21+
matrix:
22+
command: ['']
23+
platform: [IOS, MACOS]
24+
xcode: ['16.0']
25+
steps:
26+
- uses: actions/checkout@v4
27+
- name: Select Xcode ${{ matrix.xcode }}
28+
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
29+
- name: List available devices
30+
run: xcrun simctl list devices available
31+
- name: Cache derived data
32+
uses: actions/cache@v3
33+
with:
34+
path: |
35+
~/.derivedData
36+
key: |
37+
deriveddata-xcodebuild-${{ matrix.platform }}-${{ matrix.xcode }}-${{ matrix.command }}-${{ hashFiles('**/Sources/**/*.swift', '**/Tests/**/*.swift') }}
38+
restore-keys: |
39+
deriveddata-xcodebuild-${{ matrix.platform }}-${{ matrix.xcode }}-${{ matrix.command }}-
40+
- name: Set IgnoreFileSystemDeviceInodeChanges flag
41+
run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES
42+
- name: Update mtime for incremental builds
43+
uses: chetan/git-restore-mtime-action@v2
44+
- name: Debug
45+
run: make XCODEBUILD_ARGUMENT="${{ matrix.command }}" CONFIG=Debug PLATFORM="${{ matrix.platform }}" WORKSPACE=.github/package.xcworkspace xcodebuild
46+
1747
xcodebuild:
18-
name: xcodebuild
48+
name: xcodebuild (15)
1949
runs-on: macos-14
2050
strategy:
2151
matrix:
2252
command: [test, '']
2353
platform: [IOS, MAC_CATALYST, MACOS, TVOS, VISIONOS, WATCHOS]
24-
xcode: [15.2, 15.4, '16.0']
54+
xcode: [15.2, 15.4]
2555
exclude:
2656
- {xcode: 15.2, command: test}
2757
- {xcode: 15.4, command: ''}
2858
- {xcode: 15.2, platform: MAC_CATALYST}
2959
- {xcode: 15.2, platform: TVOS}
3060
- {xcode: 15.2, platform: VISIONOS}
3161
- {xcode: 15.2, platform: WATCHOS}
32-
- {xcode: '16.0', command: ''}
33-
- {xcode: '16.0', platform: MAC_CATALYST}
34-
- {xcode: '16.0', platform: TVOS}
35-
- {xcode: '16.0', platform: VISIONOS}
36-
- {xcode: '16.0', platform: WATCHOS}
3762
include:
3863
- {xcode: 15.2, skip_release: 1}
3964
steps:
@@ -80,7 +105,7 @@ jobs:
80105

81106
examples:
82107
name: Examples
83-
runs-on: macos-14
108+
runs-on: macos-15
84109
steps:
85110
- uses: actions/checkout@v4
86111
- name: Cache derived data
@@ -98,22 +123,22 @@ jobs:
98123
- name: Update mtime for incremental builds
99124
uses: chetan/git-restore-mtime-action@v2
100125
- name: CaseStudies (SwiftUI)
101-
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="CaseStudies (SwiftUI)" xcodebuild
126+
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="CaseStudies (SwiftUI)" xcodebuild-raw
102127
- name: CaseStudies (UIKit)
103-
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="CaseStudies (UIKit)" xcodebuild
128+
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="CaseStudies (UIKit)" xcodebuild-raw
104129
- name: Search
105-
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="Search" xcodebuild
130+
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="Search" xcodebuild-raw
106131
- name: SyncUps
107-
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="SyncUps" xcodebuild
132+
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="SyncUps" xcodebuild-raw
108133
- name: SpeechRecognition
109-
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="SpeechRecognition" xcodebuild
134+
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="SpeechRecognition" xcodebuild-raw
110135
- name: TicTacToe
111-
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="TicTacToe" xcodebuild
136+
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="TicTacToe" xcodebuild-raw
112137
- name: Todos
113-
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="Todos" xcodebuild
138+
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="Todos" xcodebuild-raw
114139
- name: VoiceMemos
115-
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="VoiceMemos" xcodebuild
116-
140+
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="VoiceMemos" xcodebuild-raw
141+
117142
check-macro-compatibility:
118143
name: Check Macro Compatibility
119144
runs-on: macos-latest

ComposableArchitecture.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 16 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Examples/CaseStudies/SwiftUICaseStudies/03-Effects-LongLiving.swift

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,17 @@ struct LongLivingEffects {
4848
}
4949

5050
extension DependencyValues {
51-
var screenshots: @Sendable () async -> AsyncStream<Void> {
51+
var screenshots: @Sendable () async -> any AsyncSequence<Void, Never> {
5252
get { self[ScreenshotsKey.self] }
5353
set { self[ScreenshotsKey.self] = newValue }
5454
}
5555
}
5656

5757
private enum ScreenshotsKey: DependencyKey {
58-
static let liveValue: @Sendable () async -> AsyncStream<Void> = {
59-
AsyncStream(
60-
NotificationCenter.default
61-
.notifications(named: UIApplication.userDidTakeScreenshotNotification)
62-
.map { _ in }
63-
)
58+
static let liveValue: @Sendable () async -> any AsyncSequence<Void, Never> = {
59+
NotificationCenter.default
60+
.notifications(named: UIApplication.userDidTakeScreenshotNotification)
61+
.map { _ in }
6462
}
6563
}
6664

Examples/CaseStudies/SwiftUICaseStudies/FactClient.swift

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,3 @@ extension FactClient: DependencyKey {
3030
/// to prove do not need the dependency.
3131
static let testValue = Self()
3232
}
33-
34-
struct AnyHashableSendable: Hashable, @unchecked Sendable {
35-
let base: AnyHashable
36-
init<Base: Hashable & Sendable>(_ base: Base) {
37-
self.base = base
38-
}
39-
}

Examples/SyncUps/SyncUpsTests/AppFeatureTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import Testing
66

77
@MainActor
88
struct AppFeatureTests {
9+
init() { uncheckedUseMainSerialExecutor = true }
10+
911
@Test
1012
func detailEdit() async throws {
1113
let syncUp = SyncUp.mock

Examples/SyncUps/SyncUpsTests/RecordMeetingTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import Testing
66

77
@MainActor
88
struct RecordMeetingTests {
9+
init() { uncheckedUseMainSerialExecutor = true }
10+
911
@Test
1012
func timer() async {
1113
let clock = TestClock()

Examples/SyncUps/SyncUpsTests/SyncUpDetailTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import Testing
55

66
@MainActor
77
struct SyncUpDetailTests {
8+
init() { uncheckedUseMainSerialExecutor = true }
9+
810
@Test
911
func speechRestricted() async {
1012
let store = TestStore(initialState: SyncUpDetail.State(syncUp: Shared(.mock))) {

Examples/SyncUps/SyncUpsTests/SyncUpFormTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import Testing
66

77
@MainActor
88
struct SyncUpFormTests {
9+
init() { uncheckedUseMainSerialExecutor = true }
10+
911
@Test
1012
func addAttendee() async {
1113
let store = TestStore(

Examples/SyncUps/SyncUpsTests/SyncUpsListTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import Testing
66

77
@MainActor
88
struct SyncUpsListTests {
9+
init() { uncheckedUseMainSerialExecutor = true }
10+
911
@Test
1012
func add() async throws {
1113
let store = TestStore(initialState: SyncUpsList.State()) {

0 commit comments

Comments
 (0)