This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of ResponseDetective with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 6

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/netguru/ResponseDetective.git
Reference: develop
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/netguru/ResponseDetective
 * branch            develop    -> FETCH_HEAD
 * [new branch]      develop    -> origin/develop
HEAD is now at 55ec742 Merge pull request #69 from MinaShehata/fix/RD-67-some-request-canceled-when-RD-is-enabled
Cloned https://github.com/netguru/ResponseDetective.git
Revision (git rev-parse @):
55ec742268b86da5e293fa55eecb545e186303b1
SUCCESS checkout https://github.com/netguru/ResponseDetective.git at develop
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/netguru/ResponseDetective.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/4] Write sources
[1/4] Write swift-version-6F35C1178C84523A.txt
[2/4] Compiling RDTHTMLBodyDeserializer.m
[3/4] Compiling RDTXMLBodyDeserializer.m
[5/17] Compiling ResponseDetective ResponseRepresentation.swift
[6/17] Compiling ResponseDetective RequestRepresentation.swift
[7/17] Compiling ResponseDetective ResponseDetective.swift
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/ResponseDetective.swift:20:20: warning: static property 'outputFacility' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | 	/// An output facility for reporting requests, responses and errors.
 20 | 	public static var outputFacility: OutputFacility = ConsoleOutputFacility()
    |                    |- warning: static property 'outputFacility' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: convert 'outputFacility' to a 'let' constant to make 'Sendable' shared state immutable
    |                    |- note: annotate 'outputFacility' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |
 22 | 	/// A class of the URL protocol used to intercept requests.
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/ResponseDetective.swift:26:21: warning: static property 'requestPredicates' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 24 |
 25 | 	/// A storage for request predicates.
 26 | 	private static var requestPredicates: [NSPredicate] = []
    |                     |- warning: static property 'requestPredicates' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: convert 'requestPredicates' to a 'let' constant to make 'Sendable' shared state immutable
    |                     |- note: annotate 'requestPredicates' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 | 	/// Body deserializers stored by a supported content type.
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/ResponseDetective.swift:29:21: warning: static property 'customBodyDeserializers' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 27 |
 28 | 	/// Body deserializers stored by a supported content type.
 29 | 	private static var customBodyDeserializers: [String: BodyDeserializer] = [:]
    |                     |- warning: static property 'customBodyDeserializers' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: convert 'customBodyDeserializers' to a 'let' constant to make 'Sendable' shared state immutable
    |                     |- note: annotate 'customBodyDeserializers' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 30 |
 31 | 	/// Default body deserializers provided by ResponseDetective.
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/ResponseDetective.swift:32:21: warning: static property 'defaultBodyDeserializers' is not concurrency-safe because non-'Sendable' type '[String : any BodyDeserializer]' may have shared mutable state; this is an error in the Swift 6 language mode
 30 |
 31 | 	/// Default body deserializers provided by ResponseDetective.
 32 | 	private static let defaultBodyDeserializers: [String: BodyDeserializer] = [
    |                     `- warning: static property 'defaultBodyDeserializers' is not concurrency-safe because non-'Sendable' type '[String : any BodyDeserializer]' may have shared mutable state; this is an error in the Swift 6 language mode
 33 | 		"*/json": JSONBodyDeserializer(),
 34 | 		"*/xml": XMLBodyDeserializer(),
ResponseDetectiveObjC.BodyDeserializer:1:17: note: protocol 'BodyDeserializer' does not conform to the 'Sendable' protocol
1 | public protocol BodyDeserializer {
  |                 `- note: protocol 'BodyDeserializer' does not conform to the 'Sendable' protocol
2 |     @available(macOS 10.10, *)
3 |     func deserialize(body: Data) -> String?
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/ResponseDetective.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ResponseDetectiveObjC'
  8 | import Foundation
  9 | #if SWIFT_PACKAGE
 10 | import ResponseDetectiveObjC
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ResponseDetectiveObjC'
 11 | #endif
 12 |
    :
 30 |
 31 | 	/// Default body deserializers provided by ResponseDetective.
 32 | 	private static let defaultBodyDeserializers: [String: BodyDeserializer] = [
    |                     |- note: annotate 'defaultBodyDeserializers' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 33 | 		"*/json": JSONBodyDeserializer(),
 34 | 		"*/xml": XMLBodyDeserializer(),
[8/17] Compiling ResponseDetective OutputFacility.swift
[9/17] Compiling ResponseDetective URLEncodedBodyDeserializer.swift
[10/18] Compiling ResponseDetective URLProtocol.swift
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/URLProtocol.swift:11:44: warning: 'Sendable' class 'URLProtocol' cannot inherit from another class other than 'NSObject'; this is an error in the Swift 6 language mode
  9 |
 10 | /// The intercepting URL protocol.
 11 | @objc(RDTURLProtocol) internal final class URLProtocol: Foundation.URLProtocol, URLSessionTaskDelegate, URLSessionDataDelegate {
    |                                            `- warning: 'Sendable' class 'URLProtocol' cannot inherit from another class other than 'NSObject'; this is an error in the Swift 6 language mode
 12 |
 13 | 	// MARK: Initialization
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/URLProtocol.swift:31:14: warning: stored property 'internalSession' of 'Sendable'-conforming class 'URLProtocol' is mutable; this is an error in the Swift 6 language mode
 29 |
 30 | 	/// Internal session object used to perform the request.
 31 | 	private var internalSession: Foundation.URLSession!
    |              `- warning: stored property 'internalSession' of 'Sendable'-conforming class 'URLProtocol' is mutable; this is an error in the Swift 6 language mode
 32 |
 33 | 	/// Internal session data dark responsible for request execution.
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/ResponseDetective.swift:20:20: warning: static property 'outputFacility' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | 	/// An output facility for reporting requests, responses and errors.
 20 | 	public static var outputFacility: OutputFacility = ConsoleOutputFacility()
    |                    |- warning: static property 'outputFacility' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: convert 'outputFacility' to a 'let' constant to make 'Sendable' shared state immutable
    |                    |- note: annotate 'outputFacility' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |
 22 | 	/// A class of the URL protocol used to intercept requests.
[11/18] Compiling ResponseDetective PlaintextBodyDeserializer.swift
[12/18] Compiling ResponseDetective Dictionary.swift
[13/18] Compiling ResponseDetective ErrorRepresentation.swift
[14/18] Compiling ResponseDetective ImageBodyDeserializer.swift
[15/18] Compiling ResponseDetective JSONBodyDeserializer.swift
[16/18] Compiling ResponseDetective BufferOutputFacility.swift
[17/18] Compiling ResponseDetective ConsoleOutputFacility.swift
[18/18] Emitting module ResponseDetective
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/ResponseDetective.swift:20:20: warning: static property 'outputFacility' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | 	/// An output facility for reporting requests, responses and errors.
 20 | 	public static var outputFacility: OutputFacility = ConsoleOutputFacility()
    |                    |- warning: static property 'outputFacility' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: convert 'outputFacility' to a 'let' constant to make 'Sendable' shared state immutable
    |                    |- note: annotate 'outputFacility' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |
 22 | 	/// A class of the URL protocol used to intercept requests.
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/ResponseDetective.swift:26:21: warning: static property 'requestPredicates' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 24 |
 25 | 	/// A storage for request predicates.
 26 | 	private static var requestPredicates: [NSPredicate] = []
    |                     |- warning: static property 'requestPredicates' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: convert 'requestPredicates' to a 'let' constant to make 'Sendable' shared state immutable
    |                     |- note: annotate 'requestPredicates' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 | 	/// Body deserializers stored by a supported content type.
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/ResponseDetective.swift:29:21: warning: static property 'customBodyDeserializers' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 27 |
 28 | 	/// Body deserializers stored by a supported content type.
 29 | 	private static var customBodyDeserializers: [String: BodyDeserializer] = [:]
    |                     |- warning: static property 'customBodyDeserializers' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: convert 'customBodyDeserializers' to a 'let' constant to make 'Sendable' shared state immutable
    |                     |- note: annotate 'customBodyDeserializers' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 30 |
 31 | 	/// Default body deserializers provided by ResponseDetective.
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/ResponseDetective.swift:32:21: warning: static property 'defaultBodyDeserializers' is not concurrency-safe because non-'Sendable' type '[String : any BodyDeserializer]' may have shared mutable state; this is an error in the Swift 6 language mode
 30 |
 31 | 	/// Default body deserializers provided by ResponseDetective.
 32 | 	private static let defaultBodyDeserializers: [String: BodyDeserializer] = [
    |                     `- warning: static property 'defaultBodyDeserializers' is not concurrency-safe because non-'Sendable' type '[String : any BodyDeserializer]' may have shared mutable state; this is an error in the Swift 6 language mode
 33 | 		"*/json": JSONBodyDeserializer(),
 34 | 		"*/xml": XMLBodyDeserializer(),
ResponseDetectiveObjC.BodyDeserializer:1:17: note: protocol 'BodyDeserializer' does not conform to the 'Sendable' protocol
1 | public protocol BodyDeserializer {
  |                 `- note: protocol 'BodyDeserializer' does not conform to the 'Sendable' protocol
2 |     @available(macOS 10.10, *)
3 |     func deserialize(body: Data) -> String?
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/ResponseDetective.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ResponseDetectiveObjC'
  8 | import Foundation
  9 | #if SWIFT_PACKAGE
 10 | import ResponseDetectiveObjC
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ResponseDetectiveObjC'
 11 | #endif
 12 |
    :
 30 |
 31 | 	/// Default body deserializers provided by ResponseDetective.
 32 | 	private static let defaultBodyDeserializers: [String: BodyDeserializer] = [
    |                     |- note: annotate 'defaultBodyDeserializers' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 33 | 		"*/json": JSONBodyDeserializer(),
 34 | 		"*/xml": XMLBodyDeserializer(),
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/URLProtocol.swift:11:44: warning: 'Sendable' class 'URLProtocol' cannot inherit from another class other than 'NSObject'; this is an error in the Swift 6 language mode
  9 |
 10 | /// The intercepting URL protocol.
 11 | @objc(RDTURLProtocol) internal final class URLProtocol: Foundation.URLProtocol, URLSessionTaskDelegate, URLSessionDataDelegate {
    |                                            `- warning: 'Sendable' class 'URLProtocol' cannot inherit from another class other than 'NSObject'; this is an error in the Swift 6 language mode
 12 |
 13 | 	// MARK: Initialization
/Users/admin/builder/spi-builder-workspace/ResponseDetective/Sources/URLProtocol.swift:31:14: warning: stored property 'internalSession' of 'Sendable'-conforming class 'URLProtocol' is mutable; this is an error in the Swift 6 language mode
 29 |
 30 | 	/// Internal session object used to perform the request.
 31 | 	private var internalSession: Foundation.URLSession!
    |              `- warning: stored property 'internalSession' of 'Sendable'-conforming class 'URLProtocol' is mutable; this is an error in the Swift 6 language mode
 32 |
 33 | 	/// Internal session data dark responsible for request execution.
Build complete! (41.11s)
Fetching https://github.com/mattgallagher/CwlCatchException.git
Fetching https://github.com/Quick/Nimble.git
Fetching https://github.com/mattgallagher/CwlPreconditionTesting.git
Fetching https://github.com/AliSoftware/OHHTTPStubs.git
Fetching https://github.com/Quick/Quick.git
[9/439] Fetching cwlcatchexception
[155/1686] Fetching cwlcatchexception, cwlpreconditiontesting
[340/9574] Fetching cwlcatchexception, cwlpreconditiontesting, ohhttpstubs
[2597/24123] Fetching cwlcatchexception, cwlpreconditiontesting, ohhttpstubs, quick
[24124/42763] Fetching cwlcatchexception, cwlpreconditiontesting, ohhttpstubs, quick, nimble
Fetched https://github.com/AliSoftware/OHHTTPStubs.git from cache (1.60s)
Fetched https://github.com/Quick/Quick.git from cache (1.60s)
[2246/20326] Fetching cwlcatchexception, cwlpreconditiontesting, nimble
Fetched https://github.com/mattgallagher/CwlPreconditionTesting.git from cache (2.47s)
Fetched https://github.com/Quick/Nimble.git from cache (2.47s)
Fetched https://github.com/mattgallagher/CwlCatchException.git from cache (2.47s)
Computing version for https://github.com/AliSoftware/OHHTTPStubs.git
Computed https://github.com/AliSoftware/OHHTTPStubs.git at 9.1.0 (0.70s)
Computing version for https://github.com/Quick/Nimble.git
Computed https://github.com/Quick/Nimble.git at 9.0.0 (0.67s)
Computing version for https://github.com/Quick/Quick.git
Computed https://github.com/Quick/Quick.git at 3.0.0 (0.67s)
Computing version for https://github.com/mattgallagher/CwlPreconditionTesting.git
Computed https://github.com/mattgallagher/CwlPreconditionTesting.git at 2.0.0 (0.71s)
Computing version for https://github.com/mattgallagher/CwlCatchException.git
Computed https://github.com/mattgallagher/CwlCatchException.git at 2.1.0 (0.67s)
Creating working copy for https://github.com/AliSoftware/OHHTTPStubs.git
Working copy of https://github.com/AliSoftware/OHHTTPStubs.git resolved at 9.1.0
Creating working copy for https://github.com/mattgallagher/CwlPreconditionTesting.git
Working copy of https://github.com/mattgallagher/CwlPreconditionTesting.git resolved at 2.0.0
Creating working copy for https://github.com/mattgallagher/CwlCatchException.git
Working copy of https://github.com/mattgallagher/CwlCatchException.git resolved at 2.1.0
Creating working copy for https://github.com/Quick/Quick.git
Working copy of https://github.com/Quick/Quick.git resolved at 3.0.0
Creating working copy for https://github.com/Quick/Nimble.git
Working copy of https://github.com/Quick/Nimble.git resolved at 9.0.0
Build complete.
{
  "dependencies" : [
    {
      "identity" : "quick",
      "requirement" : {
        "exact" : [
          "3.0.0"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Quick/Quick.git"
    },
    {
      "identity" : "nimble",
      "requirement" : {
        "exact" : [
          "9.0.0"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Quick/Nimble.git"
    },
    {
      "identity" : "ohhttpstubs",
      "requirement" : {
        "exact" : [
          "9.1.0"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/AliSoftware/OHHTTPStubs.git"
    }
  ],
  "manifest_display_name" : "ResponseDetective",
  "name" : "ResponseDetective",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "8.0"
    },
    {
      "name" : "macos",
      "version" : "10.10"
    },
    {
      "name" : "tvos",
      "version" : "9.0"
    }
  ],
  "products" : [
    {
      "name" : "ResponseDetective",
      "targets" : [
        "ResponseDetective",
        "ResponseDetectiveObjC"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ResponseDetectiveTests",
      "module_type" : "SwiftTarget",
      "name" : "ResponseDetectiveTests",
      "path" : "ResponseDetective",
      "product_dependencies" : [
        "Quick",
        "Nimble",
        "OHHTTPStubs"
      ],
      "sources" : [
        "Tests/Additions/TestBodyDeserializer.swift",
        "Tests/Specs/BufferOutputFacilitySpec.swift",
        "Tests/Specs/ConsoleOutputFacilitySpec.swift",
        "Tests/Specs/ErrorRepresentationSpec.swift",
        "Tests/Specs/HTMLBodyDeserializerSpec.swift",
        "Tests/Specs/ImageBodyDeserializerSpec.swift",
        "Tests/Specs/JSONBodyDeserializerSpec.swift",
        "Tests/Specs/PlaintextBodyDeserializerSpec.swift",
        "Tests/Specs/RequestRepresentationSpec.swift",
        "Tests/Specs/ResponseDetectiveSpec.swift",
        "Tests/Specs/ResponseRepresentationSpec.swift",
        "Tests/Specs/URLEncodedBodyDeserializerSpec.swift",
        "Tests/Specs/XMLBodyDeserializerSpec.swift"
      ],
      "target_dependencies" : [
        "ResponseDetective",
        "ResponseDetectiveObjC"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ResponseDetectiveObjC",
      "module_type" : "ClangTarget",
      "name" : "ResponseDetectiveObjC",
      "path" : "ResponseDetective",
      "product_memberships" : [
        "ResponseDetective"
      ],
      "sources" : [
        "Sources/RDTHTMLBodyDeserializer.m",
        "Sources/RDTXMLBodyDeserializer.m"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ResponseDetective",
      "module_type" : "SwiftTarget",
      "name" : "ResponseDetective",
      "path" : "ResponseDetective",
      "product_memberships" : [
        "ResponseDetective"
      ],
      "sources" : [
        "Sources/BufferOutputFacility.swift",
        "Sources/ConsoleOutputFacility.swift",
        "Sources/Dictionary.swift",
        "Sources/ErrorRepresentation.swift",
        "Sources/ImageBodyDeserializer.swift",
        "Sources/JSONBodyDeserializer.swift",
        "Sources/OutputFacility.swift",
        "Sources/PlaintextBodyDeserializer.swift",
        "Sources/RequestRepresentation.swift",
        "Sources/ResponseDetective.swift",
        "Sources/ResponseRepresentation.swift",
        "Sources/URLEncodedBodyDeserializer.swift",
        "Sources/URLProtocol.swift"
      ],
      "target_dependencies" : [
        "ResponseDetectiveObjC"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.