Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -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
135 changes: 59 additions & 76 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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/*"
2 changes: 1 addition & 1 deletion .github/workflows/danger.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 3 additions & 3 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
@@ -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
Expand Down
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions Mintfile
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
nicklockwood/SwiftFormat@0.52.7
realm/SwiftLint@0.53.0
nicklockwood/SwiftFormat@0.58.6
realm/SwiftLint@0.62.2
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
@@ -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
Expand Down
22 changes: 0 additions & 22 deletions Package@swift-5.8.swift

This file was deleted.

2 changes: 1 addition & 1 deletion Package@swift-5.9.swift → Package@swift-6.0.swift
Original file line number Diff line number Diff line change
@@ -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
Expand Down
3 changes: 2 additions & 1 deletion Package@swift-5.7.swift → Package@swift-6.1.swift
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -10,6 +10,7 @@ let package = Package(
.macOS(.v10_15),
.tvOS(.v13),
.watchOS(.v6),
.visionOS(.v1),
],
products: [
.library(name: "Typhoon", targets: ["Typhoon"]),
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"))
]
```

Expand Down
Loading