diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e7c990c..c11e7cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,18 +34,15 @@ jobs: fail-fast: false matrix: include: - - xcode: "Xcode_16.0" + - xcode: "Xcode_26.0.1" + runsOn: macOS-26 + name: "macOS 26, Xcode 26.0, Swift 6.2.0" + - xcode: "Xcode_16.1" runsOn: macOS-14 - name: "macOS 14, Xcode 16.0, Swift 6.0" + name: "macOS 14, Xcode 16.1, Swift 6.0.2" - xcode: "Xcode_15.4" runsOn: macOS-14 name: "macOS 14, Xcode 15.4, Swift 5.10" - - xcode: "Xcode_15.0" - runsOn: macos-13 - name: "macOS 13, Xcode 15.0, Swift 5.9.0" - - xcode: "Xcode_14.3.1" - runsOn: macos-13 - name: "macOS 13, Xcode 14.3.1, Swift 5.8.0" steps: - uses: actions/checkout@v3 - name: ${{ matrix.name }} @@ -67,26 +64,18 @@ jobs: fail-fast: false matrix: include: + - destination: "OS=26.0.1,name=iPhone 17 Pro" + xcode: "Xcode_26.0.1" + runsOn: macOS-26 + name: "OS=26.0, Xcode 26.0, Swift 6.2.0" - destination: "OS=18.1,name=iPhone 16 Pro" name: "iOS 18.1" xcode: "Xcode_16.1" runsOn: macOS-14 - - destination: "OS=18.0,name=iPhone 16 Pro" - name: "iOS 18.0" - xcode: "Xcode_16.0" - runsOn: macOS-14 - - destination: "OS=17.5,name=iPhone 15 Pro" - name: "iOS 17.5" - xcode: "Xcode_15.4" - runsOn: macOS-14 - - destination: "OS=17.0.1,name=iPhone 14 Pro" - name: "iOS 17.0.1" - xcode: "Xcode_15.0" - runsOn: macos-13 - - destination: "OS=16.4,name=iPhone 14 Pro" - name: "iOS 16.4" - xcode: "Xcode_14.3.1" - runsOn: macos-13 + - destination: "OS=17.4,name=iPhone 15 Pro" + name: "iOS 17.4" + xcode: "Xcode_15.3" + runsOn: macos-14 steps: - uses: actions/checkout@v3 - name: ${{ matrix.name }} @@ -108,26 +97,18 @@ jobs: fail-fast: false matrix: include: + - destination: "OS=26.0,name=Apple TV" + xcode: "Xcode_26.0.1" + runsOn: macOS-26 + name: "tvOS 26.0" - destination: "OS=18.1,name=Apple TV" name: "tvOS 18.1" xcode: "Xcode_16.1" runsOn: macOS-14 - - destination: "OS=18.0,name=Apple TV" - name: "tvOS 18.0" - xcode: "Xcode_16.0" - runsOn: macOS-14 - - destination: "OS=17.5,name=Apple TV" - name: "tvOS 17.5" - xcode: "Xcode_15.4" - runsOn: macOS-14 - - destination: "OS=17.0,name=Apple TV" - name: "tvOS 17.0" - xcode: "Xcode_15.0" - runsOn: macos-13 - - destination: "OS=16.4,name=Apple TV" - name: "tvOS 16.4" - xcode: "Xcode_14.3.1" - runsOn: macos-13 + - destination: "OS=17.4,name=Apple TV" + name: "tvOS 17.4" + xcode: "Xcode_15.3" + runsOn: macos-14 steps: - uses: actions/checkout@v3 - name: ${{ matrix.name }} @@ -149,26 +130,22 @@ jobs: fail-fast: false matrix: include: + - destination: "OS=26.0,name=Apple Watch Ultra 3 (49mm)" + xcode: "Xcode_26.0.1" + runsOn: macOS-26 + name: "watchOS 26.0" - destination: "OS=11.1,name=Apple Watch Series 10 (46mm)" name: "watchOS 11.1" xcode: "Xcode_16.1" runsOn: macOS-14 - - destination: "OS=11.0,name=Apple Watch Series 10 (46mm)" - name: "watchOS 11.0" - xcode: "Xcode_16.0" - runsOn: macOS-14 - destination: "OS=10.5,name=Apple Watch Series 9 (45mm)" name: "watchOS 10.5" - xcode: "Xcode_15.4" + xcode: "Xcode_15.3" runsOn: macOS-14 - - destination: "OS=10.0,name=Apple Watch Series 9 (45mm)" - name: "watchOS 10.0" - xcode: "Xcode_15.0" - runsOn: macos-13 - - destination: "OS=9.4,name=Apple Watch Series 8 (45mm)" - name: "watchOS 9.4" - xcode: "Xcode_14.3.1" - runsOn: macos-13 + - destination: "OS=10.4,name=Apple Watch Series 9 (45mm)" + name: "watchOS 10.4" + xcode: "Xcode_15.3" + runsOn: macos-14 steps: - uses: actions/checkout@v3 - name: ${{ matrix.name }} @@ -190,18 +167,18 @@ jobs: fail-fast: false matrix: include: + - destination: "macOS 26, SPM 6.2.0 Test" + xcode: "Xcode_26.0.1" + runsOn: macOS-26 + - destination: "macOS 15, SPM 6.0.2 Test" + xcode: "Xcode_16.0" + runsOn: macOS-15 - name: "macOS 14, SPM 6.0.2 Test" xcode: "Xcode_16.1" runsOn: macOS-14 - - name: "macOS 14, SPM 6.0.0 Test" - xcode: "Xcode_16.0" - runsOn: macOS-14 - - name: "macOS 14, SPM 5.9.0 Test" - xcode: "Xcode_15.0" + - name: "macOS 14, SPM 5.10.0 Test" + xcode: "Xcode_15.3" runsOn: macos-14 - - name: "macOS 13, SPM 5.8.1 Test" - xcode: "Xcode_14.3.1" - runsOn: macos-13 steps: - uses: actions/checkout@v3 - name: ${{ matrix.name }} @@ -209,29 +186,35 @@ jobs: merge-test-reports: needs: [iOS, macOS, watchOS, tvOS] - runs-on: macos-13 + runs-on: macos-15 steps: - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v6 with: path: test_output - run: xcrun xcresulttool merge test_output/**/*.xcresult --output-path test_output/final/final.xcresult - name: Upload Merged Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: MergedResult path: test_output/final discover-typos: name: Discover Typos - runs-on: macOS-13 + runs-on: macos-15 env: - DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_16.4.app/Contents/Developer steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 + + - name: Set up Python environment + run: | + python3 -m venv .venv + source .venv/bin/activate + pip install --upgrade pip + pip install codespell + - name: Discover typos run: | - export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.11/bin" - python3 -m pip install --upgrade pip - python3 -m pip install codespell + source .venv/bin/activate codespell --ignore-words-list="hart,inout,msdos,sur" --skip="./.build/*,./.git/*" \ No newline at end of file diff --git a/.swiftlint.yml b/.swiftlint.yml index 63081f1..f63618f 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -1,10 +1,10 @@ excluded: - Tests - Package.swift - - Package@swift-5.7.swift - - Package@swift-5.8.swift - - Package@swift-5.9.swift - Package@swift-5.10.swift + - Package@swift-6.0.swift + - Package@swift-6.1.swift + - Package@swift-6.2.swift - .build # Rules diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dfe94e..8349491 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,17 @@ All notable changes to this project will be documented in this file. #### 1.x Releases +- `1.3.x` Releases - [1.3.0](#130) - `1.2.x` Releases - [1.2.0](#120) | [1.2.1](#121) - `1.1.x` Releases - [1.1.0](#110) | [1.1.1](#111) - `1.0.x` Releases - [1.0.0](#100) +## [1.3.0](https://github.com/space-code/typhoon/releases/tag/1.2.1) + +#### Added +- Add support for Swift 6.2 + - Added in Pull Request [#21](https://github.com/space-code/typhoon/pull/21) + ## [1.2.1](https://github.com/space-code/typhoon/releases/tag/1.2.1) #### Added diff --git a/Mintfile b/Mintfile index e2cdefa..4ca9786 100644 --- a/Mintfile +++ b/Mintfile @@ -1,2 +1,2 @@ -nicklockwood/SwiftFormat@0.52.7 -realm/SwiftLint@0.53.0 \ No newline at end of file +nicklockwood/SwiftFormat@0.58.6 +realm/SwiftLint@0.62.2 \ No newline at end of file diff --git a/Package.swift b/Package.swift index 5127c68..60780cc 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 6.0 +// swift-tools-version: 6.2 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription diff --git a/Package@swift-5.8.swift b/Package@swift-5.8.swift deleted file mode 100644 index 48853a4..0000000 --- a/Package@swift-5.8.swift +++ /dev/null @@ -1,22 +0,0 @@ -// swift-tools-version: 5.8 -// The swift-tools-version declares the minimum version of Swift required to build this package. - -import PackageDescription - -let package = Package( - name: "Typhoon", - platforms: [ - .iOS(.v13), - .macOS(.v10_15), - .tvOS(.v13), - .watchOS(.v6), - ], - products: [ - .library(name: "Typhoon", targets: ["Typhoon"]), - ], - dependencies: [], - targets: [ - .target(name: "Typhoon", dependencies: []), - .testTarget(name: "TyphoonTests", dependencies: ["Typhoon"]), - ] -) diff --git a/Package@swift-5.9.swift b/Package@swift-6.0.swift similarity index 95% rename from Package@swift-5.9.swift rename to Package@swift-6.0.swift index 44ca8ab..5127c68 100644 --- a/Package@swift-5.9.swift +++ b/Package@swift-6.0.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 5.9 +// swift-tools-version: 6.0 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription diff --git a/Package@swift-5.7.swift b/Package@swift-6.1.swift similarity index 91% rename from Package@swift-5.7.swift rename to Package@swift-6.1.swift index d50fa8a..95519f6 100644 --- a/Package@swift-5.7.swift +++ b/Package@swift-6.1.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 5.7 +// swift-tools-version: 6.1 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription @@ -10,6 +10,7 @@ let package = Package( .macOS(.v10_15), .tvOS(.v13), .watchOS(.v6), + .visionOS(.v1), ], products: [ .library(name: "Typhoon", targets: ["Typhoon"]), diff --git a/README.md b/README.md index 876f3fe..5bc9d39 100644 --- a/README.md +++ b/README.md @@ -56,8 +56,8 @@ do { ## Requirements - iOS 13.0+ / macOS 10.15+ / tvOS 13.0+ / watchOS 6.0+ / visionOS 1.0+ -- Xcode 14.0 -- Swift 5.7 +- Xcode 15.3 +- Swift 5.10 ## Installation ### Swift Package Manager @@ -68,7 +68,7 @@ Once you have your Swift package set up, adding `typhoon` as a dependency is as ```swift dependencies: [ - .package(url: "https://github.com/space-code/typhoon.git", .upToNextMajor(from: "1.0.0")) + .package(url: "https://github.com/space-code/typhoon.git", .upToNextMajor(from: "1.3.0")) ] ```