-
Notifications
You must be signed in to change notification settings - Fork 293
Add Swift 6 support #204
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
Add Swift 6 support #204
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR modernizes the Gifu project to support Swift 6 and the latest iOS/tvOS platforms. The primary purpose is to adopt Swift concurrency features, update testing framework, and ensure compatibility with newer Xcode versions.
Key changes include:
- Swift concurrency adoption with
@MainActor,Sendableconformance, and async/await patterns - Migration from XCTest to Swift Testing framework for unit tests
- Updated platform deployment targets and Swift version requirements
Reviewed Changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| Tests/GifuTests.swift | Migrated from XCTest to Swift Testing framework with async test patterns |
| Sources/Gifu/Helpers/ImageSourceHelpers.swift | Replaced deprecated UTTypeConformsTo with modern UTType.conforms(to:) |
| Sources/Gifu/Classes/GIFAnimatable.swift | Added @MainActor and Sendable conformance, updated closures to async patterns |
| Sources/Gifu/Classes/FrameStore.swift | Added @MainActor and Sendable conformance, removed manual locking |
| Sources/Gifu/Classes/Animator.swift | Added @MainActor conformance and updated display link invalidation |
| Sources/Gifu/Classes/AnimatedFrame.swift | Added Sendable conformance |
| Package.swift | Updated deployment targets and added test target configuration |
| README.md | Updated compatibility requirements and platform support |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
|
@claude Please review. |
|
Claude finished @kaishin's task —— View job Code Review: Swift 6 SupportTodo List:
🔍 Review SummaryThis PR successfully modernizes Gifu for Swift 6 with thoughtful concurrency adoption and comprehensive testing updates. The migration demonstrates good understanding of Swift 6's concurrency model while maintaining backwards compatibility. ✅ Positive ChangesSwift Concurrency Implementation:
Test Migration:
Platform Updates:
|
- Bump minimum iOS version to 14.0
- Parameterize iOS device in Makefile for flexibility. - Update GitHub Actions workflow to use Xcode 15.4 and 16.2. - Add separate build jobs for Xcode 15 and Xcode 16 with respective device configurations for iOS tests. - Ensure tvOS tests are run in both environments.
…S and tvOS testing
|
Claude finished @kaishin's task —— View job Code Review: Swift 6 SupportTodo List:
🔍 Review SummaryThis PR successfully modernizes Gifu for Swift 6 with thoughtful concurrency adoption and comprehensive testing updates. The migration demonstrates good understanding of Swift 6's concurrency model while maintaining backwards compatibility. ✅ Positive ChangesSwift Concurrency Implementation:
Test Migration:
Platform Updates:
|
|
Claude finished @kaishin's task —— View job Code Review: Swift 6 SupportTodo List:
🔍 Review SummaryThis PR successfully modernizes Gifu for Swift 6 with thoughtful concurrency adoption and comprehensive testing updates. The migration demonstrates good understanding of Swift 6's concurrency model while maintaining backwards compatibility. ✅ Positive ChangesSwift Concurrency Implementation:
Test Migration:
Platform Updates:
|
This PR updates the project to support the latest Xcode versions and iOS/tvOS deployment targets. It also makes some code changes to adopt Swift concurrency and other modern language features.
AnimatorandGIFAnimatableFrameStoreandFrameCachingStrategyconform toSendable@Sendableclosuresxcprettywithxcbeautifyin MakefilePackage.swiftfor Swift 6 and addedExistentialAnycompiler flagUTTypeConformsTowithUTType.conforms(to:)inImageSourceHelpers@MainActor