From 4dd5b93f6c81102386a302024d8cfa167e225985 Mon Sep 17 00:00:00 2001 From: Paul Toffoloni Date: Tue, 2 Dec 2025 17:30:12 +0100 Subject: [PATCH 1/8] Update to Swift 6 --- Package.swift | 17 ++++++++--------- README.md | 2 +- Sources/SQLKit/Utilities/SomeCodingKey.swift | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Package.swift b/Package.swift index 0812b450..3331de4e 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.10 +// swift-tools-version:6.0 import PackageDescription let package = Package( @@ -31,7 +31,7 @@ let package = Package( .target( name: "SQLKitBenchmark", dependencies: [ - .target(name: "SQLKit"), + .target(name: "SQLKit") ], swiftSettings: swiftSettings ), @@ -46,10 +46,9 @@ let package = Package( ] ) -var swiftSettings: [SwiftSetting] { [ - .enableUpcomingFeature("ExistentialAny"), - .enableUpcomingFeature("ConciseMagicFile"), - .enableUpcomingFeature("ForwardTrailingClosures"), - .enableUpcomingFeature("DisableOutwardActorInference"), - .enableExperimentalFeature("StrictConcurrency=complete"), -] } +var swiftSettings: [SwiftSetting] { + [ + .enableUpcomingFeature("ExistentialAny"), + .enableExperimentalFeature("StrictConcurrency=complete"), + ] +} diff --git a/README.md b/README.md index 76c8187e..f9f54876 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ MIT License Continuous Integration -Swift 5.10+ +Swift 6.0+


