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 @@
-
+
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 @@
///
/// 
///
-/// [`_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 @@
-
+
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 @@
///
/// 
///
-/// [`_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"),
+] }