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 Coinpaprika, reference 2.4.0 (898270), with Swift 6.0 for macOS (SPM) on 27 Nov 2024 03:28:20 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.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

Build Log

========================================
RunAll
========================================
Builder version: 4.58.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/coinpaprika/coinpaprika-api-swift-client.git
Reference: 2.4.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/coinpaprika/coinpaprika-api-swift-client
 * tag               2.4.0      -> FETCH_HEAD
HEAD is now at 898270a Regenerate Xcode Project
Cloned https://github.com/coinpaprika/coinpaprika-api-swift-client.git
Revision (git rev-parse @):
898270a370db9a1231b4af6dceb384a0fe1eea0b
SUCCESS checkout https://github.com/coinpaprika/coinpaprika-api-swift-client.git at 2.4.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "coinpaprika-api-swift-client",
      "name": "Coinpaprika",
      "url": "https://github.com/coinpaprika/coinpaprika-api-swift-client.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/coinpaprika-api-swift-client",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/coinpaprika/coinpaprika-api-swift-client.git
[1/2930] Fetching coinpaprika-api-swift-client
Fetched https://github.com/coinpaprika/coinpaprika-api-swift-client.git from cache (1.19s)
Creating working copy for https://github.com/coinpaprika/coinpaprika-api-swift-client.git
Working copy of https://github.com/coinpaprika/coinpaprika-api-swift-client.git resolved at 2.4.0 (898270a)
warning: '.resolve-product-dependencies': dependency 'coinpaprika-api-swift-client' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/coinpaprika/coinpaprika-api-swift-client.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.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/4] Write sources
[3/4] Write swift-version--7754E27361AE5C74.txt
[5/10] Compiling CoinpaprikaNetworking Result.swift
[6/10] Compiling CoinpaprikaNetworking Errors.swift
[7/10] Compiling CoinpaprikaNetworking CodableModel.swift
[8/10] Compiling CoinpaprikaNetworking Request.swift
/Users/admin/builder/spi-builder-workspace/Sources/Networking/Request.swift:85:66: warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
 82 |     ///   - callback: Completion handler triggered on request success & failure
 83 |     public func perform(responseQueue: DispatchQueue? = nil, cachePolicy: URLRequest.CachePolicy? = nil, session: NetworkSession = URLSession.shared, _ callback: @escaping (Result<Model, Error>) -> Void) {
 84 |         let onQueue = { (_ block: @escaping () -> Void) -> Void in
    |                            `- note: parameter 'block' is implicitly non-sendable
 85 |             (responseQueue ?? DispatchQueue.main).async(execute: block)
    |                                                                  `- warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
 86 |         }
 87 |
[9/10] Emitting module CoinpaprikaNetworking
[10/10] Compiling CoinpaprikaNetworking NetworkSession.swift
/Users/admin/builder/spi-builder-workspace/Sources/Networking/NetworkSession.swift:18:13: warning: capture of 'completionHandler' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
16 |     public func loadData(with request: URLRequest, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Void) {
17 |         let task = dataTask(with: request) { (data, response, error) in
18 |             completionHandler(data, response, error)
   |             |- warning: capture of 'completionHandler' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> 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'
19 |         }
20 |
[11/35] Compiling CoinpaprikaNetworkingMocks CodableMock.swift
[12/35] Emitting module CoinpaprikaNetworkingMocks
[13/35] Compiling CoinpaprikaNetworkingMocks JsonMock.swift
[14/35] Compiling Coinpaprika Market.swift
[15/35] Compiling Coinpaprika News.swift
[16/37] Compiling Coinpaprika Fiat.swift
[17/37] Compiling Coinpaprika GlobalStats.swift
[18/37] Compiling Coinpaprika Ohlcv.swift
[19/37] Compiling Coinpaprika Person.swift
[20/37] Compiling Coinpaprika StatusResponse.swift
[21/37] Compiling Coinpaprika Tag.swift
[22/37] Compiling Coinpaprika Ticker.swift
[23/37] Compiling Coinpaprika TickerHistory.swift
[24/37] Compiling Coinpaprika QuoteCurrency.swift
[25/37] Compiling Coinpaprika SearchResults.swift
[26/37] Compiling Coinpaprika API.swift
/Users/admin/builder/spi-builder-workspace/Sources/Client/Configuration.swift:13:23: warning: static property 'baseUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | public struct Configuration {
13 |     public static var baseUrl = URL(string: "https://api.coinpaprika.com/v1/")!
   |                       |- warning: static property 'baseUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'baseUrl' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'baseUrl' 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
14 |     public static var userAgent = "Coinpaprika API Client - Swift"
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/Client/Configuration.swift:14:23: warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | public struct Configuration {
13 |     public static var baseUrl = URL(string: "https://api.coinpaprika.com/v1/")!
14 |     public static var userAgent = "Coinpaprika API Client - Swift"
   |                       |- warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'userAgent' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'userAgent' 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
15 | }
16 |
[27/37] Compiling Coinpaprika Configuration.swift
/Users/admin/builder/spi-builder-workspace/Sources/Client/Configuration.swift:13:23: warning: static property 'baseUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | public struct Configuration {
13 |     public static var baseUrl = URL(string: "https://api.coinpaprika.com/v1/")!
   |                       |- warning: static property 'baseUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'baseUrl' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'baseUrl' 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
14 |     public static var userAgent = "Coinpaprika API Client - Swift"
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/Client/Configuration.swift:14:23: warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | public struct Configuration {
13 |     public static var baseUrl = URL(string: "https://api.coinpaprika.com/v1/")!
14 |     public static var userAgent = "Coinpaprika API Client - Swift"
   |                       |- warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'userAgent' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'userAgent' 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
15 | }
16 |
[28/37] Compiling Coinpaprika QueryRepresentable.swift
/Users/admin/builder/spi-builder-workspace/Sources/Client/Configuration.swift:13:23: warning: static property 'baseUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | public struct Configuration {
13 |     public static var baseUrl = URL(string: "https://api.coinpaprika.com/v1/")!
   |                       |- warning: static property 'baseUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'baseUrl' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'baseUrl' 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
14 |     public static var userAgent = "Coinpaprika API Client - Swift"
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/Client/Configuration.swift:14:23: warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | public struct Configuration {
13 |     public static var baseUrl = URL(string: "https://api.coinpaprika.com/v1/")!
14 |     public static var userAgent = "Coinpaprika API Client - Swift"
   |                       |- warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'userAgent' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'userAgent' 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
15 | }
16 |
[29/37] Compiling Coinpaprika CoinMarket.swift
[30/37] Compiling Coinpaprika Event.swift
[31/37] Compiling Coinpaprika Exchange.swift
[32/37] Compiling Coinpaprika TopMovers.swift
[33/37] Compiling Coinpaprika Tweet.swift
[34/37] Compiling Coinpaprika Coin.swift
[35/37] Compiling Coinpaprika CoinExchange.swift
[36/37] Compiling Coinpaprika CoinLink.swift
[37/37] Emitting module Coinpaprika
/Users/admin/builder/spi-builder-workspace/Sources/Client/Configuration.swift:13:23: warning: static property 'baseUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | public struct Configuration {
13 |     public static var baseUrl = URL(string: "https://api.coinpaprika.com/v1/")!
   |                       |- warning: static property 'baseUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'baseUrl' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'baseUrl' 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
14 |     public static var userAgent = "Coinpaprika API Client - Swift"
15 | }
/Users/admin/builder/spi-builder-workspace/Sources/Client/Configuration.swift:14:23: warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | public struct Configuration {
13 |     public static var baseUrl = URL(string: "https://api.coinpaprika.com/v1/")!
14 |     public static var userAgent = "Coinpaprika API Client - Swift"
   |                       |- warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'userAgent' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'userAgent' 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
15 | }
16 |
Build complete! (9.93s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Coinpaprika",
  "name" : "Coinpaprika",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "10.0"
    },
    {
      "name" : "macos",
      "version" : "10.12"
    },
    {
      "name" : "tvos",
      "version" : "10.0"
    },
    {
      "name" : "watchos",
      "version" : "3.0"
    }
  ],
  "products" : [
    {
      "name" : "Coinpaprika",
      "targets" : [
        "Coinpaprika"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "CoinpaprikaNetworking",
      "targets" : [
        "CoinpaprikaNetworking"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "CoinpaprikaNetworkingMocks",
      "targets" : [
        "CoinpaprikaNetworkingMocks"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CoinpaprikaTests",
      "module_type" : "SwiftTarget",
      "name" : "CoinpaprikaTests",
      "path" : "Tests",
      "sources" : [
        "CodableTest.swift",
        "QuotesTests.swift",
        "RequestTests.swift"
      ],
      "target_dependencies" : [
        "Coinpaprika",
        "CoinpaprikaNetworkingMocks"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CoinpaprikaNetworkingMocks",
      "module_type" : "SwiftTarget",
      "name" : "CoinpaprikaNetworkingMocks",
      "path" : "Sources/NetworkingMocks",
      "product_memberships" : [
        "CoinpaprikaNetworkingMocks"
      ],
      "sources" : [
        "CodableMock.swift",
        "JsonMock.swift"
      ],
      "target_dependencies" : [
        "CoinpaprikaNetworking"
      ],
      "type" : "library"
    },
    {
      "c99name" : "CoinpaprikaNetworking",
      "module_type" : "SwiftTarget",
      "name" : "CoinpaprikaNetworking",
      "path" : "Sources/Networking",
      "product_memberships" : [
        "Coinpaprika",
        "CoinpaprikaNetworking",
        "CoinpaprikaNetworkingMocks"
      ],
      "sources" : [
        "CodableModel.swift",
        "Errors.swift",
        "NetworkSession.swift",
        "Request.swift",
        "Result.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Coinpaprika",
      "module_type" : "SwiftTarget",
      "name" : "Coinpaprika",
      "path" : "Sources/Client",
      "product_memberships" : [
        "Coinpaprika"
      ],
      "sources" : [
        "API.swift",
        "Configuration.swift",
        "Helpers/QueryRepresentable.swift",
        "Models/Coin.swift",
        "Models/CoinExchange.swift",
        "Models/CoinLink.swift",
        "Models/CoinMarket.swift",
        "Models/Event.swift",
        "Models/Exchange.swift",
        "Models/Fiat.swift",
        "Models/GlobalStats.swift",
        "Models/Market.swift",
        "Models/News.swift",
        "Models/Ohlcv.swift",
        "Models/Person.swift",
        "Models/QuoteCurrency.swift",
        "Models/SearchResults.swift",
        "Models/StatusResponse.swift",
        "Models/Tag.swift",
        "Models/Ticker.swift",
        "Models/TickerHistory.swift",
        "Models/TopMovers.swift",
        "Models/Tweet.swift"
      ],
      "target_dependencies" : [
        "CoinpaprikaNetworking"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
Done.