diff --git a/Sources/SQLKit/Utilities/SomeCodingKey.swift b/Sources/SQLKit/Utilities/SomeCodingKey.swift index 2865d696..7975182e 100644 --- a/Sources/SQLKit/Utilities/SomeCodingKey.swift +++ b/Sources/SQLKit/Utilities/SomeCodingKey.swift @@ -9,7 +9,7 @@ /// /// ![Quotation](codingkey-quotation) /// -/// [`_DictionaryCodingKey`]: https://github.com/apple/swift/blob/swift-5.10-RELEASE/stdlib/public/core/Codable.swift#L5509 +/// [`_DictionaryCodingKey`]: https://github.com/apple/swift/blob/swift-6.0-RELEASE/stdlib/public/core/Codable.swift#L5509 /// [`CodingKeyRepresentable`]: https://developer.apple.com/documentation/swift/codingkeyrepresentable public struct SomeCodingKey: CodingKey, Hashable, Sendable { // See `CodingKey.stringValue`. From eaf1c02f8d245b003a01ba319fb81ce4365aa98a Mon Sep 17 00:00:00 2001 From: Paul Toffoloni Date: Tue, 2 Dec 2025 17:51:12 +0100 Subject: [PATCH 2/8] Add missing flags --- Package.swift | 8 ++++++-- Sources/SQLKitBenchmark/SQLBenchmarker.swift | 2 ++ Tests/SQLKitTests/AsyncTests.swift | 2 ++ Tests/SQLKitTests/SQLCodingTests.swift | 1 + Tests/SQLKitTests/SQLRowDecoderTests.swift | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 3331de4e..c73a0069 100644 --- a/Package.swift +++ b/Package.swift @@ -48,7 +48,11 @@ let package = Package( var swiftSettings: [SwiftSetting] { [ - .enableUpcomingFeature("ExistentialAny"), - .enableExperimentalFeature("StrictConcurrency=complete"), + //.enableUpcomingFeature("ExistentialAny"), + //.enableUpcomingFeature("InternalImportsByDefault"), + .enableUpcomingFeature("MemberImportVisibility"), + .enableUpcomingFeature("InferIsolatedConformances"), + //.enableUpcomingFeature("NonisolatedNonsendingByDefault"), + .enableUpcomingFeature("ImmutableWeakCaptures"), ] } diff --git a/Sources/SQLKitBenchmark/SQLBenchmarker.swift b/Sources/SQLKitBenchmark/SQLBenchmarker.swift index 5f999561..63a32d16 100644 --- a/Sources/SQLKitBenchmark/SQLBenchmarker.swift +++ b/Sources/SQLKitBenchmark/SQLBenchmarker.swift @@ -1,5 +1,7 @@ import SQLKit import XCTest +import NIOCore +import Logging public final class SQLBenchmarker: Sendable { let database: any SQLDatabase diff --git a/Tests/SQLKitTests/AsyncTests.swift b/Tests/SQLKitTests/AsyncTests.swift index e52f92f3..3e8be8d1 100644 --- a/Tests/SQLKitTests/AsyncTests.swift +++ b/Tests/SQLKitTests/AsyncTests.swift @@ -1,5 +1,7 @@ import SQLKit import XCTest +import NIOCore +import OrderedCollections final class AsyncSQLKitTests: XCTestCase { var db = TestDatabase() diff --git a/Tests/SQLKitTests/SQLCodingTests.swift b/Tests/SQLKitTests/SQLCodingTests.swift index 1058d149..36d638d5 100644 --- a/Tests/SQLKitTests/SQLCodingTests.swift +++ b/Tests/SQLKitTests/SQLCodingTests.swift @@ -1,5 +1,6 @@ @testable @_spi(CodableUtilities) import SQLKit import XCTest +import OrderedCollections final class SQLCodingTests: XCTestCase { var db = TestDatabase() diff --git a/Tests/SQLKitTests/SQLRowDecoderTests.swift b/Tests/SQLKitTests/SQLRowDecoderTests.swift index 55ed7a82..50b55ae4 100644 --- a/Tests/SQLKitTests/SQLRowDecoderTests.swift +++ b/Tests/SQLKitTests/SQLRowDecoderTests.swift @@ -1,5 +1,6 @@ @testable @_spi(CodableUtilities) import SQLKit import XCTest +import OrderedCollections final class SQLRowDecoderTests: XCTestCase { func testRowDecoderBasicConfigurations() { From cf9f11cf21023c50cbbb006eb2945d24d31f4ea6 Mon Sep 17 00:00:00 2001 From: Gwynne Raskind Date: Tue, 2 Dec 2025 11:00:11 -0600 Subject: [PATCH 3/8] Update api-docs.yml --- .github/workflows/api-docs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/api-docs.yml b/.github/workflows/api-docs.yml index 652112e8..9fedefdc 100644 --- a/.github/workflows/api-docs.yml +++ b/.github/workflows/api-docs.yml @@ -3,6 +3,9 @@ on: push: branches: - main +permissions: + contents: read + id-token: write jobs: build-and-deploy: From d6c4db01a6f1514bdab2e187da1d83a0c11d14df Mon Sep 17 00:00:00 2001 From: Gwynne Raskind Date: Tue, 2 Dec 2025 11:00:56 -0600 Subject: [PATCH 4/8] Update test.yml --- .github/workflows/test.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e3cc1e5d..334a2f5c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,8 @@ on: push: { branches: [ main ] } env: LOG_LEVEL: info - SWIFT_DETERMINISTIC_HASHING: 1 +permissions: + contents: read jobs: unit-tests: @@ -20,7 +21,7 @@ jobs: pure-fluent-integration-test: if: ${{ !(github.event.pull_request.draft || false) }} runs-on: ubuntu-latest - container: swift:6.1-noble + container: swift:6.2-noble steps: - name: Check out sql-kit uses: actions/checkout@v6 @@ -51,7 +52,7 @@ jobs: strategy: fail-fast: false matrix: - swift-image: ['swift:6.1-noble'] + swift-image: ['swift:6.2-noble'] driver: - { sqlkit: 'sqlite-kit', fluent: 'fluent-sqlite-driver' } - { sqlkit: 'mysql-kit', fluent: 'fluent-mysql-driver' } From 79057d627e58142dbd9f7969114cef7060f8cec8 Mon Sep 17 00:00:00 2001 From: Paul Toffoloni Date: Tue, 2 Dec 2025 18:15:59 +0100 Subject: [PATCH 5/8] Address reviews --- Package.swift | 20 +++++++++----------- README.md | 2 +- Sources/SQLKit/Utilities/SomeCodingKey.swift | 2 +- Sources/SQLKitBenchmark/SQLBenchmarker.swift | 4 ++-- Tests/SQLKitTests/AsyncTests.swift | 4 ++-- 5 files changed, 15 insertions(+), 17 deletions(-) diff --git a/Package.swift b/Package.swift index c73a0069..118ad015 100644 --- a/Package.swift +++ b/Package.swift @@ -31,7 +31,7 @@ let package = Package( .target( name: "SQLKitBenchmark", dependencies: [ - .target(name: "SQLKit") + .target(name: "SQLKit"), ], swiftSettings: swiftSettings ), @@ -46,13 +46,11 @@ let package = Package( ] ) -var swiftSettings: [SwiftSetting] { - [ - //.enableUpcomingFeature("ExistentialAny"), - //.enableUpcomingFeature("InternalImportsByDefault"), - .enableUpcomingFeature("MemberImportVisibility"), - .enableUpcomingFeature("InferIsolatedConformances"), - //.enableUpcomingFeature("NonisolatedNonsendingByDefault"), - .enableUpcomingFeature("ImmutableWeakCaptures"), - ] -} +var swiftSettings: [SwiftSetting] { [ + .enableUpcomingFeature("ExistentialAny"), + // .enableUpcomingFeature("InternalImportsByDefault"), + .enableUpcomingFeature("MemberImportVisibility"), + .enableUpcomingFeature("InferIsolatedConformances"), + .enableUpcomingFeature("NonisolatedNonsendingByDefault"), + .enableUpcomingFeature("ImmutableWeakCaptures"), +] } diff --git a/README.md b/README.md index f9f54876..9d994894 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Team Chat MIT License Continuous Integration - +Code Coverage Swift 6.0+

