From ddc7d42f969a96e1ece4a7dfb4e45e25e9f3a6a3 Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Fri, 19 Jul 2024 20:04:42 +0100 Subject: [PATCH] Bump to Swift 5.9 (#139) --- .github/workflows/ci.yml | 9 ++++----- Package.swift | 3 +-- Sources/Animation/Animation.swift | 4 ++-- Sources/Animator/AnimatorTransientView.swift | 8 ++++---- Sources/Animator/Transform.swift | 1 - Sources/AtomicTransition/Rotate3D.swift | 2 +- Sources/AtomicTransition/ZPosition.swift | 2 +- .../AnyNavigationTransition.swift | 12 ++++++------ Sources/NavigationTransition/Default.swift | 4 ++-- .../NavigationTransition/NavigationTransition.swift | 2 +- .../NavigationTransition+UIKit.swift | 2 +- .../NavigationTransitionDelegate.swift | 6 +++--- Sources/TestUtils/AnimatorTransientView+Mocks.swift | 2 +- .../AnimatorTransientViewPropertiesTests.swift | 2 +- Tests/AnimatorTests/AnimatorTransientViewTests.swift | 2 +- Tests/AtomicTransitionTests/CombinedTests.swift | 2 +- Tests/AtomicTransitionTests/GroupTests.swift | 2 +- Tests/AtomicTransitionTests/IdentityTests.swift | 2 +- Tests/AtomicTransitionTests/MoveTests.swift | 4 ++-- Tests/AtomicTransitionTests/OffsetTests.swift | 4 ++-- Tests/AtomicTransitionTests/OnTests.swift | 2 +- Tests/AtomicTransitionTests/OpacityTests.swift | 4 ++-- Tests/AtomicTransitionTests/RotateTests.swift | 4 ++-- Tests/AtomicTransitionTests/ScaleTests.swift | 4 ++-- Tests/AtomicTransitionTests/ZPositionTests.swift | 4 ++-- 25 files changed, 45 insertions(+), 48 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b6fef8..b604743 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ on: branches: - "**" schedule: - - cron: '3 3 * * 2' # 3:03 AM, every Tuesday + - cron: "3 3 * * 2" # 3:03 AM, every Tuesday concurrency: group: ci-${{ github.ref }} @@ -17,7 +17,7 @@ concurrency: jobs: macOS: name: ${{ matrix.platform }} (Swift ${{ matrix.swift }}) - runs-on: macos-13 + runs-on: macos-14 strategy: fail-fast: false matrix: @@ -26,9 +26,8 @@ jobs: - mac-catalyst - tvOS swift: - - 5.7 - - 5.8 - - 5.9 + - "5.9" + - "5.10" steps: - name: Git Checkout uses: actions/checkout@v4 diff --git a/Package.swift b/Package.swift index 5958f6f..f8ef1d2 100644 --- a/Package.swift +++ b/Package.swift @@ -1,5 +1,4 @@ -// swift-tools-version: 5.7 -// The swift-tools-version declares the minimum version of Swift required to build this package. +// swift-tools-version: 5.9 import PackageDescription diff --git a/Sources/Animation/Animation.swift b/Sources/Animation/Animation.swift index 08334a8..c81e0f5 100644 --- a/Sources/Animation/Animation.swift +++ b/Sources/Animation/Animation.swift @@ -3,8 +3,8 @@ import UIKit public struct Animation { static var defaultDuration: Double { 0.35 } - @_spi(package) public var duration: Double - @_spi(package) public let timingParameters: UITimingCurveProvider + package var duration: Double + package let timingParameters: UITimingCurveProvider init(duration: Double, timingParameters: UITimingCurveProvider) { self.duration = duration diff --git a/Sources/Animator/AnimatorTransientView.swift b/Sources/Animator/AnimatorTransientView.swift index ad922ed..48b7672 100644 --- a/Sources/Animator/AnimatorTransientView.swift +++ b/Sources/Animator/AnimatorTransientView.swift @@ -32,14 +32,14 @@ public class AnimatorTransientView { /// Note: these changes are *not* animated. public var completion: Properties - @_spi(package) public let uiView: UIView + package let uiView: UIView /// Read-only proxy to underlying `UIView` properties. public subscript(dynamicMember keyPath: KeyPath) -> T { uiView[keyPath: keyPath] } - @_spi(package) public init(_ uiView: UIView) { + package init(_ uiView: UIView) { self.initial = Properties(of: uiView) self.animation = Properties(of: uiView) self.completion = Properties(of: uiView) @@ -47,14 +47,14 @@ public class AnimatorTransientView { self.uiView = uiView } - @_spi(package) public func setUIViewProperties( + package func setUIViewProperties( to properties: KeyPath, force: Bool = false ) { self[keyPath: properties].assignToUIView(uiView, force: force) } - @_spi(package) public func resetUIViewProperties() { + package func resetUIViewProperties() { Properties.default.assignToUIView(uiView, force: true) } } diff --git a/Sources/Animator/Transform.swift b/Sources/Animator/Transform.swift index 4fe5632..3c7e980 100644 --- a/Sources/Animator/Transform.swift +++ b/Sources/Animator/Transform.swift @@ -35,7 +35,6 @@ extension CATransform3D { } } -@_spi(package) extension CATransform3D: Equatable { @inlinable public static func == (lhs: Self, rhs: Self) -> Bool { diff --git a/Sources/AtomicTransition/Rotate3D.swift b/Sources/AtomicTransition/Rotate3D.swift index e6ffefa..b320022 100644 --- a/Sources/AtomicTransition/Rotate3D.swift +++ b/Sources/AtomicTransition/Rotate3D.swift @@ -1,4 +1,4 @@ -@_spi(package) import Animator +import Animator import SwiftUI /// A transition that rotates the view from `angle` to zero on insertion, and from zero to `angle` on removal. diff --git a/Sources/AtomicTransition/ZPosition.swift b/Sources/AtomicTransition/ZPosition.swift index a6e3fa3..919c82a 100644 --- a/Sources/AtomicTransition/ZPosition.swift +++ b/Sources/AtomicTransition/ZPosition.swift @@ -1,4 +1,4 @@ -@_spi(package) import Animator +import Animator import UIKit /// A transition that changes the view layer’s position on the z axis. diff --git a/Sources/NavigationTransition/AnyNavigationTransition.swift b/Sources/NavigationTransition/AnyNavigationTransition.swift index 9870d12..3ce0413 100644 --- a/Sources/NavigationTransition/AnyNavigationTransition.swift +++ b/Sources/NavigationTransition/AnyNavigationTransition.swift @@ -2,27 +2,27 @@ import Animation import UIKit public struct AnyNavigationTransition { - @_spi(package) public typealias TransientHandler = ( + package typealias TransientHandler = ( AnimatorTransientView, AnimatorTransientView, NavigationTransitionOperation, UIView ) -> Void - @_spi(package) public typealias PrimitiveHandler = ( + package typealias PrimitiveHandler = ( Animator, NavigationTransitionOperation, UIViewControllerContextTransitioning ) -> Void - @_spi(package) public enum Handler { + package enum Handler { case transient(TransientHandler) case primitive(PrimitiveHandler) } - @_spi(package) public let isDefault: Bool - @_spi(package) public let handler: Handler - @_spi(package) public var animation: Animation? = .default + package let isDefault: Bool + package let handler: Handler + package var animation: Animation? = .default public init(_ transition: some NavigationTransition) { self.isDefault = false diff --git a/Sources/NavigationTransition/Default.swift b/Sources/NavigationTransition/Default.swift index 6bfb1b0..72398ae 100644 --- a/Sources/NavigationTransition/Default.swift +++ b/Sources/NavigationTransition/Default.swift @@ -17,10 +17,10 @@ extension AnyNavigationTransition { } } -@_spi(package) public struct Default: PrimitiveNavigationTransition { +package struct Default: PrimitiveNavigationTransition { init() {} - public func transition(with animator: Animator, for operation: TransitionOperation, in context: Context) { + package func transition(with animator: Animator, for operation: TransitionOperation, in context: Context) { // NO-OP } } diff --git a/Sources/NavigationTransition/NavigationTransition.swift b/Sources/NavigationTransition/NavigationTransition.swift index ab1d386..220f253 100644 --- a/Sources/NavigationTransition/NavigationTransition.swift +++ b/Sources/NavigationTransition/NavigationTransition.swift @@ -86,7 +86,7 @@ public enum NavigationTransitionOperation: Hashable { case push case pop - @_spi(package) public init?(_ operation: UINavigationController.Operation) { + package init?(_ operation: UINavigationController.Operation) { switch operation { case .push: self = .push diff --git a/Sources/NavigationTransitions/NavigationTransition+UIKit.swift b/Sources/NavigationTransitions/NavigationTransition+UIKit.swift index 11b210c..b7a4ea7 100644 --- a/Sources/NavigationTransitions/NavigationTransition+UIKit.swift +++ b/Sources/NavigationTransitions/NavigationTransition+UIKit.swift @@ -1,4 +1,4 @@ -@_spi(package) import NavigationTransition +import NavigationTransition import RuntimeAssociation import RuntimeSwizzling import UIKit diff --git a/Sources/NavigationTransitions/NavigationTransitionDelegate.swift b/Sources/NavigationTransitions/NavigationTransitionDelegate.swift index bb0be79..037c6a0 100644 --- a/Sources/NavigationTransitions/NavigationTransitionDelegate.swift +++ b/Sources/NavigationTransitions/NavigationTransitionDelegate.swift @@ -1,6 +1,6 @@ -@_spi(package) import Animation -@_spi(package) import Animator -@_spi(package) import NavigationTransition +import Animation +import Animator +import NavigationTransition import UIKit final class NavigationTransitionDelegate: NSObject, UINavigationControllerDelegate { diff --git a/Sources/TestUtils/AnimatorTransientView+Mocks.swift b/Sources/TestUtils/AnimatorTransientView+Mocks.swift index 768f2d6..c3b4d10 100644 --- a/Sources/TestUtils/AnimatorTransientView+Mocks.swift +++ b/Sources/TestUtils/AnimatorTransientView+Mocks.swift @@ -1,4 +1,4 @@ -@_spi(package) @testable import Animator +@testable import Animator import UIKit import XCTestDynamicOverlay diff --git a/Tests/AnimatorTests/AnimatorTransientViewPropertiesTests.swift b/Tests/AnimatorTests/AnimatorTransientViewPropertiesTests.swift index 298dc09..04b64c6 100644 --- a/Tests/AnimatorTests/AnimatorTransientViewPropertiesTests.swift +++ b/Tests/AnimatorTests/AnimatorTransientViewPropertiesTests.swift @@ -1,4 +1,4 @@ -@_spi(package) @testable import Animator +@testable import Animator import TestUtils final class AnimatorTransientViewPropertiesTests: XCTestCase {} diff --git a/Tests/AnimatorTests/AnimatorTransientViewTests.swift b/Tests/AnimatorTests/AnimatorTransientViewTests.swift index d0bcb2e..31b704b 100644 --- a/Tests/AnimatorTests/AnimatorTransientViewTests.swift +++ b/Tests/AnimatorTests/AnimatorTransientViewTests.swift @@ -1,4 +1,4 @@ -@_spi(package) @testable import Animator +@testable import Animator import TestUtils final class AnimatorTransientViewTests: XCTestCase {} diff --git a/Tests/AtomicTransitionTests/CombinedTests.swift b/Tests/AtomicTransitionTests/CombinedTests.swift index 88bce1d..dc53f82 100644 --- a/Tests/AtomicTransitionTests/CombinedTests.swift +++ b/Tests/AtomicTransitionTests/CombinedTests.swift @@ -1,4 +1,4 @@ -@_spi(package) @testable import AtomicTransition +@testable import AtomicTransition import TestUtils final class CombinedTests: XCTestCase { diff --git a/Tests/AtomicTransitionTests/GroupTests.swift b/Tests/AtomicTransitionTests/GroupTests.swift index 4bb5bf1..884a577 100644 --- a/Tests/AtomicTransitionTests/GroupTests.swift +++ b/Tests/AtomicTransitionTests/GroupTests.swift @@ -1,4 +1,4 @@ -@_spi(package) import AtomicTransition +import AtomicTransition import TestUtils final class GroupTests: XCTestCase { diff --git a/Tests/AtomicTransitionTests/IdentityTests.swift b/Tests/AtomicTransitionTests/IdentityTests.swift index ca6b4c4..22ad782 100644 --- a/Tests/AtomicTransitionTests/IdentityTests.swift +++ b/Tests/AtomicTransitionTests/IdentityTests.swift @@ -1,4 +1,4 @@ -@_spi(package) import AtomicTransition +import AtomicTransition import TestUtils final class IdentityTests: XCTestCase { diff --git a/Tests/AtomicTransitionTests/MoveTests.swift b/Tests/AtomicTransitionTests/MoveTests.swift index b095354..0836428 100644 --- a/Tests/AtomicTransitionTests/MoveTests.swift +++ b/Tests/AtomicTransitionTests/MoveTests.swift @@ -1,5 +1,5 @@ -@_spi(package) @testable import Animator -@_spi(package) import AtomicTransition +@testable import Animator +import AtomicTransition import TestUtils final class MoveTests: XCTestCase { diff --git a/Tests/AtomicTransitionTests/OffsetTests.swift b/Tests/AtomicTransitionTests/OffsetTests.swift index 3851f2e..78e275d 100644 --- a/Tests/AtomicTransitionTests/OffsetTests.swift +++ b/Tests/AtomicTransitionTests/OffsetTests.swift @@ -1,5 +1,5 @@ -@_spi(package) @testable import Animator -@_spi(package) import AtomicTransition +@testable import Animator +import AtomicTransition import TestUtils final class OffsetTests: XCTestCase { diff --git a/Tests/AtomicTransitionTests/OnTests.swift b/Tests/AtomicTransitionTests/OnTests.swift index 67f59a0..b5c402f 100644 --- a/Tests/AtomicTransitionTests/OnTests.swift +++ b/Tests/AtomicTransitionTests/OnTests.swift @@ -1,4 +1,4 @@ -@_spi(package) import AtomicTransition +import AtomicTransition import TestUtils final class OnInsertionTests: XCTestCase { diff --git a/Tests/AtomicTransitionTests/OpacityTests.swift b/Tests/AtomicTransitionTests/OpacityTests.swift index 031f67e..8b5b7c0 100644 --- a/Tests/AtomicTransitionTests/OpacityTests.swift +++ b/Tests/AtomicTransitionTests/OpacityTests.swift @@ -1,5 +1,5 @@ -@_spi(package) @testable import Animator -@_spi(package) import AtomicTransition +@testable import Animator +import AtomicTransition import TestUtils final class OpacityTests: XCTestCase { diff --git a/Tests/AtomicTransitionTests/RotateTests.swift b/Tests/AtomicTransitionTests/RotateTests.swift index 309bb94..77127e9 100644 --- a/Tests/AtomicTransitionTests/RotateTests.swift +++ b/Tests/AtomicTransitionTests/RotateTests.swift @@ -1,5 +1,5 @@ -@_spi(package) @testable import Animator -@_spi(package) import AtomicTransition +@testable import Animator +import AtomicTransition import TestUtils final class RotateTests: XCTestCase { diff --git a/Tests/AtomicTransitionTests/ScaleTests.swift b/Tests/AtomicTransitionTests/ScaleTests.swift index ea3ab4b..83f61c5 100644 --- a/Tests/AtomicTransitionTests/ScaleTests.swift +++ b/Tests/AtomicTransitionTests/ScaleTests.swift @@ -1,5 +1,5 @@ -@_spi(package) @testable import Animator -@_spi(package) import AtomicTransition +@testable import Animator +import AtomicTransition import TestUtils final class ScaleTests: XCTestCase { diff --git a/Tests/AtomicTransitionTests/ZPositionTests.swift b/Tests/AtomicTransitionTests/ZPositionTests.swift index 9a7734c..32c3834 100644 --- a/Tests/AtomicTransitionTests/ZPositionTests.swift +++ b/Tests/AtomicTransitionTests/ZPositionTests.swift @@ -1,5 +1,5 @@ -@_spi(package) @testable import Animator -@_spi(package) import AtomicTransition +@testable import Animator +import AtomicTransition import TestUtils final class ZPositionTests: XCTestCase {