diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b7dca26..f5c509e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,21 +19,13 @@ jobs: strategy: matrix: xcode: - - "26.2" - - "26.4" + - "26.5" steps: - uses: actions/checkout@v5 - name: Select Xcode ${{ matrix.xcode }} run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app - name: Print Swift version run: swift --version - - name: Install Simulator Runtimes - if: matrix.xcode != '26.2' - uses: nick-fields/retry@v3 - with: - timeout_minutes: 15 - max_attempts: 3 - command: xcodebuild -downloadAllPlatforms - name: Run ${{ matrix.config }} tests run: CONFIG=${{ matrix.config }} make test-all @@ -44,10 +36,10 @@ jobs: matrix: config: ["debug", "release"] swift: - - "6.0" + - "6.3" container: swift:${{ matrix.swift }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Run tests run: swift test -c ${{ matrix.config }} @@ -55,7 +47,7 @@ jobs: name: Wasm runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: bytecodealliance/actions/wasmtime/setup@v1 - name: Install Swift and Swift SDK for WebAssembly run: | diff --git a/Package.resolved b/Package.resolved index fffdf8d..fc60197 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,13 +1,13 @@ { - "originHash" : "ed7ab9572c69a3dc124037a3b24680f7164dd032be3ba0cf3451ff4f654deccd", + "originHash" : "7dea21d8cce7027c9dcef7b962be55bc163c79be3e43fefa51d201d8d6dce177", "pins" : [ { "identity" : "swift-concurrency-extras", "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-concurrency-extras", "state" : { - "revision" : "5a3825302b1a0d744183200915a47b508c828e6f", - "version" : "1.3.2" + "revision" : "a90e2e40a7a840a853dd29e57cbef5dbb72c9d5b", + "version" : "1.4.0" } }, { @@ -15,8 +15,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-docc-plugin", "state" : { - "revision" : "e977f65879f82b375a044c8837597f690c067da6", - "version" : "1.4.6" + "revision" : "647c708be89f834fa6a6d4945442793a77ddf5b6", + "version" : "1.5.0" } }, { @@ -29,12 +29,12 @@ } }, { - "identity" : "xctest-dynamic-overlay", + "identity" : "swift-issue-reporting", "kind" : "remoteSourceControl", - "location" : "https://github.com/pointfreeco/xctest-dynamic-overlay", + "location" : "https://github.com/pointfreeco/swift-issue-reporting", "state" : { - "revision" : "dfd70507def84cb5fb821278448a262c6ff2bbad", - "version" : "1.9.0" + "revision" : "71c7c9a761d1ca6ed4ccb6ced040fe1c1a39e8e7", + "version" : "2.1.0" } } ], diff --git a/Package.swift b/Package.swift index 412e6f1..3a49115 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 6.0 +// swift-tools-version: 6.4 import PackageDescription @@ -8,10 +8,10 @@ let package = Package( // so that depending libraries and applications can conditionally use the library via // availability checks. platforms: [ - .iOS(.v13), - .macOS(.v10_15), - .tvOS(.v13), - .watchOS(.v6), + .iOS(.v15), + .macOS(.v12), + .tvOS(.v15), + .watchOS(.v9), ], products: [ .library( @@ -22,14 +22,14 @@ let package = Package( dependencies: [ .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"), .package(url: "https://github.com/pointfreeco/swift-concurrency-extras", from: "1.0.0"), - .package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay", from: "1.2.2"), + .package(url: "https://github.com/pointfreeco/swift-issue-reporting", from: "2.1.0"), ], targets: [ .target( name: "Clocks", dependencies: [ .product(name: "ConcurrencyExtras", package: "swift-concurrency-extras"), - .product(name: "IssueReporting", package: "xctest-dynamic-overlay"), + .product(name: "IssueReporting", package: "swift-issue-reporting"), ] ), .testTarget( diff --git a/Package@swift-6.0.swift b/Package@swift-6.0.swift new file mode 100644 index 0000000..1f96df7 --- /dev/null +++ b/Package@swift-6.0.swift @@ -0,0 +1,55 @@ +// swift-tools-version: 6.0 + +import PackageDescription + +let package = Package( + name: "swift-clocks", + // NB: While the `Clock` protocol is iOS 16+, etc., the package should support earlier platforms + // so that depending libraries and applications can conditionally use the library via + // availability checks. + platforms: [ + .iOS(.v13), + .macOS(.v10_15), + .tvOS(.v13), + .watchOS(.v6), + ], + products: [ + .library( + name: "Clocks", + targets: ["Clocks"] + ) + ], + dependencies: [ + .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"), + .package(url: "https://github.com/pointfreeco/swift-concurrency-extras", from: "1.0.0"), + .package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay", from: "1.13.0"), + ], + targets: [ + .target( + name: "Clocks", + dependencies: [ + .product(name: "ConcurrencyExtras", package: "swift-concurrency-extras"), + .product(name: "IssueReporting", package: "xctest-dynamic-overlay"), + ] + ), + .testTarget( + name: "ClocksTests", + dependencies: [ + "Clocks" + ] + ), + ], + swiftLanguageModes: [.v6] +) + +for target in package.targets { + target.swiftSettings = target.swiftSettings ?? [] + target.swiftSettings?.append(contentsOf: [ + .enableUpcomingFeature("ExistentialAny"), + .enableUpcomingFeature("ImmutableWeakCaptures"), + .enableUpcomingFeature("InferIsolatedConformances"), + .enableUpcomingFeature("InternalImportsByDefault"), + .enableUpcomingFeature("MemberImportVisibility"), + .enableUpcomingFeature("NonisolatedNonsendingByDefault"), + ]) +}