From e91adcd490e0b71b9712ddcbae6ddd95874b6c2c Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Sun, 16 Nov 2025 20:09:17 +0400 Subject: [PATCH 1/4] Add support for Swift 6.2 (#21) * Update `Mintfile` * Update `.swiftlint.yml` * Update `Package.swift` * Update `ci.yml` * Update `CHANGELOG.md` * Update `README.md` --- .github/workflows/ci.yml | 123 ++++++++---------- .swiftlint.yml | 6 +- CHANGELOG.md | 7 + Mintfile | 4 +- Package.swift | 2 +- Package@swift-5.8.swift | 22 ---- ...swift-5.9.swift => Package@swift-6.0.swift | 2 +- ...swift-5.7.swift => Package@swift-6.1.swift | 3 +- README.md | 6 +- 9 files changed, 72 insertions(+), 103 deletions(-) delete mode 100644 Package@swift-5.8.swift rename Package@swift-5.9.swift => Package@swift-6.0.swift (95%) rename Package@swift-5.7.swift => Package@swift-6.1.swift (91%) 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")) ] ``` From cc608839e31cd5586bc5b4a3fba1650702fcace7 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Sun, 16 Nov 2025 20:14:05 +0400 Subject: [PATCH 2/4] Add `dependabot.yml` (#22) * Add `dependabot.yml` * Update `CHANGELOG.md` --- .github/dependabot.yml | 30 ++++++++++++++++++++++++++++++ CHANGELOG.md | 2 ++ 2 files changed, 32 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..0bda337 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,30 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + open-pull-requests-limit: 10 + schedule: + interval: daily + time: '07:00' + timezone: Europe/Berlin + assignees: + - ns-vasilev + reviewers: + - ns-vasilev + + - package-ecosystem: swift + directory: / + open-pull-requests-limit: 10 + schedule: + interval: daily + time: '07:00' + timezone: Europe/Berlin + assignees: + - ns-vasilev + reviewers: + - ns-vasilev \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 8349491..6cb570e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ All notable changes to this project will be documented in this file. #### Added - Add support for Swift 6.2 - Added in Pull Request [#21](https://github.com/space-code/typhoon/pull/21) +- Add `dependabot.yml` + - Added in Pull Request [#22](https://github.com/space-code/typhoon/pull/22) ## [1.2.1](https://github.com/space-code/typhoon/releases/tag/1.2.1) From 1b647286eeb2383f15187acabdf80f59adcf8057 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Nov 2025 20:16:46 +0400 Subject: [PATCH 3/4] Bump actions/checkout from 2 to 5 (#23) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 12 ++++++------ .github/workflows/danger.yml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c11e7cf..772bff4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: SwiftLint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - name: GitHub Action for SwiftLint uses: norio-nomura/action-swiftlint@3.2.1 with: @@ -44,7 +44,7 @@ jobs: runsOn: macOS-14 name: "macOS 14, Xcode 15.4, Swift 5.10" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - name: ${{ matrix.name }} run: xcodebuild test -scheme "Typhoon" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload test coverage reports to Codecov @@ -77,7 +77,7 @@ jobs: xcode: "Xcode_15.3" runsOn: macos-14 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - name: ${{ matrix.name }} run: xcodebuild test -scheme "Typhoon" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload test coverage reports to Codecov @@ -110,7 +110,7 @@ jobs: xcode: "Xcode_15.3" runsOn: macos-14 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - name: ${{ matrix.name }} run: xcodebuild test -scheme "Typhoon" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload test coverage reports to Codecov @@ -147,7 +147,7 @@ jobs: xcode: "Xcode_15.3" runsOn: macos-14 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - name: ${{ matrix.name }} run: xcodebuild test -scheme "Typhoon" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload test coverage reports to Codecov @@ -180,7 +180,7 @@ jobs: xcode: "Xcode_15.3" runsOn: macos-14 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - name: ${{ matrix.name }} run: swift build -c release diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml index 3f63d38..1031d13 100644 --- a/.github/workflows/danger.yml +++ b/.github/workflows/danger.yml @@ -18,7 +18,7 @@ jobs: ruby-version: 3.1.4 bundler-cache: true - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v5 - name: Setup gems run: | gem install bundler From a4553d5e87981a2ffb4a9fe41c25dba4d9aafad6 Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Sun, 16 Nov 2025 20:31:13 +0400 Subject: [PATCH 4/4] Update `CHANGELOG.md` (#25) --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6cb570e..84a256a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file. - `1.0.x` Releases - [1.0.0](#100) ## [1.3.0](https://github.com/space-code/typhoon/releases/tag/1.2.1) +Released on 2025-11-16. #### Added - Add support for Swift 6.2 @@ -16,18 +17,21 @@ All notable changes to this project will be documented in this file. - Added in Pull Request [#22](https://github.com/space-code/typhoon/pull/22) ## [1.2.1](https://github.com/space-code/typhoon/releases/tag/1.2.1) +Released on 2024-12-24. #### Added - Mark the closures as @Sendable. - Added in Pull Request [#18](https://github.com/space-code/typhoon/pull/18) ## [1.2.0](https://github.com/space-code/typhoon/releases/tag/1.2.0) +Released on 2024-12-23. #### Added - Increase the Swift version to 6.0. - Added in Pull Request [#15](https://github.com/space-code/typhoon/pull/15) ## [1.1.1](https://github.com/space-code/typhoon/releases/tag/1.1.1) +Released on 2024-05-11. #### Added - Add the `upload_test_coverage_report` action