diff --git a/Sources/SQLKit/Utilities/SomeCodingKey.swift b/Sources/SQLKit/Utilities/SomeCodingKey.swift index 7975182e..c87b4708 100644 --- a/Sources/SQLKit/Utilities/SomeCodingKey.swift +++ b/Sources/SQLKit/Utilities/SomeCodingKey.swift @@ -9,7 +9,7 @@ /// /// ![Quotation](codingkey-quotation) /// -/// [`_DictionaryCodingKey`]: https://github.com/apple/swift/blob/swift-6.0-RELEASE/stdlib/public/core/Codable.swift#L5509 +/// [`_DictionaryCodingKey`]: https://github.com/swiftlang/swift/blob/swift-6.0-RELEASE/stdlib/public/core/Codable.swift#L6124 /// [`CodingKeyRepresentable`]: https://developer.apple.com/documentation/swift/codingkeyrepresentable public struct SomeCodingKey: CodingKey, Hashable, Sendable { // See `CodingKey.stringValue`. diff --git a/Sources/SQLKitBenchmark/SQLBenchmarker.swift b/Sources/SQLKitBenchmark/SQLBenchmarker.swift index 63a32d16..aa01fd5f 100644 --- a/Sources/SQLKitBenchmark/SQLBenchmarker.swift +++ b/Sources/SQLKitBenchmark/SQLBenchmarker.swift @@ -1,7 +1,7 @@ +import Logging +import NIOCore import SQLKit import XCTest -import NIOCore -import Logging public final class SQLBenchmarker: Sendable { let database: any SQLDatabase diff --git a/Tests/SQLKitTests/AsyncTests.swift b/Tests/SQLKitTests/AsyncTests.swift index 3e8be8d1..4837e41a 100644 --- a/Tests/SQLKitTests/AsyncTests.swift +++ b/Tests/SQLKitTests/AsyncTests.swift @@ -1,7 +1,7 @@ -import SQLKit -import XCTest import NIOCore import OrderedCollections +import SQLKit +import XCTest final class AsyncSQLKitTests: XCTestCase { var db = TestDatabase() From 44f8f5fc4b9a40b78b4e608285d88cb6daa27c13 Mon Sep 17 00:00:00 2001 From: Paul Toffoloni Date: Tue, 2 Dec 2025 18:17:18 +0100 Subject: [PATCH 6/8] Nits --- Tests/SQLKitTests/SQLCodingTests.swift | 2 +- Tests/SQLKitTests/SQLRowDecoderTests.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/SQLKitTests/SQLCodingTests.swift b/Tests/SQLKitTests/SQLCodingTests.swift index 36d638d5..d9de8252 100644 --- a/Tests/SQLKitTests/SQLCodingTests.swift +++ b/Tests/SQLKitTests/SQLCodingTests.swift @@ -1,6 +1,6 @@ +import OrderedCollections @testable @_spi(CodableUtilities) import SQLKit import XCTest -import OrderedCollections final class SQLCodingTests: XCTestCase { var db = TestDatabase() diff --git a/Tests/SQLKitTests/SQLRowDecoderTests.swift b/Tests/SQLKitTests/SQLRowDecoderTests.swift index 50b55ae4..df1fdc99 100644 --- a/Tests/SQLKitTests/SQLRowDecoderTests.swift +++ b/Tests/SQLKitTests/SQLRowDecoderTests.swift @@ -1,6 +1,6 @@ +import OrderedCollections @testable @_spi(CodableUtilities) import SQLKit import XCTest -import OrderedCollections final class SQLRowDecoderTests: XCTestCase { func testRowDecoderBasicConfigurations() { From 404f516c45a6629ed90b374657caa1935f6a7686 Mon Sep 17 00:00:00 2001 From: Paul Toffoloni Date: Tue, 2 Dec 2025 18:37:10 +0100 Subject: [PATCH 7/8] Comment out breaking option --- Package.swift | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Package.swift b/Package.swift index 118ad015..206fae91 100644 --- a/Package.swift +++ b/Package.swift @@ -31,7 +31,7 @@ let package = Package( .target( name: "SQLKitBenchmark", dependencies: [ - .target(name: "SQLKit"), + .target(name: "SQLKit") ], swiftSettings: swiftSettings ), @@ -46,11 +46,13 @@ let package = Package( ] ) -var swiftSettings: [SwiftSetting] { [ - .enableUpcomingFeature("ExistentialAny"), - // .enableUpcomingFeature("InternalImportsByDefault"), - .enableUpcomingFeature("MemberImportVisibility"), - .enableUpcomingFeature("InferIsolatedConformances"), - .enableUpcomingFeature("NonisolatedNonsendingByDefault"), - .enableUpcomingFeature("ImmutableWeakCaptures"), -] } +var swiftSettings: [SwiftSetting] { + [ + .enableUpcomingFeature("ExistentialAny"), + // .enableUpcomingFeature("InternalImportsByDefault"), + .enableUpcomingFeature("MemberImportVisibility"), + .enableUpcomingFeature("InferIsolatedConformances"), + // .enableUpcomingFeature("NonisolatedNonsendingByDefault"), + .enableUpcomingFeature("ImmutableWeakCaptures"), + ] +} From 63e2616e714ab9359033be14e8915d77e0faa4d8 Mon Sep 17 00:00:00 2001 From: Gwynne Raskind Date: Thu, 11 Dec 2025 07:29:54 -0600 Subject: [PATCH 8/8] Update Package.swift --- Package.swift | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/Package.swift b/Package.swift index 206fae91..661348ec 100644 --- a/Package.swift +++ b/Package.swift @@ -31,7 +31,7 @@ let package = Package( .target( name: "SQLKitBenchmark", dependencies: [ - .target(name: "SQLKit") + .target(name: "SQLKit"), ], swiftSettings: swiftSettings ), @@ -46,13 +46,11 @@ let package = Package( ] ) -var swiftSettings: [SwiftSetting] { - [ - .enableUpcomingFeature("ExistentialAny"), - // .enableUpcomingFeature("InternalImportsByDefault"), - .enableUpcomingFeature("MemberImportVisibility"), - .enableUpcomingFeature("InferIsolatedConformances"), - // .enableUpcomingFeature("NonisolatedNonsendingByDefault"), - .enableUpcomingFeature("ImmutableWeakCaptures"), - ] -} +var swiftSettings: [SwiftSetting] { [ + .enableUpcomingFeature("ExistentialAny"), + // .enableUpcomingFeature("InternalImportsByDefault"), + .enableUpcomingFeature("MemberImportVisibility"), + .enableUpcomingFeature("InferIsolatedConformances"), + // .enableUpcomingFeature("NonisolatedNonsendingByDefault"), + .enableUpcomingFeature("ImmutableWeakCaptures"), +] }