Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nuke 13 – Swift 6 #802

Open
wants to merge 61 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
cc2789f
Add ImagePipelineActor
kean Jul 28, 2024
ed5ae0b
Remove deprecated APIs from ImagePipeleine
kean Jul 28, 2024
d122647
Remove AsyncImageTask
kean Jul 28, 2024
3ce7e92
Remove ImagePipeline.Configuration.callbackQueue parameter
kean Jul 28, 2024
8422630
Add a note about ImagePipeline.Configuration
kean Jul 28, 2024
1a469cb
Remove onTaskCreated tests – this situation was eliminated
kean Jul 28, 2024
e793012
Safer testLoadDataDataLoaded
kean Jul 28, 2024
b72c56b
Add ImagePublisher back
kean Jul 28, 2024
8c6f7f2
Use Atomic for ImageTaskNonisolatedState
kean Jul 28, 2024
786bebc
Cleanup
kean Jul 28, 2024
6168ab1
Remove deprecated APIs
kean Jul 28, 2024
4b2f473
Update unit tests
kean Aug 3, 2024
287b1db
Rename Atomic to Mutex
kean Aug 3, 2024
f07a2e1
Make some of ImageTask properties nonislated
kean Aug 3, 2024
5a0c759
Make ImageTask/continuation private
kean Aug 3, 2024
8983d5d
Make ImageTask.State explicitly Sendable
kean Aug 3, 2024
796f5c6
Rework isolation in ImageTask
kean Aug 17, 2024
039b163
Remove nonisolated ImageTask.state
kean Aug 17, 2024
109621c
Remove ImageTaskExecutionContext
kean Aug 17, 2024
00d6f18
Cleanup ImageTask
kean Aug 17, 2024
a774d51
Revert imageTaskCreated removal
kean Aug 17, 2024
4b21e2e
Revert imageTaskCreated removal
kean Aug 17, 2024
c56dbae
Remove soft-deprecated APIs from ImagePipeline.Delegate
kean Aug 17, 2024
45c7fd6
Rename ImagePipelineDelegate to ImagePipeline.Delegate
kean Aug 17, 2024
a2bd2f7
Move Combine extensions
kean Aug 17, 2024
351be3a
Remove DataPublisher support
kean Aug 17, 2024
836cf75
Update warnings
kean Aug 17, 2024
f742a0c
Update DataLoading protocol to use Swift Concurrency
kean Aug 17, 2024
f4a4b74
Update ResumableDataStore to use generic namespace ID
kean Aug 17, 2024
a43d235
Revert DataLoader to use URLRequest as parameter for now
kean Aug 17, 2024
8befa46
Reimplement data loading with closure
kean Aug 18, 2024
2306a4e
Update ImagePrefetcher to use Swift Concurrency (partially)
kean Aug 18, 2024
83dc0eb
Update ImagePipeline callbacks to be main actor isolated
kean Aug 18, 2024
b8d190d
Remove UncheckedSendableBox
kean Aug 18, 2024
d650baf
Remove now redundant _loadData method
kean Aug 18, 2024
70b92f0
Fix a concurrency warning in RateLimiter
kean Aug 18, 2024
123586a
Fix RateLimiter tests
kean Aug 18, 2024
38dc11c
Remove one of the loadData variant
kean Aug 18, 2024
2e0e6b6
Rename makeImageTask
kean Aug 18, 2024
1b7547a
Rename imageTaskUpdatePriorityCalled
kean Aug 18, 2024
7e34b50
Soft-deprecate closure-based APIs
kean Aug 18, 2024
97c3ccd
Remove warning in isResumableDataEnabled
kean Aug 18, 2024
cd82f34
Remove Sendable conformance from AsyncPipelineTask
kean Aug 18, 2024
868da19
Remove unused isResumableDataEnabled
kean Aug 18, 2024
84400f0
Remove redundant @unchecked from ImageProcessingOptions.Border
kean Aug 18, 2024
0e5273b
Remove redundant @unchecked Sendable
kean Aug 18, 2024
8ab81b7
Update ImagePrefetcher
kean Oct 26, 2024
1c495bd
Update TaskTests
kean Oct 26, 2024
6df73d2
Update testCancelAsyncImageTask
kean Oct 26, 2024
6dadf6e
Simplify didComplete
kean Oct 26, 2024
3fbd5b0
Deprecate FetchImage.load with Publisher
kean Oct 26, 2024
2086dc6
Update tests
kean Oct 26, 2024
bf79725
Fix an issue with state being writable
kean Oct 27, 2024
bca4607
Sync ImageTask on ImagePipelineActor
kean Oct 27, 2024
b620989
Update how withLock is used
kean Oct 27, 2024
81e8412
ImageRequest.Container is no longer Sendable
kean Oct 27, 2024
072f732
Update ci.yml
kean Oct 27, 2024
9c025c6
Update performance tests
kean Oct 27, 2024
a4413f6
Bump macOS deployment target to macOS 11
kean Oct 27, 2024
de39ec1
Increase deployment targets
kean Oct 27, 2024
4878846
Remove @unchecked from ImagePipeline.Error Sendable conformance
kean Oct 27, 2024
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
73 changes: 38 additions & 35 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,22 @@ on:

