Build Information
Successful build of Appwrite, reference 21.2.0 (903c6f), with Swift 6.1 for Linux on 30 Oct 2026 13:50:53 UTC.
Swift 6 data race errors: 20
Build Command
bash -c docker run --pull=always --rm -v "checkouts-53886768-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:linux-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1Build Log
| |- note: add '@MainActor' to make static property 'defaults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
58 |
59 | // MARK: Session
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:63:30: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
61 | private func startHeartbeat() {
62 | stopHeartbeat()
63 | heartbeatTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
64 | do {
65 | while !Task.isCancelled {
66 | if let client = socketClient, client.isConnected {
| `- note: closure captures 'self' which is accessible to code in the current task
67 | client.send(text: #"{"type": "ping"}"#)
68 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:101:51: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
99 | return existing
100 | }
101 | let newTask = Task<Void, Swift.Error> { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
102 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
103 | defer {
104 | self.connectSync.sync { self.socketCreationTask = nil }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:349:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
347 | }
348 | if needsSocket {
349 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
350 | do {
351 | try await self?.createSocket()
| `- note: closure captures 'self' which is accessible to code in the current task
352 | } catch {
353 | Realtime.logDiagnostic("Failed to open realtime socket for presence: \(error)")
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:614:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
612 | Realtime.logDiagnostic("Realtime disconnected. Re-connecting in \(timeout / 1000) seconds.")
613 |
614 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
615 | try? await Task.sleep(nanoseconds: UInt64(timeout * 1_000_000))
616 |
617 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
618 | self.reconnectAttempts += 1
619 |
[1263/1289] Compiling Appwrite Service.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/PushServiceExtension.swift:20:20: warning: static property 'inServiceExtension' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 | static let liveWindow: TimeInterval = 10
19 | static let pendingLifetime: TimeInterval = 30
20 | static var inServiceExtension = false
| |- warning: static property 'inServiceExtension' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'inServiceExtension' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'inServiceExtension' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | private static let prefix = "appwrite.push.shared"
/host/spi-builder-workspace/Sources/Appwrite/Services/PushServiceExtension.swift:57:20: warning: static property 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
55 | }
56 |
57 | static var defaults: UserDefaults = appGroup.flatMap { UserDefaults(suiteName: $0) } ?? .standard
| |- warning: static property 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
58 |
59 | // MARK: Session
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:63:30: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
61 | private func startHeartbeat() {
62 | stopHeartbeat()
63 | heartbeatTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
64 | do {
65 | while !Task.isCancelled {
66 | if let client = socketClient, client.isConnected {
| `- note: closure captures 'self' which is accessible to code in the current task
67 | client.send(text: #"{"type": "ping"}"#)
68 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:101:51: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
99 | return existing
100 | }
101 | let newTask = Task<Void, Swift.Error> { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
102 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
103 | defer {
104 | self.connectSync.sync { self.socketCreationTask = nil }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:349:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
347 | }
348 | if needsSocket {
349 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
350 | do {
351 | try await self?.createSocket()
| `- note: closure captures 'self' which is accessible to code in the current task
352 | } catch {
353 | Realtime.logDiagnostic("Failed to open realtime socket for presence: \(error)")
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:614:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
612 | Realtime.logDiagnostic("Realtime disconnected. Re-connecting in \(timeout / 1000) seconds.")
613 |
614 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
615 | try? await Task.sleep(nanoseconds: UInt64(timeout * 1_000_000))
616 |
617 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
618 | self.reconnectAttempts += 1
619 |
[1264/1289] Compiling Appwrite Storage.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/PushServiceExtension.swift:20:20: warning: static property 'inServiceExtension' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 | static let liveWindow: TimeInterval = 10
19 | static let pendingLifetime: TimeInterval = 30
20 | static var inServiceExtension = false
| |- warning: static property 'inServiceExtension' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'inServiceExtension' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'inServiceExtension' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | private static let prefix = "appwrite.push.shared"
/host/spi-builder-workspace/Sources/Appwrite/Services/PushServiceExtension.swift:57:20: warning: static property 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
55 | }
56 |
57 | static var defaults: UserDefaults = appGroup.flatMap { UserDefaults(suiteName: $0) } ?? .standard
| |- warning: static property 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
58 |
59 | // MARK: Session
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:63:30: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
61 | private func startHeartbeat() {
62 | stopHeartbeat()
63 | heartbeatTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
64 | do {
65 | while !Task.isCancelled {
66 | if let client = socketClient, client.isConnected {
| `- note: closure captures 'self' which is accessible to code in the current task
67 | client.send(text: #"{"type": "ping"}"#)
68 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:101:51: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
99 | return existing
100 | }
101 | let newTask = Task<Void, Swift.Error> { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
102 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
103 | defer {
104 | self.connectSync.sync { self.socketCreationTask = nil }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:349:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
347 | }
348 | if needsSocket {
349 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
350 | do {
351 | try await self?.createSocket()
| `- note: closure captures 'self' which is accessible to code in the current task
352 | } catch {
353 | Realtime.logDiagnostic("Failed to open realtime socket for presence: \(error)")
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:614:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
612 | Realtime.logDiagnostic("Realtime disconnected. Re-connecting in \(timeout / 1000) seconds.")
613 |
614 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
615 | try? await Task.sleep(nanoseconds: UInt64(timeout * 1_000_000))
616 |
617 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
618 | self.reconnectAttempts += 1
619 |
[1265/1289] Compiling Appwrite TablesDB.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/PushServiceExtension.swift:20:20: warning: static property 'inServiceExtension' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 | static let liveWindow: TimeInterval = 10
19 | static let pendingLifetime: TimeInterval = 30
20 | static var inServiceExtension = false
| |- warning: static property 'inServiceExtension' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'inServiceExtension' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'inServiceExtension' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | private static let prefix = "appwrite.push.shared"
/host/spi-builder-workspace/Sources/Appwrite/Services/PushServiceExtension.swift:57:20: warning: static property 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
55 | }
56 |
57 | static var defaults: UserDefaults = appGroup.flatMap { UserDefaults(suiteName: $0) } ?? .standard
| |- warning: static property 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
58 |
59 | // MARK: Session
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:63:30: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
61 | private func startHeartbeat() {
62 | stopHeartbeat()
63 | heartbeatTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
64 | do {
65 | while !Task.isCancelled {
66 | if let client = socketClient, client.isConnected {
| `- note: closure captures 'self' which is accessible to code in the current task
67 | client.send(text: #"{"type": "ping"}"#)
68 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:101:51: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
99 | return existing
100 | }
101 | let newTask = Task<Void, Swift.Error> { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
102 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
103 | defer {
104 | self.connectSync.sync { self.socketCreationTask = nil }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:349:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
347 | }
348 | if needsSocket {
349 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
350 | do {
351 | try await self?.createSocket()
| `- note: closure captures 'self' which is accessible to code in the current task
352 | } catch {
353 | Realtime.logDiagnostic("Failed to open realtime socket for presence: \(error)")
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:614:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
612 | Realtime.logDiagnostic("Realtime disconnected. Re-connecting in \(timeout / 1000) seconds.")
613 |
614 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
615 | try? await Task.sleep(nanoseconds: UInt64(timeout * 1_000_000))
616 |
617 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
618 | self.reconnectAttempts += 1
619 |
[1266/1289] Compiling Appwrite Teams.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/PushServiceExtension.swift:20:20: warning: static property 'inServiceExtension' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 | static let liveWindow: TimeInterval = 10
19 | static let pendingLifetime: TimeInterval = 30
20 | static var inServiceExtension = false
| |- warning: static property 'inServiceExtension' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'inServiceExtension' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'inServiceExtension' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | private static let prefix = "appwrite.push.shared"
/host/spi-builder-workspace/Sources/Appwrite/Services/PushServiceExtension.swift:57:20: warning: static property 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
55 | }
56 |
57 | static var defaults: UserDefaults = appGroup.flatMap { UserDefaults(suiteName: $0) } ?? .standard
| |- warning: static property 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
58 |
59 | // MARK: Session
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:63:30: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
61 | private func startHeartbeat() {
62 | stopHeartbeat()
63 | heartbeatTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
64 | do {
65 | while !Task.isCancelled {
66 | if let client = socketClient, client.isConnected {
| `- note: closure captures 'self' which is accessible to code in the current task
67 | client.send(text: #"{"type": "ping"}"#)
68 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:101:51: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
99 | return existing
100 | }
101 | let newTask = Task<Void, Swift.Error> { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
102 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
103 | defer {
104 | self.connectSync.sync { self.socketCreationTask = nil }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:349:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
347 | }
348 | if needsSocket {
349 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
350 | do {
351 | try await self?.createSocket()
| `- note: closure captures 'self' which is accessible to code in the current task
352 | } catch {
353 | Realtime.logDiagnostic("Failed to open realtime socket for presence: \(error)")
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:614:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
612 | Realtime.logDiagnostic("Realtime disconnected. Re-connecting in \(timeout / 1000) seconds.")
613 |
614 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
615 | try? await Task.sleep(nanoseconds: UInt64(timeout * 1_000_000))
616 |
617 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
618 | self.reconnectAttempts += 1
619 |
[1267/1289] Compiling Appwrite VectorsDB.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/PushServiceExtension.swift:20:20: warning: static property 'inServiceExtension' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 | static let liveWindow: TimeInterval = 10
19 | static let pendingLifetime: TimeInterval = 30
20 | static var inServiceExtension = false
| |- warning: static property 'inServiceExtension' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'inServiceExtension' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'inServiceExtension' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | private static let prefix = "appwrite.push.shared"
/host/spi-builder-workspace/Sources/Appwrite/Services/PushServiceExtension.swift:57:20: warning: static property 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
55 | }
56 |
57 | static var defaults: UserDefaults = appGroup.flatMap { UserDefaults(suiteName: $0) } ?? .standard
| |- warning: static property 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
58 |
59 | // MARK: Session
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:63:30: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
61 | private func startHeartbeat() {
62 | stopHeartbeat()
63 | heartbeatTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
64 | do {
65 | while !Task.isCancelled {
66 | if let client = socketClient, client.isConnected {
| `- note: closure captures 'self' which is accessible to code in the current task
67 | client.send(text: #"{"type": "ping"}"#)
68 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:101:51: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
99 | return existing
100 | }
101 | let newTask = Task<Void, Swift.Error> { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
102 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
103 | defer {
104 | self.connectSync.sync { self.socketCreationTask = nil }
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:349:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
347 | }
348 | if needsSocket {
349 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
350 | do {
351 | try await self?.createSocket()
| `- note: closure captures 'self' which is accessible to code in the current task
352 | } catch {
353 | Realtime.logDiagnostic("Failed to open realtime socket for presence: \(error)")
/host/spi-builder-workspace/Sources/Appwrite/Services/Realtime.swift:614:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
612 | Realtime.logDiagnostic("Realtime disconnected. Re-connecting in \(timeout / 1000) seconds.")
613 |
614 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
615 | try? await Task.sleep(nanoseconds: UInt64(timeout * 1_000_000))
616 |
617 | guard let self = self else { return }
| `- note: closure captures 'self' which is accessible to code in the current task
618 | self.reconnectAttempts += 1
619 |
[1268/1289] Compiling Appwrite MacOSDeviceInfo.swift
/host/spi-builder-workspace/Sources/Appwrite/Models/AppwriteError.swift:3:12: warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | open class AppwriteError: Swift.Error, Decodable {
| `- warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
5 | public let message: String
[1269/1289] Compiling Appwrite WKInterfaceDevice+ModelName.swift
/host/spi-builder-workspace/Sources/Appwrite/Models/AppwriteError.swift:3:12: warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | open class AppwriteError: Swift.Error, Decodable {
| `- warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
5 | public let message: String
[1270/1289] Compiling Appwrite WatchOSDeviceInfo.swift
/host/spi-builder-workspace/Sources/Appwrite/Models/AppwriteError.swift:3:12: warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | open class AppwriteError: Swift.Error, Decodable {
| `- warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
5 | public let message: String
[1271/1289] Compiling Appwrite Cookie+Codable.swift
/host/spi-builder-workspace/Sources/Appwrite/Models/AppwriteError.swift:3:12: warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | open class AppwriteError: Swift.Error, Decodable {
| `- warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
5 | public let message: String
[1272/1289] Compiling Appwrite HTTPClientRequest+Cookies.swift
/host/spi-builder-workspace/Sources/Appwrite/Models/AppwriteError.swift:3:12: warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | open class AppwriteError: Swift.Error, Decodable {
| `- warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
5 | public let message: String
[1273/1289] Compiling Appwrite String+MimeTypes.swift
/host/spi-builder-workspace/Sources/Appwrite/Models/AppwriteError.swift:3:12: warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | open class AppwriteError: Swift.Error, Decodable {
| `- warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
5 | public let message: String
[1274/1289] Compiling Appwrite ID.swift
/host/spi-builder-workspace/Sources/Appwrite/Models/AppwriteError.swift:3:12: warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | open class AppwriteError: Swift.Error, Decodable {
| `- warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
5 | public let message: String
[1275/1289] Compiling Appwrite AppwriteError.swift
/host/spi-builder-workspace/Sources/Appwrite/Models/AppwriteError.swift:3:12: warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | open class AppwriteError: Swift.Error, Decodable {
| `- warning: non-final class 'AppwriteError' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
5 | public let message: String
[1276/1289] Compiling Appwrite Graphql.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1326:24: warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1324 |
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
| |- warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsToken' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsToken' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1327:24: warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
| |- warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsPushes' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsPushes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1328:24: warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
| |- warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinked' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinked' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1329:24: warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
| |- warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsProxyInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsProxyInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1330:24: warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
| |- warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsRegistrationRequested' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsRegistrationRequested' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1331:16: warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
| |- warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsDeliveries' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsDeliveries' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1332:16: warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
| |- warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinkedTopics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinkedTopics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1333:24: warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
| |- warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsReconciled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsReconciled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1335:16: warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
| |- warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'reconcileDelay' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'reconcileDelay' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1336 |
1337 | private final class WeakPush {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1374:24: warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1372 | }
1373 |
1374 | private static var appGroupWarned = false
| |- warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'appGroupWarned' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'appGroupWarned' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1375 |
1376 | /// Without the App Group the Notification Service Extension can't fetch, and the placeholder stays.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:717:17: warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
250 | /// // sub.update(background: true, title: "Messages")
251 | /// sub.unsubscribe()
252 | open class Push: Service {
| `- note: class 'Push' does not conform to the 'Sendable' protocol
253 | // Fixed keep-alive (PINGREQ interval) in seconds — not exposed as an option.
254 | private static let keepAliveSeconds: UInt16 = 60
:
715 | // Already disconnected (e.g. the broker dropped the connection); nothing to send.
716 | } catch {
717 | self?.surface(Push.describe(error))
| `- warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
718 | }
719 | do {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:923:38: warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
921 | port: port,
922 | identifier: id,
923 | eventLoopGroupProvider: .createNew,
| `- warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
924 | configuration: configuration
925 | )
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1507:13: warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
1505 | }
1506 | for push in pushes where !push.backgroundTopics().isEmpty {
1507 | Task { await register(push, token: hex, topics: push.backgroundTopics()) }
| |- warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
| |- note: Passing value of non-Sendable type '() async -> ()' as a 'sending' argument risks causing races in between local and caller code
| `- note: access can happen concurrently
1508 | }
1509 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1707:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1705 | let pushes = apnsLocked { apnsPushes.values.compactMap { $0.push } }
1706 | if message.wake {
1707 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1708 | var woke = false
1709 | for push in pushes {
:
1712 | }
1713 | }
1714 | completion?(woke)
| `- note: closure captures 'completion' which is accessible to code in the current task
1715 | }
1716 | return true
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1472:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1470 | }
1471 | let scheduler = WeakPush(push)
1472 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1473 | try? await Task.sleep(nanoseconds: UInt64(reconcileDelay * 1_000_000_000))
1474 | await reconcile(userId: userId, targetId: targetId, fallback: scheduler.push)
| `- note: closure captures 'scheduler' which is accessible to code in the current task
1475 | }
1476 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1401:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1399 | }
1400 | if let token {
1401 | Task { await register(push, token: token, topics: topics) }
| | `- note: closure captures 'push' which is accessible to code in the current task
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1402 | }
1403 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1077:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1075 | private func inBackground(_ operation: @escaping () async throws -> Void) {
1076 | let generation = sync.sync { closeGeneration }
1077 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1078 | do {
1079 | try await operation()
| `- note: closure captures non-Sendable 'operation'
1080 | } catch {
1081 | guard let self, !self.sync.sync(execute: { self.closing || self.closeGeneration != generation }) else { return }
| `- note: closure captures non-Sendable 'self'
1082 | self.surface(Push.describe(error))
1083 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1414:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1412 | let targetId = Push.targetId(for: userId)
1413 | let linked = apnsLocked { apnsLinked[targetId] ?? [] }
1414 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1415 | for topic in topics where linked.contains(topic) {
1416 | await unlink(push, targetId: targetId, topic: topic)
| `- note: closure captures 'push' which is accessible to code in the current task
1417 | }
1418 | // The target is shared by every Push of the user, so check again just before deleting it.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:766:32: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
764 | self.connectedKey = key
765 | let epoch = self.connectionEpoch
766 | let created = Task { () throws -> MQTTClient in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
767 | do {
768 | let client = try await self.open()
| `- note: closure captures 'self' which is accessible to code in the current task
769 | let current = self.sync.sync { () -> Bool in
770 | guard self.connectionEpoch == epoch else { return false }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:997:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
995 | }
996 | guard let client else { return }
997 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
998 | await reconnectLoop(client)
| `- note: closure captures 'self' which is accessible to code in the current task
999 | sync.sync { self.reconnecting = false }
1000 | }
[1277/1289] Compiling Appwrite Locale.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1326:24: warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1324 |
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
| |- warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsToken' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsToken' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1327:24: warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
| |- warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsPushes' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsPushes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1328:24: warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
| |- warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinked' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinked' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1329:24: warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
| |- warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsProxyInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsProxyInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1330:24: warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
| |- warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsRegistrationRequested' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsRegistrationRequested' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1331:16: warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
| |- warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsDeliveries' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsDeliveries' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1332:16: warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
| |- warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinkedTopics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinkedTopics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1333:24: warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
| |- warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsReconciled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsReconciled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1335:16: warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
| |- warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'reconcileDelay' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'reconcileDelay' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1336 |
1337 | private final class WeakPush {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1374:24: warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1372 | }
1373 |
1374 | private static var appGroupWarned = false
| |- warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'appGroupWarned' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'appGroupWarned' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1375 |
1376 | /// Without the App Group the Notification Service Extension can't fetch, and the placeholder stays.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:717:17: warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
250 | /// // sub.update(background: true, title: "Messages")
251 | /// sub.unsubscribe()
252 | open class Push: Service {
| `- note: class 'Push' does not conform to the 'Sendable' protocol
253 | // Fixed keep-alive (PINGREQ interval) in seconds — not exposed as an option.
254 | private static let keepAliveSeconds: UInt16 = 60
:
715 | // Already disconnected (e.g. the broker dropped the connection); nothing to send.
716 | } catch {
717 | self?.surface(Push.describe(error))
| `- warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
718 | }
719 | do {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:923:38: warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
921 | port: port,
922 | identifier: id,
923 | eventLoopGroupProvider: .createNew,
| `- warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
924 | configuration: configuration
925 | )
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1507:13: warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
1505 | }
1506 | for push in pushes where !push.backgroundTopics().isEmpty {
1507 | Task { await register(push, token: hex, topics: push.backgroundTopics()) }
| |- warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
| |- note: Passing value of non-Sendable type '() async -> ()' as a 'sending' argument risks causing races in between local and caller code
| `- note: access can happen concurrently
1508 | }
1509 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1707:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1705 | let pushes = apnsLocked { apnsPushes.values.compactMap { $0.push } }
1706 | if message.wake {
1707 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1708 | var woke = false
1709 | for push in pushes {
:
1712 | }
1713 | }
1714 | completion?(woke)
| `- note: closure captures 'completion' which is accessible to code in the current task
1715 | }
1716 | return true
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1472:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1470 | }
1471 | let scheduler = WeakPush(push)
1472 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1473 | try? await Task.sleep(nanoseconds: UInt64(reconcileDelay * 1_000_000_000))
1474 | await reconcile(userId: userId, targetId: targetId, fallback: scheduler.push)
| `- note: closure captures 'scheduler' which is accessible to code in the current task
1475 | }
1476 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1401:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1399 | }
1400 | if let token {
1401 | Task { await register(push, token: token, topics: topics) }
| | `- note: closure captures 'push' which is accessible to code in the current task
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1402 | }
1403 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1077:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1075 | private func inBackground(_ operation: @escaping () async throws -> Void) {
1076 | let generation = sync.sync { closeGeneration }
1077 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1078 | do {
1079 | try await operation()
| `- note: closure captures non-Sendable 'operation'
1080 | } catch {
1081 | guard let self, !self.sync.sync(execute: { self.closing || self.closeGeneration != generation }) else { return }
| `- note: closure captures non-Sendable 'self'
1082 | self.surface(Push.describe(error))
1083 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1414:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1412 | let targetId = Push.targetId(for: userId)
1413 | let linked = apnsLocked { apnsLinked[targetId] ?? [] }
1414 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1415 | for topic in topics where linked.contains(topic) {
1416 | await unlink(push, targetId: targetId, topic: topic)
| `- note: closure captures 'push' which is accessible to code in the current task
1417 | }
1418 | // The target is shared by every Push of the user, so check again just before deleting it.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:766:32: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
764 | self.connectedKey = key
765 | let epoch = self.connectionEpoch
766 | let created = Task { () throws -> MQTTClient in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
767 | do {
768 | let client = try await self.open()
| `- note: closure captures 'self' which is accessible to code in the current task
769 | let current = self.sync.sync { () -> Bool in
770 | guard self.connectionEpoch == epoch else { return false }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:997:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
995 | }
996 | guard let client else { return }
997 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
998 | await reconnectLoop(client)
| `- note: closure captures 'self' which is accessible to code in the current task
999 | sync.sync { self.reconnecting = false }
1000 | }
[1278/1289] Compiling Appwrite Messaging.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1326:24: warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1324 |
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
| |- warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsToken' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsToken' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1327:24: warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
| |- warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsPushes' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsPushes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1328:24: warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
| |- warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinked' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinked' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1329:24: warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
| |- warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsProxyInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsProxyInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1330:24: warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
| |- warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsRegistrationRequested' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsRegistrationRequested' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1331:16: warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
| |- warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsDeliveries' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsDeliveries' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1332:16: warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
| |- warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinkedTopics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinkedTopics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1333:24: warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
| |- warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsReconciled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsReconciled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1335:16: warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
| |- warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'reconcileDelay' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'reconcileDelay' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1336 |
1337 | private final class WeakPush {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1374:24: warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1372 | }
1373 |
1374 | private static var appGroupWarned = false
| |- warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'appGroupWarned' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'appGroupWarned' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1375 |
1376 | /// Without the App Group the Notification Service Extension can't fetch, and the placeholder stays.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:717:17: warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
250 | /// // sub.update(background: true, title: "Messages")
251 | /// sub.unsubscribe()
252 | open class Push: Service {
| `- note: class 'Push' does not conform to the 'Sendable' protocol
253 | // Fixed keep-alive (PINGREQ interval) in seconds — not exposed as an option.
254 | private static let keepAliveSeconds: UInt16 = 60
:
715 | // Already disconnected (e.g. the broker dropped the connection); nothing to send.
716 | } catch {
717 | self?.surface(Push.describe(error))
| `- warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
718 | }
719 | do {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:923:38: warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
921 | port: port,
922 | identifier: id,
923 | eventLoopGroupProvider: .createNew,
| `- warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
924 | configuration: configuration
925 | )
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1507:13: warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
1505 | }
1506 | for push in pushes where !push.backgroundTopics().isEmpty {
1507 | Task { await register(push, token: hex, topics: push.backgroundTopics()) }
| |- warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
| |- note: Passing value of non-Sendable type '() async -> ()' as a 'sending' argument risks causing races in between local and caller code
| `- note: access can happen concurrently
1508 | }
1509 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1707:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1705 | let pushes = apnsLocked { apnsPushes.values.compactMap { $0.push } }
1706 | if message.wake {
1707 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1708 | var woke = false
1709 | for push in pushes {
:
1712 | }
1713 | }
1714 | completion?(woke)
| `- note: closure captures 'completion' which is accessible to code in the current task
1715 | }
1716 | return true
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1472:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1470 | }
1471 | let scheduler = WeakPush(push)
1472 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1473 | try? await Task.sleep(nanoseconds: UInt64(reconcileDelay * 1_000_000_000))
1474 | await reconcile(userId: userId, targetId: targetId, fallback: scheduler.push)
| `- note: closure captures 'scheduler' which is accessible to code in the current task
1475 | }
1476 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1401:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1399 | }
1400 | if let token {
1401 | Task { await register(push, token: token, topics: topics) }
| | `- note: closure captures 'push' which is accessible to code in the current task
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1402 | }
1403 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1077:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1075 | private func inBackground(_ operation: @escaping () async throws -> Void) {
1076 | let generation = sync.sync { closeGeneration }
1077 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1078 | do {
1079 | try await operation()
| `- note: closure captures non-Sendable 'operation'
1080 | } catch {
1081 | guard let self, !self.sync.sync(execute: { self.closing || self.closeGeneration != generation }) else { return }
| `- note: closure captures non-Sendable 'self'
1082 | self.surface(Push.describe(error))
1083 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1414:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1412 | let targetId = Push.targetId(for: userId)
1413 | let linked = apnsLocked { apnsLinked[targetId] ?? [] }
1414 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1415 | for topic in topics where linked.contains(topic) {
1416 | await unlink(push, targetId: targetId, topic: topic)
| `- note: closure captures 'push' which is accessible to code in the current task
1417 | }
1418 | // The target is shared by every Push of the user, so check again just before deleting it.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:766:32: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
764 | self.connectedKey = key
765 | let epoch = self.connectionEpoch
766 | let created = Task { () throws -> MQTTClient in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
767 | do {
768 | let client = try await self.open()
| `- note: closure captures 'self' which is accessible to code in the current task
769 | let current = self.sync.sync { () -> Bool in
770 | guard self.connectionEpoch == epoch else { return false }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:997:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
995 | }
996 | guard let client else { return }
997 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
998 | await reconnectLoop(client)
| `- note: closure captures 'self' which is accessible to code in the current task
999 | sync.sync { self.reconnecting = false }
1000 | }
[1279/1289] Compiling Appwrite Oauth2.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1326:24: warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1324 |
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
| |- warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsToken' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsToken' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1327:24: warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
| |- warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsPushes' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsPushes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1328:24: warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
| |- warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinked' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinked' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1329:24: warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
| |- warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsProxyInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsProxyInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1330:24: warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
| |- warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsRegistrationRequested' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsRegistrationRequested' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1331:16: warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
| |- warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsDeliveries' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsDeliveries' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1332:16: warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
| |- warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinkedTopics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinkedTopics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1333:24: warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
| |- warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsReconciled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsReconciled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1335:16: warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
| |- warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'reconcileDelay' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'reconcileDelay' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1336 |
1337 | private final class WeakPush {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1374:24: warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1372 | }
1373 |
1374 | private static var appGroupWarned = false
| |- warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'appGroupWarned' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'appGroupWarned' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1375 |
1376 | /// Without the App Group the Notification Service Extension can't fetch, and the placeholder stays.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:717:17: warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
250 | /// // sub.update(background: true, title: "Messages")
251 | /// sub.unsubscribe()
252 | open class Push: Service {
| `- note: class 'Push' does not conform to the 'Sendable' protocol
253 | // Fixed keep-alive (PINGREQ interval) in seconds — not exposed as an option.
254 | private static let keepAliveSeconds: UInt16 = 60
:
715 | // Already disconnected (e.g. the broker dropped the connection); nothing to send.
716 | } catch {
717 | self?.surface(Push.describe(error))
| `- warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
718 | }
719 | do {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:923:38: warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
921 | port: port,
922 | identifier: id,
923 | eventLoopGroupProvider: .createNew,
| `- warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
924 | configuration: configuration
925 | )
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1507:13: warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
1505 | }
1506 | for push in pushes where !push.backgroundTopics().isEmpty {
1507 | Task { await register(push, token: hex, topics: push.backgroundTopics()) }
| |- warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
| |- note: Passing value of non-Sendable type '() async -> ()' as a 'sending' argument risks causing races in between local and caller code
| `- note: access can happen concurrently
1508 | }
1509 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1707:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1705 | let pushes = apnsLocked { apnsPushes.values.compactMap { $0.push } }
1706 | if message.wake {
1707 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1708 | var woke = false
1709 | for push in pushes {
:
1712 | }
1713 | }
1714 | completion?(woke)
| `- note: closure captures 'completion' which is accessible to code in the current task
1715 | }
1716 | return true
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1472:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1470 | }
1471 | let scheduler = WeakPush(push)
1472 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1473 | try? await Task.sleep(nanoseconds: UInt64(reconcileDelay * 1_000_000_000))
1474 | await reconcile(userId: userId, targetId: targetId, fallback: scheduler.push)
| `- note: closure captures 'scheduler' which is accessible to code in the current task
1475 | }
1476 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1401:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1399 | }
1400 | if let token {
1401 | Task { await register(push, token: token, topics: topics) }
| | `- note: closure captures 'push' which is accessible to code in the current task
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1402 | }
1403 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1077:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1075 | private func inBackground(_ operation: @escaping () async throws -> Void) {
1076 | let generation = sync.sync { closeGeneration }
1077 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1078 | do {
1079 | try await operation()
| `- note: closure captures non-Sendable 'operation'
1080 | } catch {
1081 | guard let self, !self.sync.sync(execute: { self.closing || self.closeGeneration != generation }) else { return }
| `- note: closure captures non-Sendable 'self'
1082 | self.surface(Push.describe(error))
1083 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1414:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1412 | let targetId = Push.targetId(for: userId)
1413 | let linked = apnsLocked { apnsLinked[targetId] ?? [] }
1414 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1415 | for topic in topics where linked.contains(topic) {
1416 | await unlink(push, targetId: targetId, topic: topic)
| `- note: closure captures 'push' which is accessible to code in the current task
1417 | }
1418 | // The target is shared by every Push of the user, so check again just before deleting it.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:766:32: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
764 | self.connectedKey = key
765 | let epoch = self.connectionEpoch
766 | let created = Task { () throws -> MQTTClient in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
767 | do {
768 | let client = try await self.open()
| `- note: closure captures 'self' which is accessible to code in the current task
769 | let current = self.sync.sync { () -> Bool in
770 | guard self.connectionEpoch == epoch else { return false }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:997:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
995 | }
996 | guard let client else { return }
997 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
998 | await reconnectLoop(client)
| `- note: closure captures 'self' which is accessible to code in the current task
999 | sync.sync { self.reconnecting = false }
1000 | }
[1280/1289] Compiling Appwrite Organization.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1326:24: warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1324 |
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
| |- warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsToken' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsToken' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1327:24: warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
| |- warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsPushes' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsPushes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1328:24: warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
| |- warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinked' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinked' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1329:24: warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
| |- warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsProxyInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsProxyInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1330:24: warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
| |- warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsRegistrationRequested' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsRegistrationRequested' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1331:16: warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
| |- warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsDeliveries' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsDeliveries' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1332:16: warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
| |- warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinkedTopics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinkedTopics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1333:24: warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
| |- warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsReconciled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsReconciled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1335:16: warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
| |- warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'reconcileDelay' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'reconcileDelay' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1336 |
1337 | private final class WeakPush {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1374:24: warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1372 | }
1373 |
1374 | private static var appGroupWarned = false
| |- warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'appGroupWarned' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'appGroupWarned' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1375 |
1376 | /// Without the App Group the Notification Service Extension can't fetch, and the placeholder stays.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:717:17: warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
250 | /// // sub.update(background: true, title: "Messages")
251 | /// sub.unsubscribe()
252 | open class Push: Service {
| `- note: class 'Push' does not conform to the 'Sendable' protocol
253 | // Fixed keep-alive (PINGREQ interval) in seconds — not exposed as an option.
254 | private static let keepAliveSeconds: UInt16 = 60
:
715 | // Already disconnected (e.g. the broker dropped the connection); nothing to send.
716 | } catch {
717 | self?.surface(Push.describe(error))
| `- warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
718 | }
719 | do {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:923:38: warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
921 | port: port,
922 | identifier: id,
923 | eventLoopGroupProvider: .createNew,
| `- warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
924 | configuration: configuration
925 | )
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1507:13: warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
1505 | }
1506 | for push in pushes where !push.backgroundTopics().isEmpty {
1507 | Task { await register(push, token: hex, topics: push.backgroundTopics()) }
| |- warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
| |- note: Passing value of non-Sendable type '() async -> ()' as a 'sending' argument risks causing races in between local and caller code
| `- note: access can happen concurrently
1508 | }
1509 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1707:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1705 | let pushes = apnsLocked { apnsPushes.values.compactMap { $0.push } }
1706 | if message.wake {
1707 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1708 | var woke = false
1709 | for push in pushes {
:
1712 | }
1713 | }
1714 | completion?(woke)
| `- note: closure captures 'completion' which is accessible to code in the current task
1715 | }
1716 | return true
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1472:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1470 | }
1471 | let scheduler = WeakPush(push)
1472 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1473 | try? await Task.sleep(nanoseconds: UInt64(reconcileDelay * 1_000_000_000))
1474 | await reconcile(userId: userId, targetId: targetId, fallback: scheduler.push)
| `- note: closure captures 'scheduler' which is accessible to code in the current task
1475 | }
1476 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1401:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1399 | }
1400 | if let token {
1401 | Task { await register(push, token: token, topics: topics) }
| | `- note: closure captures 'push' which is accessible to code in the current task
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1402 | }
1403 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1077:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1075 | private func inBackground(_ operation: @escaping () async throws -> Void) {
1076 | let generation = sync.sync { closeGeneration }
1077 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1078 | do {
1079 | try await operation()
| `- note: closure captures non-Sendable 'operation'
1080 | } catch {
1081 | guard let self, !self.sync.sync(execute: { self.closing || self.closeGeneration != generation }) else { return }
| `- note: closure captures non-Sendable 'self'
1082 | self.surface(Push.describe(error))
1083 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1414:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1412 | let targetId = Push.targetId(for: userId)
1413 | let linked = apnsLocked { apnsLinked[targetId] ?? [] }
1414 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1415 | for topic in topics where linked.contains(topic) {
1416 | await unlink(push, targetId: targetId, topic: topic)
| `- note: closure captures 'push' which is accessible to code in the current task
1417 | }
1418 | // The target is shared by every Push of the user, so check again just before deleting it.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:766:32: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
764 | self.connectedKey = key
765 | let epoch = self.connectionEpoch
766 | let created = Task { () throws -> MQTTClient in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
767 | do {
768 | let client = try await self.open()
| `- note: closure captures 'self' which is accessible to code in the current task
769 | let current = self.sync.sync { () -> Bool in
770 | guard self.connectionEpoch == epoch else { return false }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:997:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
995 | }
996 | guard let client else { return }
997 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
998 | await reconnectLoop(client)
| `- note: closure captures 'self' which is accessible to code in the current task
999 | sync.sync { self.reconnecting = false }
1000 | }
[1281/1289] Compiling Appwrite Presences.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1326:24: warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1324 |
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
| |- warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsToken' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsToken' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1327:24: warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
| |- warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsPushes' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsPushes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1328:24: warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
| |- warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinked' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinked' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1329:24: warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
| |- warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsProxyInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsProxyInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1330:24: warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
| |- warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsRegistrationRequested' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsRegistrationRequested' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1331:16: warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
| |- warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsDeliveries' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsDeliveries' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1332:16: warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
| |- warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinkedTopics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinkedTopics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1333:24: warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
| |- warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsReconciled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsReconciled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1335:16: warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
| |- warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'reconcileDelay' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'reconcileDelay' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1336 |
1337 | private final class WeakPush {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1374:24: warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1372 | }
1373 |
1374 | private static var appGroupWarned = false
| |- warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'appGroupWarned' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'appGroupWarned' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1375 |
1376 | /// Without the App Group the Notification Service Extension can't fetch, and the placeholder stays.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:717:17: warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
250 | /// // sub.update(background: true, title: "Messages")
251 | /// sub.unsubscribe()
252 | open class Push: Service {
| `- note: class 'Push' does not conform to the 'Sendable' protocol
253 | // Fixed keep-alive (PINGREQ interval) in seconds — not exposed as an option.
254 | private static let keepAliveSeconds: UInt16 = 60
:
715 | // Already disconnected (e.g. the broker dropped the connection); nothing to send.
716 | } catch {
717 | self?.surface(Push.describe(error))
| `- warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
718 | }
719 | do {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:923:38: warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
921 | port: port,
922 | identifier: id,
923 | eventLoopGroupProvider: .createNew,
| `- warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
924 | configuration: configuration
925 | )
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1507:13: warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
1505 | }
1506 | for push in pushes where !push.backgroundTopics().isEmpty {
1507 | Task { await register(push, token: hex, topics: push.backgroundTopics()) }
| |- warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
| |- note: Passing value of non-Sendable type '() async -> ()' as a 'sending' argument risks causing races in between local and caller code
| `- note: access can happen concurrently
1508 | }
1509 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1707:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1705 | let pushes = apnsLocked { apnsPushes.values.compactMap { $0.push } }
1706 | if message.wake {
1707 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1708 | var woke = false
1709 | for push in pushes {
:
1712 | }
1713 | }
1714 | completion?(woke)
| `- note: closure captures 'completion' which is accessible to code in the current task
1715 | }
1716 | return true
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1472:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1470 | }
1471 | let scheduler = WeakPush(push)
1472 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1473 | try? await Task.sleep(nanoseconds: UInt64(reconcileDelay * 1_000_000_000))
1474 | await reconcile(userId: userId, targetId: targetId, fallback: scheduler.push)
| `- note: closure captures 'scheduler' which is accessible to code in the current task
1475 | }
1476 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1401:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1399 | }
1400 | if let token {
1401 | Task { await register(push, token: token, topics: topics) }
| | `- note: closure captures 'push' which is accessible to code in the current task
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1402 | }
1403 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1077:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1075 | private func inBackground(_ operation: @escaping () async throws -> Void) {
1076 | let generation = sync.sync { closeGeneration }
1077 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1078 | do {
1079 | try await operation()
| `- note: closure captures non-Sendable 'operation'
1080 | } catch {
1081 | guard let self, !self.sync.sync(execute: { self.closing || self.closeGeneration != generation }) else { return }
| `- note: closure captures non-Sendable 'self'
1082 | self.surface(Push.describe(error))
1083 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1414:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1412 | let targetId = Push.targetId(for: userId)
1413 | let linked = apnsLocked { apnsLinked[targetId] ?? [] }
1414 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1415 | for topic in topics where linked.contains(topic) {
1416 | await unlink(push, targetId: targetId, topic: topic)
| `- note: closure captures 'push' which is accessible to code in the current task
1417 | }
1418 | // The target is shared by every Push of the user, so check again just before deleting it.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:766:32: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
764 | self.connectedKey = key
765 | let epoch = self.connectionEpoch
766 | let created = Task { () throws -> MQTTClient in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
767 | do {
768 | let client = try await self.open()
| `- note: closure captures 'self' which is accessible to code in the current task
769 | let current = self.sync.sync { () -> Bool in
770 | guard self.connectionEpoch == epoch else { return false }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:997:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
995 | }
996 | guard let client else { return }
997 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
998 | await reconnectLoop(client)
| `- note: closure captures 'self' which is accessible to code in the current task
999 | sync.sync { self.reconnecting = false }
1000 | }
[1282/1289] Compiling Appwrite Push.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1326:24: warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1324 |
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
| |- warning: static property 'apnsToken' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsToken' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsToken' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1327:24: warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1325 | private static let apnsLock = NSLock()
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
| |- warning: static property 'apnsPushes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsPushes' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsPushes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1328:24: warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1326 | private static var apnsToken: String?
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
| |- warning: static property 'apnsLinked' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinked' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinked' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1329:24: warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1327 | private static var apnsPushes: [ObjectIdentifier: WeakPush] = [:]
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
| |- warning: static property 'apnsProxyInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsProxyInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsProxyInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1330:24: warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1328 | private static var apnsLinked: [String: Set<String>] = [:]
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
| |- warning: static property 'apnsRegistrationRequested' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsRegistrationRequested' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsRegistrationRequested' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1331:16: warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1329 | private static var apnsProxyInstalled = false
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
| |- warning: static property 'apnsDeliveries' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsDeliveries' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsDeliveries' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1332:16: warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1330 | private static var apnsRegistrationRequested = false
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
| |- warning: static property 'apnsLinkedTopics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsLinkedTopics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsLinkedTopics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1333:24: warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1331 | static var apnsDeliveries = Deliveries(defaults: Shared.defaults)
1332 | static var apnsLinkedTopics = LinkedTopics(defaults: Shared.defaults)
1333 | private static var apnsReconciled: Set<String> = []
| |- warning: static property 'apnsReconciled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'apnsReconciled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'apnsReconciled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1335:16: warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1333 | private static var apnsReconciled: Set<String> = []
1334 | /// How long a launch has to subscribe again before the topics it doesn't claim are unlinked.
1335 | static var reconcileDelay: TimeInterval = 30
| |- warning: static property 'reconcileDelay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'reconcileDelay' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'reconcileDelay' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1336 |
1337 | private final class WeakPush {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1374:24: warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1372 | }
1373 |
1374 | private static var appGroupWarned = false
| |- warning: static property 'appGroupWarned' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'appGroupWarned' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'appGroupWarned' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1375 |
1376 | /// Without the App Group the Notification Service Extension can't fetch, and the placeholder stays.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:717:17: warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
250 | /// // sub.update(background: true, title: "Messages")
251 | /// sub.unsubscribe()
252 | open class Push: Service {
| `- note: class 'Push' does not conform to the 'Sendable' protocol
253 | // Fixed keep-alive (PINGREQ interval) in seconds — not exposed as an option.
254 | private static let keepAliveSeconds: UInt16 = 60
:
715 | // Already disconnected (e.g. the broker dropped the connection); nothing to send.
716 | } catch {
717 | self?.surface(Push.describe(error))
| `- warning: capture of 'self' with non-sendable type 'Push?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
718 | }
719 | do {
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:923:38: warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
921 | port: port,
922 | identifier: id,
923 | eventLoopGroupProvider: .createNew,
| `- warning: 'createNew' is deprecated: Please use `.shared(existingGroup)` or use the singleton via `.shared(MultiThreadedEventLoopGroup.singleton)` or similar
924 | configuration: configuration
925 | )
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1507:13: warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
1505 | }
1506 | for push in pushes where !push.backgroundTopics().isEmpty {
1507 | Task { await register(push, token: hex, topics: push.backgroundTopics()) }
| |- warning: sending value of non-Sendable type '() async -> ()' risks causing data races; this is an error in the Swift 6 language mode
| |- note: Passing value of non-Sendable type '() async -> ()' as a 'sending' argument risks causing races in between local and caller code
| `- note: access can happen concurrently
1508 | }
1509 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1707:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1705 | let pushes = apnsLocked { apnsPushes.values.compactMap { $0.push } }
1706 | if message.wake {
1707 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1708 | var woke = false
1709 | for push in pushes {
:
1712 | }
1713 | }
1714 | completion?(woke)
| `- note: closure captures 'completion' which is accessible to code in the current task
1715 | }
1716 | return true
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1472:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1470 | }
1471 | let scheduler = WeakPush(push)
1472 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1473 | try? await Task.sleep(nanoseconds: UInt64(reconcileDelay * 1_000_000_000))
1474 | await reconcile(userId: userId, targetId: targetId, fallback: scheduler.push)
| `- note: closure captures 'scheduler' which is accessible to code in the current task
1475 | }
1476 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1401:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1399 | }
1400 | if let token {
1401 | Task { await register(push, token: token, topics: topics) }
| | `- note: closure captures 'push' which is accessible to code in the current task
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1402 | }
1403 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1077:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1075 | private func inBackground(_ operation: @escaping () async throws -> Void) {
1076 | let generation = sync.sync { closeGeneration }
1077 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1078 | do {
1079 | try await operation()
| `- note: closure captures non-Sendable 'operation'
1080 | } catch {
1081 | guard let self, !self.sync.sync(execute: { self.closing || self.closeGeneration != generation }) else { return }
| `- note: closure captures non-Sendable 'self'
1082 | self.surface(Push.describe(error))
1083 | }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:1414:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1412 | let targetId = Push.targetId(for: userId)
1413 | let linked = apnsLocked { apnsLinked[targetId] ?? [] }
1414 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
1415 | for topic in topics where linked.contains(topic) {
1416 | await unlink(push, targetId: targetId, topic: topic)
| `- note: closure captures 'push' which is accessible to code in the current task
1417 | }
1418 | // The target is shared by every Push of the user, so check again just before deleting it.
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:766:32: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
764 | self.connectedKey = key
765 | let epoch = self.connectionEpoch
766 | let created = Task { () throws -> MQTTClient in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
767 | do {
768 | let client = try await self.open()
| `- note: closure captures 'self' which is accessible to code in the current task
769 | let current = self.sync.sync { () -> Bool in
770 | guard self.connectionEpoch == epoch else { return false }
/host/spi-builder-workspace/Sources/Appwrite/Services/Push.swift:997:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
995 | }
996 | guard let client else { return }
997 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
998 | await reconnectLoop(client)
| `- note: closure captures 'self' which is accessible to code in the current task
999 | sync.sync { self.reconnecting = false }
1000 | }
[1283/1289] Compiling Appwrite Account.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2382:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2380 | ]
2381 |
2382 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2383 | "X-Appwrite-Project": client.config["project"] ?? "",
2384 | "accept": "text/html",
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2944:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2942 | ]
2943 |
2944 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2945 | "X-Appwrite-Project": client.config["project"] ?? "",
2946 | "accept": "text/html",
[1284/1289] Compiling Appwrite Analytics.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2382:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2380 | ]
2381 |
2382 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2383 | "X-Appwrite-Project": client.config["project"] ?? "",
2384 | "accept": "text/html",
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2944:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2942 | ]
2943 |
2944 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2945 | "X-Appwrite-Project": client.config["project"] ?? "",
2946 | "accept": "text/html",
[1285/1289] Compiling Appwrite Apps.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2382:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2380 | ]
2381 |
2382 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2383 | "X-Appwrite-Project": client.config["project"] ?? "",
2384 | "accept": "text/html",
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2944:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2942 | ]
2943 |
2944 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2945 | "X-Appwrite-Project": client.config["project"] ?? "",
2946 | "accept": "text/html",
[1286/1289] Compiling Appwrite Avatars.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2382:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2380 | ]
2381 |
2382 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2383 | "X-Appwrite-Project": client.config["project"] ?? "",
2384 | "accept": "text/html",
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2944:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2942 | ]
2943 |
2944 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2945 | "X-Appwrite-Project": client.config["project"] ?? "",
2946 | "accept": "text/html",
[1287/1289] Compiling Appwrite Databases.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2382:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2380 | ]
2381 |
2382 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2383 | "X-Appwrite-Project": client.config["project"] ?? "",
2384 | "accept": "text/html",
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2944:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2942 | ]
2943 |
2944 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2945 | "X-Appwrite-Project": client.config["project"] ?? "",
2946 | "accept": "text/html",
[1288/1289] Compiling Appwrite DocumentsDB.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2382:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2380 | ]
2381 |
2382 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2383 | "X-Appwrite-Project": client.config["project"] ?? "",
2384 | "accept": "text/html",
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2944:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2942 | ]
2943 |
2944 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2945 | "X-Appwrite-Project": client.config["project"] ?? "",
2946 | "accept": "text/html",
[1289/1289] Compiling Appwrite Functions.swift
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2382:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2380 | ]
2381 |
2382 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2383 | "X-Appwrite-Project": client.config["project"] ?? "",
2384 | "accept": "text/html",
/host/spi-builder-workspace/Sources/Appwrite/Services/Account.swift:2944:13: warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2942 | ]
2943 |
2944 | let apiHeaders: [String: String] = [
| `- warning: immutable value 'apiHeaders' was never used; consider replacing with '_' or removing it
2945 | "X-Appwrite-Project": client.config["project"] ?? "",
2946 | "accept": "text/html",
Build complete! (113.29s)
Build complete.
{
"dependencies" : [
{
"identity" : "async-http-client",
"requirement" : {
"range" : [
{
"lower_bound" : "1.36.2",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swift-server/async-http-client.git"
},
{
"identity" : "swift-distributed-tracing",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "1.6.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-distributed-tracing.git"
},
{
"identity" : "swift-nio",
"requirement" : {
"range" : [
{
"lower_bound" : "2.104.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio.git"
},
{
"identity" : "mqtt-nio",
"requirement" : {
"range" : [
{
"lower_bound" : "2.13.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swift-server-community/mqtt-nio.git"
}
],
"manifest_display_name" : "Appwrite",
"name" : "Appwrite",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "8.0"
},
{
"name" : "tvos",
"version" : "15.0"
}
],
"products" : [
{
"name" : "Appwrite",
"targets" : [
"Appwrite",
"AppwriteEnums",
"AppwriteModels",
"JSONCodable"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "JSONCodable",
"module_type" : "SwiftTarget",
"name" : "JSONCodable",
"path" : "Sources/JSONCodable",
"product_memberships" : [
"Appwrite"
],
"sources" : [
"Codable+JSON.swift"
],
"type" : "library"
},
{
"c99name" : "AppwriteTests",
"module_type" : "SwiftTarget",
"name" : "AppwriteTests",
"path" : "Tests/AppwriteTests",
"product_dependencies" : [
"NIOCore",
"NIOEmbedded",
"NIOWebSocket"
],
"sources" : [
"MessageHandlerTests.swift",
"PushTests.swift",
"Tests.swift",
"WebAuthComponentTests.swift"
],
"target_dependencies" : [
"Appwrite"
],
"type" : "test"
},
{
"c99name" : "AppwriteModels",
"module_type" : "SwiftTarget",
"name" : "AppwriteModels",
"path" : "Sources/AppwriteModels",
"product_memberships" : [
"Appwrite"
],
"sources" : [
"Account.swift",
"AlgoArgon2.swift",
"AlgoBcrypt.swift",
"AlgoMd5.swift",
"AlgoPhpass.swift",
"AlgoScrypt.swift",
"AlgoScryptModified.swift",
"AlgoSha.swift",
"App.swift",
"AppInstallation.swift",
"AppInstallationList.swift",
"AppKey.swift",
"AppKeyList.swift",
"AppScope.swift",
"AppScopeList.swift",
"AppSecret.swift",
"AppSecretList.swift",
"AppSecretPlaintext.swift",
"AppsList.swift",
"Continent.swift",
"ContinentList.swift",
"Country.swift",
"CountryList.swift",
"Currency.swift",
"CurrencyList.swift",
"Document.swift",
"DocumentList.swift",
"Execution.swift",
"ExecutionList.swift",
"File.swift",
"FileList.swift",
"Headers.swift",
"Identity.swift",
"IdentityList.swift",
"Jwt.swift",
"Language.swift",
"LanguageList.swift",
"Locale.swift",
"LocaleCode.swift",
"LocaleCodeList.swift",
"Membership.swift",
"MembershipList.swift",
"MfaChallenge.swift",
"MfaFactors.swift",
"MfaRecoveryCodes.swift",
"MfaType.swift",
"Oauth2Approve.swift",
"Oauth2Authorize.swift",
"Oauth2Consent.swift",
"Oauth2ConsentList.swift",
"Oauth2ConsentToken.swift",
"Oauth2ConsentTokenList.swift",
"Oauth2DeviceAuthorization.swift",
"Oauth2Grant.swift",
"Oauth2Organization.swift",
"Oauth2OrganizationList.swift",
"Oauth2PAR.swift",
"Oauth2Project.swift",
"Oauth2ProjectList.swift",
"Oauth2Reject.swift",
"Oauth2Token.swift",
"Passkey.swift",
"PasskeyChallenge.swift",
"PasskeyList.swift",
"Phone.swift",
"PhoneList.swift",
"Preferences.swift",
"Presence.swift",
"PresenceList.swift",
"Row.swift",
"RowList.swift",
"Session.swift",
"SessionList.swift",
"Subscriber.swift",
"Target.swift",
"Team.swift",
"TeamList.swift",
"Token.swift",
"TokenSecret.swift",
"Transaction.swift",
"TransactionList.swift",
"User.swift"
],
"target_dependencies" : [
"AppwriteEnums",
"JSONCodable"
],
"type" : "library"
},
{
"c99name" : "AppwriteEnums",
"module_type" : "SwiftTarget",
"name" : "AppwriteEnums",
"path" : "Sources/AppwriteEnums",
"product_memberships" : [
"Appwrite"
],
"sources" : [
"AuthenticationFactor.swift",
"AuthenticatorType.swift",
"Browser.swift",
"BrowserPermission.swift",
"BrowserTheme.swift",
"CreditCard.swift",
"ExecutionMethod.swift",
"ExecutionResourceType.swift",
"ExecutionStatus.swift",
"ExecutionTrigger.swift",
"Flag.swift",
"IdTokenProvider.swift",
"ImageFormat.swift",
"ImageGravity.swift",
"OAuthProvider.swift",
"Timezone.swift"
],
"type" : "library"
},
{
"c99name" : "Appwrite",
"module_type" : "SwiftTarget",
"name" : "Appwrite",
"path" : "Sources/Appwrite",
"product_dependencies" : [
"AsyncHTTPClient",
"NIOWebSocket",
"NIOCore",
"MQTTNIO"
],
"product_memberships" : [
"Appwrite"
],
"sources" : [
"Channel.swift",
"Client.swift",
"DeviceInfo/Linux/LinuxDeviceInfo.swift",
"DeviceInfo/OSDeviceInfo.swift",
"DeviceInfo/Windows/WindowsDeviceInfo.swift",
"DeviceInfo/iOS/IOSDeviceInfo.swift",
"DeviceInfo/iOS/UIDevice+ModelName.swift",
"DeviceInfo/macOS/CwlSysCtl.swift",
"DeviceInfo/macOS/MacOSDeviceInfo.swift",
"DeviceInfo/watchOS/WKInterfaceDevice+ModelName.swift",
"DeviceInfo/watchOS/WatchOSDeviceInfo.swift",
"Extensions/Cookie+Codable.swift",
"Extensions/HTTPClientRequest+Cookies.swift",
"Extensions/String+MimeTypes.swift",
"ID.swift",
"Models/AppwriteError.swift",
"Models/InputFile.swift",
"Models/RealtimeModels.swift",
"Models/UploadProgress.swift",
"OAuth/View+OAuth.swift",
"OAuth/WebAuthComponent.swift",
"Operator.swift",
"PackageInfo/Apple/PackageInfo+Apple.swift",
"PackageInfo/Linux/PackageInfo+Linux.swift",
"PackageInfo/OSPackageInfo.swift",
"PackageInfo/PackageInfo.swift",
"PackageInfo/Windows/PackageInfo+Windows.swift",
"Permission.swift",
"Query.swift",
"Query/Builder.swift",
"Role.swift",
"Services/Account.swift",
"Services/Analytics.swift",
"Services/Apps.swift",
"Services/Avatars.swift",
"Services/Databases.swift",
"Services/DocumentsDB.swift",
"Services/Functions.swift",
"Services/Graphql.swift",
"Services/Locale.swift",
"Services/Messaging.swift",
"Services/Oauth2.swift",
"Services/Organization.swift",
"Services/Presences.swift",
"Services/Push.swift",
"Services/PushServiceExtension.swift",
"Services/Realtime.swift",
"Services/Service.swift",
"Services/Storage.swift",
"Services/TablesDB.swift",
"Services/Teams.swift",
"Services/VectorsDB.swift",
"StreamingDelegate.swift",
"Topic.swift",
"WebSockets/HTTPHandler.swift",
"WebSockets/MessageHandler.swift",
"WebSockets/WebSocketClient.swift",
"WebSockets/WebSocketClientDelegate.swift",
"WebSockets/WebSocketClientError.swift"
],
"target_dependencies" : [
"AppwriteModels",
"AppwriteEnums",
"JSONCodable"
],
"type" : "library"
}
],
"tools_version" : "6.1"
}
linux-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:b6bfb4c5da2c5a0e111d7eb0c087cb4f5887cce9a34b7779faa557952c747cfc
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:linux-6.1-latest
warning: 'spi-builder-workspace': /host/spi-builder-workspace/Package.swift:5:15: warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
3 | import PackageDescription
4 |
5 | let package = Package(
| |- warning: 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageVersions:cLanguageStandard:cxxLanguageStandard:)' is deprecated: replaced by 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)'
| `- note: use 'init(name:defaultLocalization:platforms:pkgConfig:providers:products:dependencies:targets:swiftLanguageModes:cLanguageStandard:cxxLanguageStandard:)' instead
6 | name: "Appwrite",
7 | platforms: [
Done.