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/.github/workflows/ci.yml b/.github/workflows/ci.yml index e7c990c..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: @@ -34,20 +34,17 @@ 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 + - 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 @@ -67,28 +64,20 @@ 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 + - 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 @@ -108,28 +97,20 @@ 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 + - 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 @@ -149,28 +130,24 @@ 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 + - 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 @@ -190,48 +167,54 @@ 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 + - uses: actions/checkout@v5 - name: ${{ matrix.name }} run: swift build -c release 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/.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 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..84a256a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,23 +2,36 @@ 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) +Released on 2025-11-16. + +#### 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) +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 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")) ] ```