Build Information
Successful build of Netto, reference main (b069b1), with Swift 6.1 for macOS (SPM) on 16 Jul 2026 05:34:55 UTC.
Swift 6 data race errors: 3
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Wassimbouabid/Netto.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Wassimbouabid/Netto
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at b069b1d add: Netto logo asset
Cloned https://github.com/Wassimbouabid/Netto.git
Revision (git rev-parse @):
b069b1dcea1b7abe31ccf01d92239ded1f04a528
SUCCESS checkout https://github.com/Wassimbouabid/Netto.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/Wassimbouabid/Netto.git
https://github.com/Wassimbouabid/Netto.git
{
"dependencies" : [
{
"identity" : "alamofire",
"requirement" : {
"range" : [
{
"lower_bound" : "5.9.0",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Alamofire/Alamofire.git"
},
{
"identity" : "cocoalumberjack",
"requirement" : {
"range" : [
{
"lower_bound" : "3.8.0",
"upper_bound" : "4.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/CocoaLumberjack/CocoaLumberjack.git"
}
],
"manifest_display_name" : "Netto",
"name" : "Netto",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "macos",
"version" : "13.0"
}
],
"products" : [
{
"name" : "Netto",
"targets" : [
"Netto"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "NettoTests",
"module_type" : "SwiftTarget",
"name" : "NettoTests",
"path" : "LibraryCore/Netto/Tests/NettoTests",
"product_dependencies" : [
"Alamofire"
],
"sources" : [
"DefaultErrorResponseParserTests.swift",
"DefaultNetworkErrorHandlerTests.swift",
"DefaultResponseHandlerTests.swift",
"DomainServiceTests.swift",
"NetworkErrorTests.swift",
"PreRequestHandlerTests.swift",
"RequestModelsTests.swift",
"RobustJSONDecoderTests.swift",
"TestDoubles.swift"
],
"target_dependencies" : [
"Netto"
],
"type" : "test"
},
{
"c99name" : "Netto",
"module_type" : "SwiftTarget",
"name" : "Netto",
"path" : "LibraryCore/Netto/Sources/Netto",
"product_dependencies" : [
"Alamofire",
"CocoaLumberjackSwift"
],
"product_memberships" : [
"Netto"
],
"sources" : [
"Builder/MediaServiceBuilder.swift",
"Builder/NetworkServiceBuilder.swift",
"Builder/NetworkingContainer.swift",
"Decoder/RobustJSONDecoder.swift",
"Error/DefaultNetworkErrorHandler.swift",
"Error/ErrorResponseParser.swift",
"Error/NetworkError.swift",
"Error/NetworkErrorHandler.swift",
"Logger/DefaultNetworkLogger.swift",
"Logger/NetworkLogger.swift",
"Media/MediaDownloadRequest.swift",
"Media/MediaDownloadResult.swift",
"Media/MediaDownloadService.swift",
"Media/MediaDownloadServiceImpl.swift",
"Netto.swift",
"Network Manager/NetworkManager.swift",
"Network Manager/NetworkService.swift",
"Network Manager/NetworkSessionConfiguration.swift",
"Network Manager/NetworkTimeouts.swift",
"Network Monitor/ConnectivityListener.swift",
"Network Monitor/DefaultNetworkMonitor.swift",
"Network Monitor/NetworkMonitor.swift",
"PreRequest/PreRequestHandler.swift",
"PreRequest/PreRequestHandlerImpl.swift",
"Request/APIEndpoint.swift",
"Request/APIRequest.swift",
"Request/DomainService.swift",
"Request/ServiceContext.swift",
"Response/DefaultResponseHandler.swift",
"Response/NetworkResponse.swift",
"Response/ResponseHandler.swift",
"Storage/KeychainTokenStorage.swift",
"Storage/TokenStorage.swift",
"Utils/Alamofire+Utils.swift",
"Utils/Encodable+toDictionary.swift",
"Utils/ParameterEncoding+multipart.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/22] Copying PrivacyInfo.xcprivacy
[1/22] Write sources
[3/22] Copying PrivacyInfo.xcprivacy
[4/22] Write sources
[5/22] Write swift-version-2F0A5646E1D333AE.txt
[6/22] Compiling CocoaLumberjackSwiftSupport empty.c
[7/63] Compiling DDMultiFormatter.m
[8/63] Compiling DDContextFilterLogFormatter+Deprecated.m
[9/63] Compiling DDFileLogger+Buffering.m
[10/63] Compiling CocoaLumberjack resource_bundle_accessor.m
[11/63] Compiling CocoaLumberjack DDLoggerNames.m
[12/63] Compiling DDContextFilterLogFormatter.m
[13/63] Compiling CocoaLumberjack DDAbstractDatabaseLogger.m
[14/63] Compiling CocoaLumberjack DDOSLogger.m
[15/63] Compiling CocoaLumberjack DDFileLogger.m
[16/63] Compiling CocoaLumberjack DDASLLogCapture.m
[17/63] Compiling CocoaLumberjack DDASLLogger.m
[18/63] Compiling DDDispatchQueueLogFormatter.m
[19/63] Compiling CLIColor.m
[21/63] Emitting module Alamofire
[21/67] Compiling CocoaLumberjack DDTTYLogger.m
[22/67] Compiling CocoaLumberjack DDLog.m
[24/75] Compiling Alamofire RequestCompression.swift
[25/75] Compiling Alamofire RequestInterceptor.swift
[26/75] Compiling Alamofire ResponseSerialization.swift
[27/75] Compiling Alamofire RetryPolicy.swift
[28/75] Compiling Alamofire SessionDelegate.swift
[29/75] Compiling Alamofire URLConvertible+URLRequestConvertible.swift
[30/75] Compiling Alamofire UploadRequest.swift
[31/75] Compiling Alamofire WebSocketRequest.swift
[32/75] Compiling Alamofire DispatchQueue+Alamofire.swift
[33/75] Compiling Alamofire ServerTrustEvaluation.swift
[34/75] Compiling Alamofire URLEncodedFormEncoder.swift
[35/75] Compiling Alamofire Validation.swift
[36/75] Compiling Alamofire resource_bundle_accessor.swift
[37/75] Compiling Alamofire OperationQueue+Alamofire.swift
[38/75] Compiling Alamofire Result+Alamofire.swift
[39/75] Compiling Alamofire StringEncoding+Alamofire.swift
[40/75] Compiling Alamofire URLRequest+Alamofire.swift
[41/75] Compiling Alamofire Protected.swift
[42/75] Compiling Alamofire Request.swift
[43/75] Compiling Alamofire RequestTaskMap.swift
[44/75] Compiling Alamofire Response.swift
[45/75] Compiling Alamofire Session.swift
[46/75] Compiling Alamofire Alamofire.swift
[47/75] Compiling Alamofire AFError.swift
[48/75] Compiling Alamofire DataRequest.swift
[49/75] Compiling Alamofire DataStreamRequest.swift
[50/75] Compiling Alamofire DownloadRequest.swift
[51/75] Compiling Alamofire HTTPHeaders.swift
[52/75] Compiling Alamofire HTTPMethod.swift
[53/75] Compiling Alamofire Notifications.swift
[54/75] Compiling Alamofire ParameterEncoder.swift
[55/75] Compiling Alamofire ParameterEncoding.swift
[56/75] Compiling Alamofire MultipartUpload.swift
[57/75] Compiling Alamofire NetworkReachabilityManager.swift
[58/75] Compiling Alamofire OfflineRetrier.swift
[59/75] Compiling Alamofire RedirectHandler.swift
[60/75] Compiling Alamofire Combine.swift
[61/75] Compiling Alamofire Concurrency.swift
[62/75] Compiling Alamofire EventMonitor.swift
[63/75] Compiling Alamofire MultipartFormData.swift
[64/75] Compiling Alamofire URLSessionConfiguration+Alamofire.swift
[65/75] Compiling Alamofire AlamofireExtended.swift
[66/75] Compiling Alamofire AuthenticationInterceptor.swift
[67/75] Compiling Alamofire CachedResponseHandler.swift
[68/75] Compiling CocoaLumberjackSwift DDLog+Combine.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[69/75] Compiling CocoaLumberjackSwift DDLogFlag+DDLogLevel.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[70/75] Compiling CocoaLumberjackSwift DDAssert.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[71/75] Compiling CocoaLumberjackSwift CurrentFileNameHelper.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[72/75] Compiling CocoaLumberjackSwift CocoaLumberjack.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[73/75] Emitting module CocoaLumberjackSwift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[74/75] Compiling CocoaLumberjackSwift DDLogMessageFormat.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[75/75] Compiling CocoaLumberjackSwift ConfigurationGlobals.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[76/109] Emitting module Netto
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/NetworkingContainer.swift:53:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkContainer' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// }
48 | /// ```
49 | public final class NetworkContainer {
| `- note: class 'NetworkContainer' does not conform to the 'Sendable' protocol
50 |
51 | // MARK: - Shared Instance
52 |
53 | public static let shared = NetworkContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | private init() {}
55 |
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Decoder/RobustJSONDecoder.swift:92:14: warning: class 'RobustJSONDecoder' must restate inherited '@unchecked Sendable' conformance
90 |
91 | /// A decoder that doesn't crash on typical JSON decoding errors
92 | public class RobustJSONDecoder: JSONDecoder {
| `- warning: class 'RobustJSONDecoder' must restate inherited '@unchecked Sendable' conformance
93 | override public func decode<T>(_ type: T.Type, from data: Data) throws -> T where T : Decodable {
94 | do {
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/PreRequest/PreRequestHandlerImpl.swift:28:10: warning: non-sendable parameter type 'APIRequest' cannot be sent from caller of protocol requirement 'prepare' into actor-isolated implementation; this is an error in the Swift 6 language mode
26 | // MARK: - PreRequestHandler
27 |
28 | func prepare(_ request: inout APIRequest) async throws {
| `- warning: non-sendable parameter type 'APIRequest' cannot be sent from caller of protocol requirement 'prepare' into actor-isolated implementation; this is an error in the Swift 6 language mode
29 | let accessToken = try await fetchValidAccessToken()
30 |
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Request/APIRequest.swift:70:15: note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
68 | /// Passed directly to `NetworkLogger` methods so custom loggers have access to the
69 | /// complete request context (method, URL, headers, parameters, timeout, encoding).
70 | public struct APIRequest {
| `- note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
71 | public let url: String
72 | public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Storage/KeychainTokenStorage.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'KeychainTokenStorage' may have shared mutable state; this is an error in the Swift 6 language mode
26 | /// Override it or provide a completely custom storage via
27 | /// `NetworkServiceBuilder.withTokenStorage(_:)`.
28 | public final class KeychainTokenStorage: TokenStorage {
| `- note: class 'KeychainTokenStorage' does not conform to the 'Sendable' protocol
29 |
30 | // MARK: - Shared Instance
31 |
32 | /// Convenience singleton using the bundle ID as namespace.
33 | public static let shared = KeychainTokenStorage()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'KeychainTokenStorage' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
34 |
35 | // MARK: - Configuration
[77/112] Compiling Netto MediaServiceBuilder.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/NetworkingContainer.swift:53:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkContainer' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// }
48 | /// ```
49 | public final class NetworkContainer {
| `- note: class 'NetworkContainer' does not conform to the 'Sendable' protocol
50 |
51 | // MARK: - Shared Instance
52 |
53 | public static let shared = NetworkContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | private init() {}
55 |
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Decoder/RobustJSONDecoder.swift:92:14: warning: class 'RobustJSONDecoder' must restate inherited '@unchecked Sendable' conformance
90 |
91 | /// A decoder that doesn't crash on typical JSON decoding errors
92 | public class RobustJSONDecoder: JSONDecoder {
| `- warning: class 'RobustJSONDecoder' must restate inherited '@unchecked Sendable' conformance
93 | override public func decode<T>(_ type: T.Type, from data: Data) throws -> T where T : Decodable {
94 | do {
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/MediaServiceBuilder.swift:90:15: warning: sending value of non-Sendable type 'any TokenStorage' risks causing data races; this is an error in the Swift 6 language mode
88 | public func build() -> any MediaDownloadService {
89 | let preRequestHandler: (any PreRequestHandler)? = tokenRefreshProvider != nil || tokenStorage != nil
90 | ? PreRequestHandlerImpl(
| |- warning: sending value of non-Sendable type 'any TokenStorage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'any TokenStorage' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
91 | tokenStorage: tokenStorage ?? KeychainTokenStorage.shared,
92 | refreshProvider: tokenRefreshProvider
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/NetworkServiceBuilder.swift:195:33: warning: sending 'storage' risks causing data races; this is an error in the Swift 6 language mode
193 | decoder: customDecoder ?? JSONDecoder()
194 | )
195 | let preRequestHandler = PreRequestHandlerImpl(
| |- warning: sending 'storage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'storage' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
196 | tokenStorage: storage,
197 | refreshProvider: tokenRefreshProvider
[78/112] Compiling Netto NetworkServiceBuilder.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/NetworkingContainer.swift:53:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkContainer' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// }
48 | /// ```
49 | public final class NetworkContainer {
| `- note: class 'NetworkContainer' does not conform to the 'Sendable' protocol
50 |
51 | // MARK: - Shared Instance
52 |
53 | public static let shared = NetworkContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | private init() {}
55 |
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Decoder/RobustJSONDecoder.swift:92:14: warning: class 'RobustJSONDecoder' must restate inherited '@unchecked Sendable' conformance
90 |
91 | /// A decoder that doesn't crash on typical JSON decoding errors
92 | public class RobustJSONDecoder: JSONDecoder {
| `- warning: class 'RobustJSONDecoder' must restate inherited '@unchecked Sendable' conformance
93 | override public func decode<T>(_ type: T.Type, from data: Data) throws -> T where T : Decodable {
94 | do {
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/MediaServiceBuilder.swift:90:15: warning: sending value of non-Sendable type 'any TokenStorage' risks causing data races; this is an error in the Swift 6 language mode
88 | public func build() -> any MediaDownloadService {
89 | let preRequestHandler: (any PreRequestHandler)? = tokenRefreshProvider != nil || tokenStorage != nil
90 | ? PreRequestHandlerImpl(
| |- warning: sending value of non-Sendable type 'any TokenStorage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'any TokenStorage' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
91 | tokenStorage: tokenStorage ?? KeychainTokenStorage.shared,
92 | refreshProvider: tokenRefreshProvider
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/NetworkServiceBuilder.swift:195:33: warning: sending 'storage' risks causing data races; this is an error in the Swift 6 language mode
193 | decoder: customDecoder ?? JSONDecoder()
194 | )
195 | let preRequestHandler = PreRequestHandlerImpl(
| |- warning: sending 'storage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'storage' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
196 | tokenStorage: storage,
197 | refreshProvider: tokenRefreshProvider
[79/112] Compiling Netto NetworkingContainer.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/NetworkingContainer.swift:53:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkContainer' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// }
48 | /// ```
49 | public final class NetworkContainer {
| `- note: class 'NetworkContainer' does not conform to the 'Sendable' protocol
50 |
51 | // MARK: - Shared Instance
52 |
53 | public static let shared = NetworkContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | private init() {}
55 |
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Decoder/RobustJSONDecoder.swift:92:14: warning: class 'RobustJSONDecoder' must restate inherited '@unchecked Sendable' conformance
90 |
91 | /// A decoder that doesn't crash on typical JSON decoding errors
92 | public class RobustJSONDecoder: JSONDecoder {
| `- warning: class 'RobustJSONDecoder' must restate inherited '@unchecked Sendable' conformance
93 | override public func decode<T>(_ type: T.Type, from data: Data) throws -> T where T : Decodable {
94 | do {
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/MediaServiceBuilder.swift:90:15: warning: sending value of non-Sendable type 'any TokenStorage' risks causing data races; this is an error in the Swift 6 language mode
88 | public func build() -> any MediaDownloadService {
89 | let preRequestHandler: (any PreRequestHandler)? = tokenRefreshProvider != nil || tokenStorage != nil
90 | ? PreRequestHandlerImpl(
| |- warning: sending value of non-Sendable type 'any TokenStorage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'any TokenStorage' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
91 | tokenStorage: tokenStorage ?? KeychainTokenStorage.shared,
92 | refreshProvider: tokenRefreshProvider
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/NetworkServiceBuilder.swift:195:33: warning: sending 'storage' risks causing data races; this is an error in the Swift 6 language mode
193 | decoder: customDecoder ?? JSONDecoder()
194 | )
195 | let preRequestHandler = PreRequestHandlerImpl(
| |- warning: sending 'storage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'storage' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
196 | tokenStorage: storage,
197 | refreshProvider: tokenRefreshProvider
[80/112] Compiling Netto RobustJSONDecoder.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/NetworkingContainer.swift:53:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkContainer' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// }
48 | /// ```
49 | public final class NetworkContainer {
| `- note: class 'NetworkContainer' does not conform to the 'Sendable' protocol
50 |
51 | // MARK: - Shared Instance
52 |
53 | public static let shared = NetworkContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | private init() {}
55 |
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Decoder/RobustJSONDecoder.swift:92:14: warning: class 'RobustJSONDecoder' must restate inherited '@unchecked Sendable' conformance
90 |
91 | /// A decoder that doesn't crash on typical JSON decoding errors
92 | public class RobustJSONDecoder: JSONDecoder {
| `- warning: class 'RobustJSONDecoder' must restate inherited '@unchecked Sendable' conformance
93 | override public func decode<T>(_ type: T.Type, from data: Data) throws -> T where T : Decodable {
94 | do {
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/MediaServiceBuilder.swift:90:15: warning: sending value of non-Sendable type 'any TokenStorage' risks causing data races; this is an error in the Swift 6 language mode
88 | public func build() -> any MediaDownloadService {
89 | let preRequestHandler: (any PreRequestHandler)? = tokenRefreshProvider != nil || tokenStorage != nil
90 | ? PreRequestHandlerImpl(
| |- warning: sending value of non-Sendable type 'any TokenStorage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'any TokenStorage' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
91 | tokenStorage: tokenStorage ?? KeychainTokenStorage.shared,
92 | refreshProvider: tokenRefreshProvider
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Builder/NetworkServiceBuilder.swift:195:33: warning: sending 'storage' risks causing data races; this is an error in the Swift 6 language mode
193 | decoder: customDecoder ?? JSONDecoder()
194 | )
195 | let preRequestHandler = PreRequestHandlerImpl(
| |- warning: sending 'storage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'storage' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
196 | tokenStorage: storage,
197 | refreshProvider: tokenRefreshProvider
[81/112] Compiling Netto ServiceContext.swift
[82/112] Compiling Netto DefaultResponseHandler.swift
[83/112] Compiling Netto NetworkResponse.swift
[84/112] Compiling Netto DefaultNetworkMonitor.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Monitor/DefaultNetworkMonitor.swift:110:30: warning: capture of 'self' with non-sendable type 'DefaultNetworkMonitor?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
14 | /// This class monitors the device's network connectivity using `NWPathMonitor`
15 | /// and provides real-time updates about connectivity changes.
16 | final class DefaultNetworkMonitor: NetworkMonitor {
| `- note: class 'DefaultNetworkMonitor' does not conform to the 'Sendable' protocol
17 | /// The dispatch queue used for monitoring network changes.
18 | private let monitorQueue = DispatchQueue(label: "com.app.network.monitor", qos: .background)
:
108 | func setupMonitor() {
109 | pathMonitor.pathUpdateHandler = { [weak self] path in
110 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'DefaultNetworkMonitor?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
111 |
112 | // update the connection status based on the path
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/PreRequest/PreRequestHandlerImpl.swift:28:10: warning: non-sendable parameter type 'APIRequest' cannot be sent from caller of protocol requirement 'prepare' into actor-isolated implementation; this is an error in the Swift 6 language mode
26 | // MARK: - PreRequestHandler
27 |
28 | func prepare(_ request: inout APIRequest) async throws {
| `- warning: non-sendable parameter type 'APIRequest' cannot be sent from caller of protocol requirement 'prepare' into actor-isolated implementation; this is an error in the Swift 6 language mode
29 | let accessToken = try await fetchValidAccessToken()
30 |
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Request/APIRequest.swift:70:15: note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
68 | /// Passed directly to `NetworkLogger` methods so custom loggers have access to the
69 | /// complete request context (method, URL, headers, parameters, timeout, encoding).
70 | public struct APIRequest {
| `- note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
71 | public let url: String
72 | public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Monitor/DefaultNetworkMonitor.swift:157:33: warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
155 | // notify on the main queue as handlers likely update UI
156 | DispatchQueue.main.async { [isConnected] in
157 | for (_, handler) in handlers {
| |- warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'handlers' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | handler(isConnected)
159 | }
[85/112] Compiling Netto NetworkMonitor.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Monitor/DefaultNetworkMonitor.swift:110:30: warning: capture of 'self' with non-sendable type 'DefaultNetworkMonitor?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
14 | /// This class monitors the device's network connectivity using `NWPathMonitor`
15 | /// and provides real-time updates about connectivity changes.
16 | final class DefaultNetworkMonitor: NetworkMonitor {
| `- note: class 'DefaultNetworkMonitor' does not conform to the 'Sendable' protocol
17 | /// The dispatch queue used for monitoring network changes.
18 | private let monitorQueue = DispatchQueue(label: "com.app.network.monitor", qos: .background)
:
108 | func setupMonitor() {
109 | pathMonitor.pathUpdateHandler = { [weak self] path in
110 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'DefaultNetworkMonitor?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
111 |
112 | // update the connection status based on the path
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/PreRequest/PreRequestHandlerImpl.swift:28:10: warning: non-sendable parameter type 'APIRequest' cannot be sent from caller of protocol requirement 'prepare' into actor-isolated implementation; this is an error in the Swift 6 language mode
26 | // MARK: - PreRequestHandler
27 |
28 | func prepare(_ request: inout APIRequest) async throws {
| `- warning: non-sendable parameter type 'APIRequest' cannot be sent from caller of protocol requirement 'prepare' into actor-isolated implementation; this is an error in the Swift 6 language mode
29 | let accessToken = try await fetchValidAccessToken()
30 |
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Request/APIRequest.swift:70:15: note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
68 | /// Passed directly to `NetworkLogger` methods so custom loggers have access to the
69 | /// complete request context (method, URL, headers, parameters, timeout, encoding).
70 | public struct APIRequest {
| `- note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
71 | public let url: String
72 | public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Monitor/DefaultNetworkMonitor.swift:157:33: warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
155 | // notify on the main queue as handlers likely update UI
156 | DispatchQueue.main.async { [isConnected] in
157 | for (_, handler) in handlers {
| |- warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'handlers' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | handler(isConnected)
159 | }
[86/112] Compiling Netto PreRequestHandler.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Monitor/DefaultNetworkMonitor.swift:110:30: warning: capture of 'self' with non-sendable type 'DefaultNetworkMonitor?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
14 | /// This class monitors the device's network connectivity using `NWPathMonitor`
15 | /// and provides real-time updates about connectivity changes.
16 | final class DefaultNetworkMonitor: NetworkMonitor {
| `- note: class 'DefaultNetworkMonitor' does not conform to the 'Sendable' protocol
17 | /// The dispatch queue used for monitoring network changes.
18 | private let monitorQueue = DispatchQueue(label: "com.app.network.monitor", qos: .background)
:
108 | func setupMonitor() {
109 | pathMonitor.pathUpdateHandler = { [weak self] path in
110 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'DefaultNetworkMonitor?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
111 |
112 | // update the connection status based on the path
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/PreRequest/PreRequestHandlerImpl.swift:28:10: warning: non-sendable parameter type 'APIRequest' cannot be sent from caller of protocol requirement 'prepare' into actor-isolated implementation; this is an error in the Swift 6 language mode
26 | // MARK: - PreRequestHandler
27 |
28 | func prepare(_ request: inout APIRequest) async throws {
| `- warning: non-sendable parameter type 'APIRequest' cannot be sent from caller of protocol requirement 'prepare' into actor-isolated implementation; this is an error in the Swift 6 language mode
29 | let accessToken = try await fetchValidAccessToken()
30 |
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Request/APIRequest.swift:70:15: note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
68 | /// Passed directly to `NetworkLogger` methods so custom loggers have access to the
69 | /// complete request context (method, URL, headers, parameters, timeout, encoding).
70 | public struct APIRequest {
| `- note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
71 | public let url: String
72 | public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Monitor/DefaultNetworkMonitor.swift:157:33: warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
155 | // notify on the main queue as handlers likely update UI
156 | DispatchQueue.main.async { [isConnected] in
157 | for (_, handler) in handlers {
| |- warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'handlers' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | handler(isConnected)
159 | }
[87/112] Compiling Netto PreRequestHandlerImpl.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Monitor/DefaultNetworkMonitor.swift:110:30: warning: capture of 'self' with non-sendable type 'DefaultNetworkMonitor?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
14 | /// This class monitors the device's network connectivity using `NWPathMonitor`
15 | /// and provides real-time updates about connectivity changes.
16 | final class DefaultNetworkMonitor: NetworkMonitor {
| `- note: class 'DefaultNetworkMonitor' does not conform to the 'Sendable' protocol
17 | /// The dispatch queue used for monitoring network changes.
18 | private let monitorQueue = DispatchQueue(label: "com.app.network.monitor", qos: .background)
:
108 | func setupMonitor() {
109 | pathMonitor.pathUpdateHandler = { [weak self] path in
110 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'DefaultNetworkMonitor?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
111 |
112 | // update the connection status based on the path
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/PreRequest/PreRequestHandlerImpl.swift:28:10: warning: non-sendable parameter type 'APIRequest' cannot be sent from caller of protocol requirement 'prepare' into actor-isolated implementation; this is an error in the Swift 6 language mode
26 | // MARK: - PreRequestHandler
27 |
28 | func prepare(_ request: inout APIRequest) async throws {
| `- warning: non-sendable parameter type 'APIRequest' cannot be sent from caller of protocol requirement 'prepare' into actor-isolated implementation; this is an error in the Swift 6 language mode
29 | let accessToken = try await fetchValidAccessToken()
30 |
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Request/APIRequest.swift:70:15: note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
68 | /// Passed directly to `NetworkLogger` methods so custom loggers have access to the
69 | /// complete request context (method, URL, headers, parameters, timeout, encoding).
70 | public struct APIRequest {
| `- note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
71 | public let url: String
72 | public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Monitor/DefaultNetworkMonitor.swift:157:33: warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
155 | // notify on the main queue as handlers likely update UI
156 | DispatchQueue.main.async { [isConnected] in
157 | for (_, handler) in handlers {
| |- warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'handlers' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | handler(isConnected)
159 | }
[88/112] Compiling Netto APIEndpoint.swift
[89/112] Compiling Netto APIRequest.swift
[90/112] Compiling Netto DomainService.swift
[91/112] Compiling Netto DefaultNetworkLogger.swift
[92/112] Compiling Netto NetworkLogger.swift
[93/112] Compiling Netto MediaDownloadRequest.swift
[94/112] Compiling Netto MediaDownloadResult.swift
[95/112] Compiling Netto Alamofire+Utils.swift
[96/112] Compiling Netto Encodable+toDictionary.swift
[97/112] Compiling Netto ParameterEncoding+multipart.swift
[98/112] Compiling Netto DefaultNetworkErrorHandler.swift
[99/112] Compiling Netto ErrorResponseParser.swift
[100/112] Compiling Netto NetworkError.swift
[101/112] Compiling Netto NetworkErrorHandler.swift
[102/112] Compiling Netto NetworkService.swift
[103/112] Compiling Netto NetworkSessionConfiguration.swift
[104/112] Compiling Netto NetworkTimeouts.swift
[105/112] Compiling Netto ConnectivityListener.swift
[106/112] Compiling Netto MediaDownloadService.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:19: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:19: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:87: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:87: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:27: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [weak self] in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
69 | guard let self else {
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:27: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [weak self] in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
69 | guard let self else {
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:192:40: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 | url,
191 | method: apiRequest.method.toAlamofire(),
192 | parameters: apiRequest.parameters,
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
193 | encoding: apiRequest.encoding.toAlamofire(),
194 | headers: headers,
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:202:36: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
200 | url,
201 | method: apiRequest.method.toAlamofire(),
202 | parameters: apiRequest.parameters,
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
203 | encoding: apiRequest.encoding.toAlamofire(),
204 | headers: headers
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:179:25: warning: capture of 'customEncoder' with non-sendable type '(inout URLRequest) throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
177 | headers: headers,
178 | requestModifier: { urlRequest in
179 | try customEncoder(&urlRequest)
| |- warning: capture of 'customEncoder' with non-sendable type '(inout URLRequest) throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
180 | if let timeout = apiRequest.timeout {
181 | urlRequest.timeoutInterval = timeout
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:180:38: warning: capture of 'apiRequest' with non-sendable type 'APIRequest' in a '@Sendable' closure; this is an error in the Swift 6 language mode
178 | requestModifier: { urlRequest in
179 | try customEncoder(&urlRequest)
180 | if let timeout = apiRequest.timeout {
| `- warning: capture of 'apiRequest' with non-sendable type 'APIRequest' in a '@Sendable' closure; this is an error in the Swift 6 language mode
181 | urlRequest.timeoutInterval = timeout
182 | }
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Request/APIRequest.swift:70:15: note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
68 | /// Passed directly to `NetworkLogger` methods so custom loggers have access to the
69 | /// complete request context (method, URL, headers, parameters, timeout, encoding).
70 | public struct APIRequest {
| `- note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
71 | public let url: String
72 | public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:35: 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
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [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
69 | guard let self else {
| `- note: closure captures non-Sendable 'self'
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
| `- note: closure captures non-Sendable 'request'
71 | }
72 | return (request, await self.downloadMedia(request))
[107/112] Compiling Netto MediaDownloadServiceImpl.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:19: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:19: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:87: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:87: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:27: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [weak self] in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
69 | guard let self else {
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:27: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [weak self] in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
69 | guard let self else {
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:192:40: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 | url,
191 | method: apiRequest.method.toAlamofire(),
192 | parameters: apiRequest.parameters,
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
193 | encoding: apiRequest.encoding.toAlamofire(),
194 | headers: headers,
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:202:36: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
200 | url,
201 | method: apiRequest.method.toAlamofire(),
202 | parameters: apiRequest.parameters,
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
203 | encoding: apiRequest.encoding.toAlamofire(),
204 | headers: headers
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:179:25: warning: capture of 'customEncoder' with non-sendable type '(inout URLRequest) throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
177 | headers: headers,
178 | requestModifier: { urlRequest in
179 | try customEncoder(&urlRequest)
| |- warning: capture of 'customEncoder' with non-sendable type '(inout URLRequest) throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
180 | if let timeout = apiRequest.timeout {
181 | urlRequest.timeoutInterval = timeout
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:180:38: warning: capture of 'apiRequest' with non-sendable type 'APIRequest' in a '@Sendable' closure; this is an error in the Swift 6 language mode
178 | requestModifier: { urlRequest in
179 | try customEncoder(&urlRequest)
180 | if let timeout = apiRequest.timeout {
| `- warning: capture of 'apiRequest' with non-sendable type 'APIRequest' in a '@Sendable' closure; this is an error in the Swift 6 language mode
181 | urlRequest.timeoutInterval = timeout
182 | }
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Request/APIRequest.swift:70:15: note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
68 | /// Passed directly to `NetworkLogger` methods so custom loggers have access to the
69 | /// complete request context (method, URL, headers, parameters, timeout, encoding).
70 | public struct APIRequest {
| `- note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
71 | public let url: String
72 | public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:35: 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
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [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
69 | guard let self else {
| `- note: closure captures non-Sendable 'self'
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
| `- note: closure captures non-Sendable 'request'
71 | }
72 | return (request, await self.downloadMedia(request))
[108/112] Compiling Netto Netto.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:19: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:19: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:87: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:87: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:27: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [weak self] in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
69 | guard let self else {
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:27: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [weak self] in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
69 | guard let self else {
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:192:40: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 | url,
191 | method: apiRequest.method.toAlamofire(),
192 | parameters: apiRequest.parameters,
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
193 | encoding: apiRequest.encoding.toAlamofire(),
194 | headers: headers,
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:202:36: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
200 | url,
201 | method: apiRequest.method.toAlamofire(),
202 | parameters: apiRequest.parameters,
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
203 | encoding: apiRequest.encoding.toAlamofire(),
204 | headers: headers
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:179:25: warning: capture of 'customEncoder' with non-sendable type '(inout URLRequest) throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
177 | headers: headers,
178 | requestModifier: { urlRequest in
179 | try customEncoder(&urlRequest)
| |- warning: capture of 'customEncoder' with non-sendable type '(inout URLRequest) throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
180 | if let timeout = apiRequest.timeout {
181 | urlRequest.timeoutInterval = timeout
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:180:38: warning: capture of 'apiRequest' with non-sendable type 'APIRequest' in a '@Sendable' closure; this is an error in the Swift 6 language mode
178 | requestModifier: { urlRequest in
179 | try customEncoder(&urlRequest)
180 | if let timeout = apiRequest.timeout {
| `- warning: capture of 'apiRequest' with non-sendable type 'APIRequest' in a '@Sendable' closure; this is an error in the Swift 6 language mode
181 | urlRequest.timeoutInterval = timeout
182 | }
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Request/APIRequest.swift:70:15: note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
68 | /// Passed directly to `NetworkLogger` methods so custom loggers have access to the
69 | /// complete request context (method, URL, headers, parameters, timeout, encoding).
70 | public struct APIRequest {
| `- note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
71 | public let url: String
72 | public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:35: 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
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [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
69 | guard let self else {
| `- note: closure captures non-Sendable 'self'
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
| `- note: closure captures non-Sendable 'request'
71 | }
72 | return (request, await self.downloadMedia(request))
[109/112] Compiling Netto NetworkManager.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:19: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:19: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:87: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:66:87: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
64 |
65 | for batch in batches {
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
67 | for request in batch {
68 | group.addTask { [weak self] in
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:27: warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [weak self] in
| `- warning: type 'MediaDownloadRequest' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
69 | guard let self else {
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadRequest.swift:9:15: note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
7 |
8 | /// Generic media download request
9 | public struct MediaDownloadRequest: Hashable {
| `- note: consider making struct 'MediaDownloadRequest' conform to the 'Sendable' protocol
10 | public let id: String
11 | public let url: String
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:27: warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [weak self] in
| `- warning: type 'MediaDownloadResult' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
69 | guard let self else {
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadResult.swift:11:13: note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
9 |
10 | /// Result of a media download operation
11 | public enum MediaDownloadResult {
| `- note: consider making enum 'MediaDownloadResult' conform to the 'Sendable' protocol
12 | case success(data: Data)
13 | case failure(error: Error)
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:192:40: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 | url,
191 | method: apiRequest.method.toAlamofire(),
192 | parameters: apiRequest.parameters,
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
193 | encoding: apiRequest.encoding.toAlamofire(),
194 | headers: headers,
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:202:36: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
200 | url,
201 | method: apiRequest.method.toAlamofire(),
202 | parameters: apiRequest.parameters,
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
203 | encoding: apiRequest.encoding.toAlamofire(),
204 | headers: headers
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:179:25: warning: capture of 'customEncoder' with non-sendable type '(inout URLRequest) throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
177 | headers: headers,
178 | requestModifier: { urlRequest in
179 | try customEncoder(&urlRequest)
| |- warning: capture of 'customEncoder' with non-sendable type '(inout URLRequest) throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
180 | if let timeout = apiRequest.timeout {
181 | urlRequest.timeoutInterval = timeout
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Network Manager/NetworkManager.swift:180:38: warning: capture of 'apiRequest' with non-sendable type 'APIRequest' in a '@Sendable' closure; this is an error in the Swift 6 language mode
178 | requestModifier: { urlRequest in
179 | try customEncoder(&urlRequest)
180 | if let timeout = apiRequest.timeout {
| `- warning: capture of 'apiRequest' with non-sendable type 'APIRequest' in a '@Sendable' closure; this is an error in the Swift 6 language mode
181 | urlRequest.timeoutInterval = timeout
182 | }
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Request/APIRequest.swift:70:15: note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
68 | /// Passed directly to `NetworkLogger` methods so custom loggers have access to the
69 | /// complete request context (method, URL, headers, parameters, timeout, encoding).
70 | public struct APIRequest {
| `- note: consider making struct 'APIRequest' conform to the 'Sendable' protocol
71 | public let url: String
72 | public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Media/MediaDownloadServiceImpl.swift:68:35: 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
66 | await withTaskGroup(of: (MediaDownloadRequest, MediaDownloadResult).self) { group in
67 | for request in batch {
68 | group.addTask { [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
69 | guard let self else {
| `- note: closure captures non-Sendable 'self'
70 | return (request, .failure(error: NetworkError.unknown(underlying: nil)))
| `- note: closure captures non-Sendable 'request'
71 | }
72 | return (request, await self.downloadMedia(request))
[110/112] Compiling Netto ResponseHandler.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Storage/KeychainTokenStorage.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'KeychainTokenStorage' may have shared mutable state; this is an error in the Swift 6 language mode
26 | /// Override it or provide a completely custom storage via
27 | /// `NetworkServiceBuilder.withTokenStorage(_:)`.
28 | public final class KeychainTokenStorage: TokenStorage {
| `- note: class 'KeychainTokenStorage' does not conform to the 'Sendable' protocol
29 |
30 | // MARK: - Shared Instance
31 |
32 | /// Convenience singleton using the bundle ID as namespace.
33 | public static let shared = KeychainTokenStorage()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'KeychainTokenStorage' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
34 |
35 | // MARK: - Configuration
[111/112] Compiling Netto KeychainTokenStorage.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Storage/KeychainTokenStorage.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'KeychainTokenStorage' may have shared mutable state; this is an error in the Swift 6 language mode
26 | /// Override it or provide a completely custom storage via
27 | /// `NetworkServiceBuilder.withTokenStorage(_:)`.
28 | public final class KeychainTokenStorage: TokenStorage {
| `- note: class 'KeychainTokenStorage' does not conform to the 'Sendable' protocol
29 |
30 | // MARK: - Shared Instance
31 |
32 | /// Convenience singleton using the bundle ID as namespace.
33 | public static let shared = KeychainTokenStorage()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'KeychainTokenStorage' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
34 |
35 | // MARK: - Configuration
[112/112] Compiling Netto TokenStorage.swift
/Users/admin/builder/spi-builder-workspace/LibraryCore/Netto/Sources/Netto/Storage/KeychainTokenStorage.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'KeychainTokenStorage' may have shared mutable state; this is an error in the Swift 6 language mode
26 | /// Override it or provide a completely custom storage via
27 | /// `NetworkServiceBuilder.withTokenStorage(_:)`.
28 | public final class KeychainTokenStorage: TokenStorage {
| `- note: class 'KeychainTokenStorage' does not conform to the 'Sendable' protocol
29 |
30 | // MARK: - Shared Instance
31 |
32 | /// Convenience singleton using the bundle ID as namespace.
33 | public static let shared = KeychainTokenStorage()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'KeychainTokenStorage' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
34 |
35 | // MARK: - Configuration
Build complete! (28.20s)
Fetching https://github.com/CocoaLumberjack/CocoaLumberjack.git
Fetching https://github.com/Alamofire/Alamofire.git
[1/19074] Fetching cocoalumberjack
[383/51304] Fetching cocoalumberjack, alamofire
Fetched https://github.com/CocoaLumberjack/CocoaLumberjack.git from cache (9.67s)
Fetched https://github.com/Alamofire/Alamofire.git from cache (9.67s)
Computing version for https://github.com/CocoaLumberjack/CocoaLumberjack.git
Computed https://github.com/CocoaLumberjack/CocoaLumberjack.git at 3.9.1 (10.21s)
Fetching https://github.com/apple/swift-log from cache
Fetched https://github.com/apple/swift-log from cache (1.02s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.14.0 (1.55s)
Computing version for https://github.com/Alamofire/Alamofire.git
Computed https://github.com/Alamofire/Alamofire.git at 5.12.0 (0.47s)
Creating working copy for https://github.com/Alamofire/Alamofire.git
Working copy of https://github.com/Alamofire/Alamofire.git resolved at 5.12.0
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.14.0
Creating working copy for https://github.com/CocoaLumberjack/CocoaLumberjack.git
Working copy of https://github.com/CocoaLumberjack/CocoaLumberjack.git resolved at 3.9.1
Build complete.
{
"dependencies" : [
{
"identity" : "alamofire",
"requirement" : {
"range" : [
{
"lower_bound" : "5.9.0",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Alamofire/Alamofire.git"
},
{
"identity" : "cocoalumberjack",
"requirement" : {
"range" : [
{
"lower_bound" : "3.8.0",
"upper_bound" : "4.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/CocoaLumberjack/CocoaLumberjack.git"
}
],
"manifest_display_name" : "Netto",
"name" : "Netto",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "macos",
"version" : "13.0"
}
],
"products" : [
{
"name" : "Netto",
"targets" : [
"Netto"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "NettoTests",
"module_type" : "SwiftTarget",
"name" : "NettoTests",
"path" : "LibraryCore/Netto/Tests/NettoTests",
"product_dependencies" : [
"Alamofire"
],
"sources" : [
"DefaultErrorResponseParserTests.swift",
"DefaultNetworkErrorHandlerTests.swift",
"DefaultResponseHandlerTests.swift",
"DomainServiceTests.swift",
"NetworkErrorTests.swift",
"PreRequestHandlerTests.swift",
"RequestModelsTests.swift",
"RobustJSONDecoderTests.swift",
"TestDoubles.swift"
],
"target_dependencies" : [
"Netto"
],
"type" : "test"
},
{
"c99name" : "Netto",
"module_type" : "SwiftTarget",
"name" : "Netto",
"path" : "LibraryCore/Netto/Sources/Netto",
"product_dependencies" : [
"Alamofire",
"CocoaLumberjackSwift"
],
"product_memberships" : [
"Netto"
],
"sources" : [
"Builder/MediaServiceBuilder.swift",
"Builder/NetworkServiceBuilder.swift",
"Builder/NetworkingContainer.swift",
"Decoder/RobustJSONDecoder.swift",
"Error/DefaultNetworkErrorHandler.swift",
"Error/ErrorResponseParser.swift",
"Error/NetworkError.swift",
"Error/NetworkErrorHandler.swift",
"Logger/DefaultNetworkLogger.swift",
"Logger/NetworkLogger.swift",
"Media/MediaDownloadRequest.swift",
"Media/MediaDownloadResult.swift",
"Media/MediaDownloadService.swift",
"Media/MediaDownloadServiceImpl.swift",
"Netto.swift",
"Network Manager/NetworkManager.swift",
"Network Manager/NetworkService.swift",
"Network Manager/NetworkSessionConfiguration.swift",
"Network Manager/NetworkTimeouts.swift",
"Network Monitor/ConnectivityListener.swift",
"Network Monitor/DefaultNetworkMonitor.swift",
"Network Monitor/NetworkMonitor.swift",
"PreRequest/PreRequestHandler.swift",
"PreRequest/PreRequestHandlerImpl.swift",
"Request/APIEndpoint.swift",
"Request/APIRequest.swift",
"Request/DomainService.swift",
"Request/ServiceContext.swift",
"Response/DefaultResponseHandler.swift",
"Response/NetworkResponse.swift",
"Response/ResponseHandler.swift",
"Storage/KeychainTokenStorage.swift",
"Storage/TokenStorage.swift",
"Utils/Alamofire+Utils.swift",
"Utils/Encodable+toDictionary.swift",
"Utils/ParameterEncoding+multipart.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.