Build Information
Successful build of SQift, reference master (3014ab), with Swift 6.1 for macOS (SPM) on 11 Aug 2026 07:29:20 UTC.
Swift 6 data race errors: 2
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/nike-inc/SQift.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/nike-inc/SQift
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 3014ab4 Minor correction in README.md (#43)
Cloned https://github.com/nike-inc/SQift.git
Revision (git rev-parse @):
3014ab40dac372337e2bdb336a3472dc36221f41
SUCCESS checkout https://github.com/nike-inc/SQift.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/nike-inc/SQift.git
https://github.com/nike-inc/SQift.git
{
"dependencies" : [
],
"manifest_display_name" : "SQift",
"name" : "SQift",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "7.0"
}
],
"products" : [
{
"name" : "SQift",
"targets" : [
"SQift"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SQiftTests",
"module_type" : "SwiftTarget",
"name" : "SQiftTests",
"path" : "Tests",
"sources" : [
"Extensions/DispatchQueueExtension.swift",
"Extensions/FileManagerExtension.swift",
"Extensions/ProcessInfoExtension.swift",
"Helpers/TestTables.swift",
"Tests/BaseTestCase.swift",
"Tests/Connection/ConnectionPoolTests.swift",
"Tests/Connection/ConnectionQueueTests.swift",
"Tests/Connection/ConnectionTests.swift",
"Tests/Connection/Functions/AuthorizerTests.swift",
"Tests/Connection/Functions/BackupTests.swift",
"Tests/Connection/Functions/BusyTests.swift",
"Tests/Connection/Functions/CheckpointTests.swift",
"Tests/Connection/Functions/CollationTests.swift",
"Tests/Connection/Functions/FunctionTests.swift",
"Tests/Connection/Functions/HookTests.swift",
"Tests/Connection/Functions/QueryTests.swift",
"Tests/Connection/Functions/TraceTests.swift",
"Tests/Connection/Functions/TransactionTests.swift",
"Tests/Connection/StatementTests.swift",
"Tests/Database/DatabaseTests.swift",
"Tests/Database/MigratorTests.swift",
"Tests/Database/TableLockPolicyTests.swift",
"Tests/Errors/ExpressibleByRowErrorTests.swift",
"Tests/Errors/SQLiteErrorTests.swift",
"Tests/Extensions/StringExtensionTests.swift",
"Tests/Rows/BindingTests.swift",
"Tests/Rows/RowTests.swift"
],
"target_dependencies" : [
"SQift"
],
"type" : "test"
},
{
"c99name" : "SQift",
"module_type" : "SwiftTarget",
"name" : "SQift",
"path" : "Source",
"product_memberships" : [
"SQift"
],
"sources" : [
"Connection/Connection.swift",
"Connection/ConnectionPool.swift",
"Connection/ConnectionQueue.swift",
"Connection/Functions/Authorizer.swift",
"Connection/Functions/Backup.swift",
"Connection/Functions/Busy.swift",
"Connection/Functions/Checkpoint.swift",
"Connection/Functions/Collation.swift",
"Connection/Functions/Function.swift",
"Connection/Functions/Hook.swift",
"Connection/Functions/Query.swift",
"Connection/Functions/Trace.swift",
"Connection/Functions/Transaction.swift",
"Connection/Statement.swift",
"Database/Database.swift",
"Database/Migrator.swift",
"Database/StorageLocation.swift",
"Database/TableLockPolicy.swift",
"Errors/ExpressibleByRowError.swift",
"Errors/SQLiteError.swift",
"Extensions/StringExtension.swift",
"Row/Binding.swift",
"Row/Row.swift"
],
"type" : "library"
}
],
"tools_version" : "5.8"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/24] Compiling SQift TableLockPolicy.swift
/Users/admin/builder/spi-builder-workspace/Source/Errors/ExpressibleByRowError.swift:19:16: warning: stored property 'columns' of 'Sendable'-conforming struct 'ExpressibleByRowError' has non-sendable type '[Row.Column]'; this is an error in the Swift 6 language mode
17 |
18 | /// The columns of the row that produced the error.
19 | public let columns: [Row.Column]
| `- warning: stored property 'columns' of 'Sendable'-conforming struct 'ExpressibleByRowError' has non-sendable type '[Row.Column]'; this is an error in the Swift 6 language mode
20 |
21 | /// Creates an instance from the specified type and row.
/Users/admin/builder/spi-builder-workspace/Source/Row/Row.swift:21:19: note: consider making struct 'Column' conform to the 'Sendable' protocol
19 |
20 | /// The `Column` struct represents a column in a row returned by a database query.
21 | public struct Column: CustomStringConvertible {
| `- note: consider making struct 'Column' conform to the 'Sendable' protocol
22 | /// Represents the supported datatypes that can be stored in a column in SQLite.
23 | ///
[4/24] Compiling SQift ExpressibleByRowError.swift
/Users/admin/builder/spi-builder-workspace/Source/Errors/ExpressibleByRowError.swift:19:16: warning: stored property 'columns' of 'Sendable'-conforming struct 'ExpressibleByRowError' has non-sendable type '[Row.Column]'; this is an error in the Swift 6 language mode
17 |
18 | /// The columns of the row that produced the error.
19 | public let columns: [Row.Column]
| `- warning: stored property 'columns' of 'Sendable'-conforming struct 'ExpressibleByRowError' has non-sendable type '[Row.Column]'; this is an error in the Swift 6 language mode
20 |
21 | /// Creates an instance from the specified type and row.
/Users/admin/builder/spi-builder-workspace/Source/Row/Row.swift:21:19: note: consider making struct 'Column' conform to the 'Sendable' protocol
19 |
20 | /// The `Column` struct represents a column in a row returned by a database query.
21 | public struct Column: CustomStringConvertible {
| `- note: consider making struct 'Column' conform to the 'Sendable' protocol
22 | /// Represents the supported datatypes that can be stored in a column in SQLite.
23 | ///
[5/24] Compiling SQift Hook.swift
[6/24] Compiling SQift Query.swift
[7/24] Compiling SQift Migrator.swift
[8/24] Compiling SQift StorageLocation.swift
[9/26] Compiling SQift Checkpoint.swift
[10/26] Compiling SQift Collation.swift
[11/26] Compiling SQift Function.swift
[12/26] Compiling SQift SQLiteError.swift
[13/26] Compiling SQift StringExtension.swift
[14/26] Emitting module SQift
/Users/admin/builder/spi-builder-workspace/Source/Errors/ExpressibleByRowError.swift:19:16: warning: stored property 'columns' of 'Sendable'-conforming struct 'ExpressibleByRowError' has non-sendable type '[Row.Column]'; this is an error in the Swift 6 language mode
17 |
18 | /// The columns of the row that produced the error.
19 | public let columns: [Row.Column]
| `- warning: stored property 'columns' of 'Sendable'-conforming struct 'ExpressibleByRowError' has non-sendable type '[Row.Column]'; this is an error in the Swift 6 language mode
20 |
21 | /// Creates an instance from the specified type and row.
/Users/admin/builder/spi-builder-workspace/Source/Row/Row.swift:21:19: note: consider making struct 'Column' conform to the 'Sendable' protocol
19 |
20 | /// The `Column` struct represents a column in a row returned by a database query.
21 | public struct Column: CustomStringConvertible {
| `- note: consider making struct 'Column' conform to the 'Sendable' protocol
22 | /// Represents the supported datatypes that can be stored in a column in SQLite.
23 | ///
/Users/admin/builder/spi-builder-workspace/Source/Row/Binding.swift:321:12: warning: var 'bindingDateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
319 | ///
320 | /// For more information, please refer to the [documentation](https://www.sqlite.org/lang_datefunc.html).
321 | public var bindingDateFormatter: DateFormatter = {
| |- warning: var 'bindingDateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'bindingDateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'bindingDateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
322 | let formatter = DateFormatter()
323 | formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
[15/26] Compiling SQift Trace.swift
[16/26] Compiling SQift Transaction.swift
[17/26] Compiling SQift Authorizer.swift
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:92:49: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
90 | repeat {
91 | guard !progress.isCancelled else {
92 | completionQueue.async { completion(.cancelled) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
93 | sqlite3_backup_finish(backup) // cleanup and ignore result
94 | return
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:93:47: warning: capture of 'backup' with non-sendable type 'OpaquePointer' in a '@Sendable' closure
91 | guard !progress.isCancelled else {
92 | completionQueue.async { completion(.cancelled) }
93 | sqlite3_backup_finish(backup) // cleanup and ignore result
| `- warning: capture of 'backup' with non-sendable type 'OpaquePointer' in a '@Sendable' closure
94 | return
95 | }
Swift.OpaquePointer:1:23: note: struct 'OpaquePointer' does not conform to the 'Sendable' protocol
1 | @frozen public struct OpaquePointer {
| `- note: struct 'OpaquePointer' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:101:34: warning: capture of 'self' with non-sendable type 'Connection' in a '@Sendable' closure
99 | }
100 |
101 | result = try self.check(sqlite3_backup_step(backup, pageSize))
| `- warning: capture of 'self' with non-sendable type 'Connection' in a '@Sendable' closure
102 |
103 | let totalPageCount = Int64(sqlite3_backup_pagecount(backup))
/Users/admin/builder/spi-builder-workspace/Source/Connection/Connection.swift:21:14: note: class 'Connection' does not conform to the 'Sendable' protocol
19 | /// For more details about using multiple database connections to improve concurrency, please refer to the
20 | /// [documentation](https://www.sqlite.org/isolation.html).
21 | public class Connection {
| `- note: class 'Connection' does not conform to the 'Sendable' protocol
22 |
23 | // MARK: - Properties
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:92:49: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
90 | repeat {
91 | guard !progress.isCancelled else {
92 | completionQueue.async { completion(.cancelled) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
93 | sqlite3_backup_finish(backup) // cleanup and ignore result
94 | return
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:113:41: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
111 | try self.check(sqlite3_backup_finish(backup)) // cleanup but track result
112 |
113 | completionQueue.async { completion(.success) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
114 | } catch {
115 | sqlite3_backup_finish(backup) // cleanup and ignore result
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:117:41: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
115 | sqlite3_backup_finish(backup) // cleanup and ignore result
116 | progress.cancel()
117 | completionQueue.async { completion(.failure(error)) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
118 | }
119 | }
[18/26] Compiling SQift Backup.swift
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:92:49: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
90 | repeat {
91 | guard !progress.isCancelled else {
92 | completionQueue.async { completion(.cancelled) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
93 | sqlite3_backup_finish(backup) // cleanup and ignore result
94 | return
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:93:47: warning: capture of 'backup' with non-sendable type 'OpaquePointer' in a '@Sendable' closure
91 | guard !progress.isCancelled else {
92 | completionQueue.async { completion(.cancelled) }
93 | sqlite3_backup_finish(backup) // cleanup and ignore result
| `- warning: capture of 'backup' with non-sendable type 'OpaquePointer' in a '@Sendable' closure
94 | return
95 | }
Swift.OpaquePointer:1:23: note: struct 'OpaquePointer' does not conform to the 'Sendable' protocol
1 | @frozen public struct OpaquePointer {
| `- note: struct 'OpaquePointer' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:101:34: warning: capture of 'self' with non-sendable type 'Connection' in a '@Sendable' closure
99 | }
100 |
101 | result = try self.check(sqlite3_backup_step(backup, pageSize))
| `- warning: capture of 'self' with non-sendable type 'Connection' in a '@Sendable' closure
102 |
103 | let totalPageCount = Int64(sqlite3_backup_pagecount(backup))
/Users/admin/builder/spi-builder-workspace/Source/Connection/Connection.swift:21:14: note: class 'Connection' does not conform to the 'Sendable' protocol
19 | /// For more details about using multiple database connections to improve concurrency, please refer to the
20 | /// [documentation](https://www.sqlite.org/isolation.html).
21 | public class Connection {
| `- note: class 'Connection' does not conform to the 'Sendable' protocol
22 |
23 | // MARK: - Properties
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:92:49: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
90 | repeat {
91 | guard !progress.isCancelled else {
92 | completionQueue.async { completion(.cancelled) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
93 | sqlite3_backup_finish(backup) // cleanup and ignore result
94 | return
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:113:41: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
111 | try self.check(sqlite3_backup_finish(backup)) // cleanup but track result
112 |
113 | completionQueue.async { completion(.success) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
114 | } catch {
115 | sqlite3_backup_finish(backup) // cleanup and ignore result
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:117:41: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
115 | sqlite3_backup_finish(backup) // cleanup and ignore result
116 | progress.cancel()
117 | completionQueue.async { completion(.failure(error)) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
118 | }
119 | }
[19/26] Compiling SQift Busy.swift
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:92:49: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
90 | repeat {
91 | guard !progress.isCancelled else {
92 | completionQueue.async { completion(.cancelled) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
93 | sqlite3_backup_finish(backup) // cleanup and ignore result
94 | return
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:93:47: warning: capture of 'backup' with non-sendable type 'OpaquePointer' in a '@Sendable' closure
91 | guard !progress.isCancelled else {
92 | completionQueue.async { completion(.cancelled) }
93 | sqlite3_backup_finish(backup) // cleanup and ignore result
| `- warning: capture of 'backup' with non-sendable type 'OpaquePointer' in a '@Sendable' closure
94 | return
95 | }
Swift.OpaquePointer:1:23: note: struct 'OpaquePointer' does not conform to the 'Sendable' protocol
1 | @frozen public struct OpaquePointer {
| `- note: struct 'OpaquePointer' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:101:34: warning: capture of 'self' with non-sendable type 'Connection' in a '@Sendable' closure
99 | }
100 |
101 | result = try self.check(sqlite3_backup_step(backup, pageSize))
| `- warning: capture of 'self' with non-sendable type 'Connection' in a '@Sendable' closure
102 |
103 | let totalPageCount = Int64(sqlite3_backup_pagecount(backup))
/Users/admin/builder/spi-builder-workspace/Source/Connection/Connection.swift:21:14: note: class 'Connection' does not conform to the 'Sendable' protocol
19 | /// For more details about using multiple database connections to improve concurrency, please refer to the
20 | /// [documentation](https://www.sqlite.org/isolation.html).
21 | public class Connection {
| `- note: class 'Connection' does not conform to the 'Sendable' protocol
22 |
23 | // MARK: - Properties
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:92:49: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
90 | repeat {
91 | guard !progress.isCancelled else {
92 | completionQueue.async { completion(.cancelled) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
93 | sqlite3_backup_finish(backup) // cleanup and ignore result
94 | return
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:113:41: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
111 | try self.check(sqlite3_backup_finish(backup)) // cleanup but track result
112 |
113 | completionQueue.async { completion(.success) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
114 | } catch {
115 | sqlite3_backup_finish(backup) // cleanup and ignore result
/Users/admin/builder/spi-builder-workspace/Source/Connection/Functions/Backup.swift:117:41: warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
115 | sqlite3_backup_finish(backup) // cleanup and ignore result
116 | progress.cancel()
117 | completionQueue.async { completion(.failure(error)) }
| |- warning: capture of 'completion' with non-sendable type '(Connection.BackupResult) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
118 | }
119 | }
[20/26] Compiling SQift Statement.swift
[21/26] Compiling SQift Database.swift
[22/26] Compiling SQift Connection.swift
/Users/admin/builder/spi-builder-workspace/Source/Connection/ConnectionPool.swift:144:36: warning: capture of 'self' with non-sendable type 'ConnectionPool?' in a '@Sendable' closure
26 | /// connection queue. This ensures all SQL closures executed on the connection are done so in a serial fashion, thus
27 | /// guaranteeing the thread-safety of each connection.
28 | public class ConnectionPool {
| `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
29 |
30 | // MARK: - Internal - Properties
:
142 |
143 | queue.asyncAfter(deadline: .now() + drainDelay) { [weak self] in
144 | guard let strongSelf = self else { return }
| `- warning: capture of 'self' with non-sendable type 'ConnectionPool?' in a '@Sendable' closure
145 | strongSelf.drainAllAvailableConnectionsExceptOne()
146 | }
[23/26] Compiling SQift ConnectionPool.swift
/Users/admin/builder/spi-builder-workspace/Source/Connection/ConnectionPool.swift:144:36: warning: capture of 'self' with non-sendable type 'ConnectionPool?' in a '@Sendable' closure
26 | /// connection queue. This ensures all SQL closures executed on the connection are done so in a serial fashion, thus
27 | /// guaranteeing the thread-safety of each connection.
28 | public class ConnectionPool {
| `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
29 |
30 | // MARK: - Internal - Properties
:
142 |
143 | queue.asyncAfter(deadline: .now() + drainDelay) { [weak self] in
144 | guard let strongSelf = self else { return }
| `- warning: capture of 'self' with non-sendable type 'ConnectionPool?' in a '@Sendable' closure
145 | strongSelf.drainAllAvailableConnectionsExceptOne()
146 | }
[24/26] Compiling SQift ConnectionQueue.swift
/Users/admin/builder/spi-builder-workspace/Source/Connection/ConnectionPool.swift:144:36: warning: capture of 'self' with non-sendable type 'ConnectionPool?' in a '@Sendable' closure
26 | /// connection queue. This ensures all SQL closures executed on the connection are done so in a serial fashion, thus
27 | /// guaranteeing the thread-safety of each connection.
28 | public class ConnectionPool {
| `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
29 |
30 | // MARK: - Internal - Properties
:
142 |
143 | queue.asyncAfter(deadline: .now() + drainDelay) { [weak self] in
144 | guard let strongSelf = self else { return }
| `- warning: capture of 'self' with non-sendable type 'ConnectionPool?' in a '@Sendable' closure
145 | strongSelf.drainAllAvailableConnectionsExceptOne()
146 | }
[25/26] Compiling SQift Binding.swift
/Users/admin/builder/spi-builder-workspace/Source/Row/Binding.swift:321:12: warning: var 'bindingDateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
319 | ///
320 | /// For more information, please refer to the [documentation](https://www.sqlite.org/lang_datefunc.html).
321 | public var bindingDateFormatter: DateFormatter = {
| |- warning: var 'bindingDateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'bindingDateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'bindingDateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
322 | let formatter = DateFormatter()
323 | formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
[26/26] Compiling SQift Row.swift
/Users/admin/builder/spi-builder-workspace/Source/Row/Binding.swift:321:12: warning: var 'bindingDateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
319 | ///
320 | /// For more information, please refer to the [documentation](https://www.sqlite.org/lang_datefunc.html).
321 | public var bindingDateFormatter: DateFormatter = {
| |- warning: var 'bindingDateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'bindingDateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'bindingDateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
322 | let formatter = DateFormatter()
323 | formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
Build complete! (6.77s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SQift",
"name" : "SQift",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "7.0"
}
],
"products" : [
{
"name" : "SQift",
"targets" : [
"SQift"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SQiftTests",
"module_type" : "SwiftTarget",
"name" : "SQiftTests",
"path" : "Tests",
"sources" : [
"Extensions/DispatchQueueExtension.swift",
"Extensions/FileManagerExtension.swift",
"Extensions/ProcessInfoExtension.swift",
"Helpers/TestTables.swift",
"Tests/BaseTestCase.swift",
"Tests/Connection/ConnectionPoolTests.swift",
"Tests/Connection/ConnectionQueueTests.swift",
"Tests/Connection/ConnectionTests.swift",
"Tests/Connection/Functions/AuthorizerTests.swift",
"Tests/Connection/Functions/BackupTests.swift",
"Tests/Connection/Functions/BusyTests.swift",
"Tests/Connection/Functions/CheckpointTests.swift",
"Tests/Connection/Functions/CollationTests.swift",
"Tests/Connection/Functions/FunctionTests.swift",
"Tests/Connection/Functions/HookTests.swift",
"Tests/Connection/Functions/QueryTests.swift",
"Tests/Connection/Functions/TraceTests.swift",
"Tests/Connection/Functions/TransactionTests.swift",
"Tests/Connection/StatementTests.swift",
"Tests/Database/DatabaseTests.swift",
"Tests/Database/MigratorTests.swift",
"Tests/Database/TableLockPolicyTests.swift",
"Tests/Errors/ExpressibleByRowErrorTests.swift",
"Tests/Errors/SQLiteErrorTests.swift",
"Tests/Extensions/StringExtensionTests.swift",
"Tests/Rows/BindingTests.swift",
"Tests/Rows/RowTests.swift"
],
"target_dependencies" : [
"SQift"
],
"type" : "test"
},
{
"c99name" : "SQift",
"module_type" : "SwiftTarget",
"name" : "SQift",
"path" : "Source",
"product_memberships" : [
"SQift"
],
"sources" : [
"Connection/Connection.swift",
"Connection/ConnectionPool.swift",
"Connection/ConnectionQueue.swift",
"Connection/Functions/Authorizer.swift",
"Connection/Functions/Backup.swift",
"Connection/Functions/Busy.swift",
"Connection/Functions/Checkpoint.swift",
"Connection/Functions/Collation.swift",
"Connection/Functions/Function.swift",
"Connection/Functions/Hook.swift",
"Connection/Functions/Query.swift",
"Connection/Functions/Trace.swift",
"Connection/Functions/Transaction.swift",
"Connection/Statement.swift",
"Database/Database.swift",
"Database/Migrator.swift",
"Database/StorageLocation.swift",
"Database/TableLockPolicy.swift",
"Errors/ExpressibleByRowError.swift",
"Errors/SQLiteError.swift",
"Extensions/StringExtension.swift",
"Row/Binding.swift",
"Row/Row.swift"
],
"type" : "library"
}
],
"tools_version" : "5.8"
}
Done.