jobs:
ios-latest:
name: Unit Tests (iOS 17.4, Xcode 15.3)
runs-on: macOS-14
name: Unit Tests (iOS 18.0, Xcode 16.0)
runs-on: macOS-15
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_16.0.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- name: Run Tests
run: |
.scripts/test.sh -s "Nuke" -d "OS=17.4,name=iPhone 15 Pro"
.scripts/test.sh -s "NukeUI" -d "OS=17.4,name=iPhone 15 Pro"
.scripts/test.sh -s "NukeExtensions" -d "OS=17.4,name=iPhone 15 Pro"
.scripts/test.sh -s "Nuke" -d "OS=18.0,name=iPhone 16 Pro"
.scripts/test.sh -s "NukeUI" -d "OS=18.0,name=iPhone 16 Pro"
.scripts/test.sh -s "NukeExtensions" -d "OS=18.0,name=iPhone 16 Pro"
macos-latest:
name: Unit Tests (macOS, Xcode 15.3)
runs-on: macOS-14
name: Unit Tests (macOS, Xcode 16.0)
runs-on: macOS-15
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_16.0.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- name: Run Tests
Expand All @@ -34,17 +34,17 @@ jobs:
.scripts/test.sh -s "NukeUI" -d "platform=macOS"
.scripts/test.sh -s "NukeExtensions" -d "platform=macOS"
tvos-latest:
name: Unit Tests (tvOS 17.4, Xcode 15.3)
runs-on: macOS-14
name: Unit Tests (tvOS 18.0, Xcode 16.0)
runs-on: macOS-15
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_16.0.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- name: Run Tests
run: |
.scripts/test.sh -s "Nuke" -d "OS=17.4,name=Apple TV"
.scripts/test.sh -s "NukeUI" -d "OS=17.4,name=Apple TV"
.scripts/test.sh -s "NukeExtensions" -d "OS=17.4,name=Apple TV"
.scripts/test.sh -s "Nuke" -d "OS=18.0,name=Apple TV"
.scripts/test.sh -s "NukeUI" -d "OS=18.0,name=Apple TV"
.scripts/test.sh -s "NukeExtensions" -d "OS=18.0,name=Apple TV"
# There is a problem with watchOS runners where they often fail to launch on CI
#
# watchos-latest:
Expand All @@ -59,27 +59,30 @@ jobs:
# .scripts/test.sh -s "Nuke" -d "OS=9.1,name=Apple Watch Series 8 (45mm)"
# .scripts/test.sh -s "NukeUI" -d "OS=9.1,name=Apple Watch Series 8 (45mm)"
# .scripts/test.sh -s "Nuke Extensions" -d "OS=9.1,name=Apple Watch Series 8 (45mm)"
ios-xcode-14-3-1:
name: Unit Tests (iOS 17.0, Xcode 15.0)
runs-on: macOS-13
env:
DEVELOPER_DIR: /Applications/Xcode_15.0.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- name: Run Tests
run: |
.scripts/test.sh -s "Nuke" -d "OS=17.0,name=iPhone 15 Pro"
.scripts/test.sh -s "NukeUI" -d "OS=17.0,name=iPhone 15 Pro"
.scripts/test.sh -s "NukeExtensions" -d "OS=17.0,name=iPhone 15 Pro"

# Nuke 13.0 supports only the latest version of Xcode (16).
#
# ios-xcode-14-3-1:
# name: Unit Tests (iOS 17.0, Xcode 15.0)
# runs-on: macOS-13
# env:
# DEVELOPER_DIR: /Applications/Xcode_15.0.app/Contents/Developer
# steps:
# - uses: actions/checkout@v2
# - name: Run Tests
# run: |
# .scripts/test.sh -s "Nuke" -d "OS=17.0,name=iPhone 15 Pro"
# .scripts/test.sh -s "NukeUI" -d "OS=17.0,name=iPhone 15 Pro"
# .scripts/test.sh -s "NukeExtensions" -d "OS=17.0,name=iPhone 15 Pro"
ios-thread-safety:
name: Thread Safety Tests (TSan Enabled)
runs-on: macOS-14
runs-on: macOS-15
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_16.0.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- name: Run Tests
run: .scripts/test.sh -s "Nuke Thread Safety Tests" -d "OS=17.4,name=iPhone 15 Pro"
run: .scripts/test.sh -s "Nuke Thread Safety Tests" -d "OS=18.0,name=iPhone 16 Pro"
# ios-memory-management-tests:
# name: Memory Management Tests
# runs-on: macOS-13
Expand All @@ -91,18 +94,18 @@ jobs:
# run: .scripts/test.sh -s "Nuke Memory Management Tests" -d "OS=14.4,name=iPhone 12 Pro"
ios-performance-tests:
name: Performance Tests
runs-on: macOS-14
runs-on: macOS-15
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_16.0.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- name: Run Tests
run: .scripts/test.sh -s "Nuke Performance Tests" -d "OS=17.4,name=iPhone 15 Pro"
run: .scripts/test.sh -s "Nuke Performance Tests" -d "OS=18.0,name=iPhone 16 Pro"
swift-build:
name: Swift Build (SPM)
runs-on: macOS-14
runs-on: macOS-15
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_16.0.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- name: Build
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ request.processors = [.resize(width: 320)]
- ``init(url:processors:priority:options:userInfo:)``
- ``init(urlRequest:processors:priority:options:userInfo:)``
- ``init(id:data:processors:priority:options:userInfo:)``
- ``init(id:dataPublisher:processors:priority:options:userInfo:)``
- ``init(stringLiteral:)``

### Options
Expand Down
Loading
Loading