The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of LastFMKit, reference master (90c9fc), with Swift 6.1 for macOS (SPM) on 13 Jul 2025 11:33:28 UTC.

Swift 6 data race errors: 5

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 InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/guitaripod/LastFMKit.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/guitaripod/LastFMKit
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 90c9fc3 Update GitHub username from marcusziade to guitaripod
Cloned https://github.com/guitaripod/LastFMKit.git
Revision (git rev-parse @):
90c9fc390a5c8a49a390e8bcd9acaba88cc6ffcf
SUCCESS checkout https://github.com/guitaripod/LastFMKit.git at master
Fetching https://github.com/apple/swift-docc-plugin
Fetching https://github.com/apple/swift-log from cache
Fetching https://github.com/apple/swift-argument-parser from cache
[1/2094] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-log from cache (0.69s)
Fetched https://github.com/apple/swift-argument-parser from cache (1.10s)
Fetched https://github.com/apple/swift-docc-plugin from cache (1.16s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.5 (4.18s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.78s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.44s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.6.1 (0.50s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.6.3 (0.47s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.6.1
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.4.5
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.6.3
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.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": "lastfmkit",
      "name": "LastFMKit",
      "url": "https://github.com/guitaripod/LastFMKit.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/LastFMKit",
      "dependencies": [
        {
          "identity": "swift-argument-parser",
          "name": "swift-argument-parser",
          "url": "https://github.com/apple/swift-argument-parser",
          "version": "1.6.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-argument-parser",
          "dependencies": [
          ]
        },
        {
          "identity": "swift-log",
          "name": "swift-log",
          "url": "https://github.com/apple/swift-log",
          "version": "1.6.3",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-log",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/guitaripod/LastFMKit.git
[1/205] Fetching lastfmkit
Fetched https://github.com/guitaripod/LastFMKit.git from cache (0.66s)
Fetching https://github.com/apple/swift-argument-parser from cache
Fetching https://github.com/apple/swift-log from cache
Fetched https://github.com/apple/swift-argument-parser from cache (0.53s)
Fetched https://github.com/apple/swift-log from cache (0.53s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.6.1 (0.60s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.6.3 (0.03s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.6.1
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.6.3
Creating working copy for https://github.com/guitaripod/LastFMKit.git
Working copy of https://github.com/guitaripod/LastFMKit.git resolved at master (90c9fc3)
Found 2 product dependencies
  - swift-argument-parser
  - swift-log
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/guitaripod/LastFMKit.git
https://github.com/guitaripod/LastFMKit.git
{
  "dependencies" : [
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.3.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log"
    },
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.3.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "LastFMKit",
  "name" : "LastFMKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "ios",
      "version" : "16.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0"
    },
    {
      "name" : "watchos",
      "version" : "9.0"
    }
  ],
  "products" : [
    {
      "name" : "LastFMKit",
      "targets" : [
        "LastFMKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "lastfm-cli",
      "targets" : [
        "LastFMCLI"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "LastFMKitTests",
      "module_type" : "SwiftTarget",
      "name" : "LastFMKitTests",
      "path" : "Tests/LastFMKitTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/LastFMKitTests/Resources/README.md",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "BasicTests.swift"
      ],
      "target_dependencies" : [
        "LastFMKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "LastFMKit",
      "module_type" : "SwiftTarget",
      "name" : "LastFMKit",
      "path" : "Sources/LastFMKit",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "LastFMKit",
        "lastfm-cli"
      ],
      "sources" : [
        "API/AlbumAPI.swift",
        "API/ArtistAPI.swift",
        "API/AuthAPI.swift",
        "API/BaseAPI.swift",
        "API/ChartAPI.swift",
        "API/GeoAPI.swift",
        "API/LibraryAPI.swift",
        "API/TagAPI.swift",
        "API/TrackAPI.swift",
        "API/UserAPI.swift",
        "Core/Endpoint.swift",
        "Core/LastFMClient.swift",
        "Core/LastFMError.swift",
        "Core/NetworkClient.swift",
        "Models/Album.swift",
        "Models/Artist.swift",
        "Models/Auth.swift",
        "Models/Chart.swift",
        "Models/Common.swift",
        "Models/Geo.swift",
        "Models/Library.swift",
        "Models/Tag.swift",
        "Models/Track.swift",
        "Models/User.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "LastFMCLI",
      "module_type" : "SwiftTarget",
      "name" : "LastFMCLI",
      "path" : "Sources/LastFMCLI",
      "product_dependencies" : [
        "ArgumentParser"
      ],
      "product_memberships" : [
        "lastfm-cli"
      ],
      "sources" : [
        "AlbumCommands.swift",
        "AuthCommands.swift",
        "ChartCommands.swift",
        "ConfigCommands.swift",
        "ConfigManager.swift",
        "GeoCommands.swift",
        "LastFMCLI.swift",
        "LibraryCommands.swift",
        "MyCommands.swift",
        "TagCommands.swift",
        "TrackCommands.swift",
        "UserCommands.swift"
      ],
      "target_dependencies" : [
        "LastFMKit"
      ],
      "type" : "executable"
    }
  ],
  "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
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
[3/3] Compiling plugin GenerateManual
[4/4] Compiling plugin GenerateDoccReference
Building for debugging...
[4/14] Write sources
[4/14] Write lastfm-cli-entitlement.plist
[8/14] Write sources
[10/14] Write swift-version-2F0A5646E1D333AE.txt
[12/21] Compiling ArgumentParserToolInfo ToolInfo.swift
[13/21] Emitting module ArgumentParserToolInfo
[14/67] Compiling Logging LogHandler.swift
[15/67] Compiling Logging MetadataProvider.swift
[16/67] Emitting module Logging
[17/67] Compiling Logging Locks.swift
[18/67] Compiling Logging Logging.swift
[19/90] Emitting module ArgumentParser
[20/94] Compiling LastFMKit Library.swift
[21/94] Compiling LastFMKit Tag.swift
[22/94] Compiling ArgumentParser SwiftExtensions.swift
[23/94] Compiling ArgumentParser Tree.swift
[24/94] Compiling ArgumentParser CodingKeyValidator.swift
[25/94] Compiling ArgumentParser NonsenseFlagsValidator.swift
[26/94] Compiling ArgumentParser ParsableArgumentsValidation.swift
[27/94] Compiling ArgumentParser PositionalArgumentsValidator.swift
[28/94] Compiling ArgumentParser UniqueNamesValidator.swift
[29/94] Compiling LastFMKit AlbumAPI.swift
[30/94] Compiling LastFMKit ArtistAPI.swift
[31/94] Compiling LastFMKit AuthAPI.swift
[32/94] Compiling LastFMKit Album.swift
[33/94] Compiling LastFMKit Artist.swift
[34/94] Compiling LastFMKit Common.swift
[35/94] Compiling LastFMKit Geo.swift
[36/94] Compiling LastFMKit LibraryAPI.swift
[37/94] Compiling LastFMKit TagAPI.swift
[38/94] Compiling LastFMKit TrackAPI.swift
[39/94] Compiling LastFMKit LastFMError.swift
[40/94] Compiling LastFMKit NetworkClient.swift
[41/94] Compiling LastFMKit BaseAPI.swift
[42/94] Compiling LastFMKit ChartAPI.swift
[43/94] Compiling LastFMKit GeoAPI.swift
[44/94] Compiling LastFMKit Auth.swift
[45/94] Compiling LastFMKit Chart.swift
[46/94] Compiling LastFMKit UserAPI.swift
[47/94] Compiling LastFMKit Endpoint.swift
[48/94] Compiling LastFMKit LastFMClient.swift
[49/94] Compiling ArgumentParser MessageInfo.swift
[50/94] Compiling ArgumentParser UsageGenerator.swift
[51/94] Compiling ArgumentParser CollectionExtensions.swift
[52/94] Compiling ArgumentParser Mutex.swift
[53/94] Compiling ArgumentParser Platform.swift
[54/94] Compiling ArgumentParser ParserError.swift
[55/94] Compiling ArgumentParser SplitArguments.swift
[56/94] Compiling ArgumentParser DumpHelpGenerator.swift
[57/94] Compiling ArgumentParser HelpCommand.swift
[58/94] Compiling ArgumentParser HelpGenerator.swift
[59/94] Compiling ArgumentParser ArgumentDiscussion.swift
[60/94] Compiling ArgumentParser ArgumentHelp.swift
[61/94] Compiling ArgumentParser ArgumentVisibility.swift
[62/94] Compiling ArgumentParser CompletionKind.swift
[63/94] Compiling ArgumentParser Errors.swift
[64/94] Compiling ArgumentParser ParsableCommand.swift
[65/94] Compiling ArgumentParser ArgumentDecoder.swift
[66/94] Compiling ArgumentParser ArgumentDefinition.swift
[67/94] Compiling ArgumentParser ArgumentSet.swift
[68/94] Compiling ArgumentParser CommandParser.swift
[79/96] Emitting module LastFMKit
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/LastFMClient.swift:240:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'ClientConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
203 | /// let client = LastFMClient(configuration: configuration)
204 | /// ```
205 | public struct ClientConfiguration {
    |               `- note: consider making struct 'ClientConfiguration' conform to the 'Sendable' protocol
206 |     /// The base URL for API requests.
207 |     /// Default: `https://lastfm-proxy-worker.guitaripod.workers.dev`
    :
238 |     /// - Timeout: 30 seconds
239 |     /// - Retry Policy: Exponential backoff with 3 retries
240 |     public static let `default` = ClientConfiguration()
    |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'ClientConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | }
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:31:17: warning: non-sendable type 'T' cannot be returned from actor-isolated implementation to caller of protocol requirement 'request'; this is an error in the Swift 6 language mode
 29 |     }
 30 |
 31 |     public func request<T: Decodable>(_ endpoint: Endpoint) async throws -> T {
    |                 |       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
    |                 `- warning: non-sendable type 'T' cannot be returned from actor-isolated implementation to caller of protocol requirement 'request'; this is an error in the Swift 6 language mode
 32 |         let data = try await request(endpoint)
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:31:17: warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 29 |     }
 30 |
 31 |     public func request<T: Decodable>(_ endpoint: Endpoint) async throws -> T {
    |                 `- warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 32 |         let data = try await request(endpoint)
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/Endpoint.swift:3:15: note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public struct Endpoint {
   |               `- note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 4 |     public let path: String
 5 |     public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:46:17: warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 44 |     }
 45 |
 46 |     public func request(_ endpoint: Endpoint) async throws -> Data {
    |                 `- warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 47 |         guard let url = endpoint.url else {
 48 |             throw LastFMError.invalidURL
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/Endpoint.swift:3:15: note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public struct Endpoint {
   |               `- note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 4 |     public let path: String
 5 |     public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:171:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'NetworkConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
160 | }
161 |
162 | public struct NetworkConfiguration {
    |               `- note: consider making struct 'NetworkConfiguration' conform to the 'Sendable' protocol
163 |     public let timeout: TimeInterval
164 |     public let retryPolicy: RetryPolicy
    :
169 |     }
170 |
171 |     public static let `default` = NetworkConfiguration()
    |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'NetworkConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
172 | }
173 |
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:31:17: warning: non-sendable type 'T' cannot be returned from actor-isolated implementation to caller of protocol requirement 'request'; this is an error in the Swift 6 language mode
 29 |     }
 30 |
 31 |     public func request<T: Decodable>(_ endpoint: Endpoint) async throws -> T {
    |                 |       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
    |                 `- warning: non-sendable type 'T' cannot be returned from actor-isolated implementation to caller of protocol requirement 'request'; this is an error in the Swift 6 language mode
 32 |         let data = try await request(endpoint)
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:31:17: warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 29 |     }
 30 |
 31 |     public func request<T: Decodable>(_ endpoint: Endpoint) async throws -> T {
    |                 `- warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 32 |         let data = try await request(endpoint)
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/Endpoint.swift:3:15: note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public struct Endpoint {
   |               `- note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 4 |     public let path: String
 5 |     public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:46:17: warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 44 |     }
 45 |
 46 |     public func request(_ endpoint: Endpoint) async throws -> Data {
    |                 `- warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 47 |         guard let url = endpoint.url else {
 48 |             throw LastFMError.invalidURL
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/Endpoint.swift:3:15: note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public struct Endpoint {
   |               `- note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 4 |     public let path: String
 5 |     public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:171:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'NetworkConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
160 | }
161 |
162 | public struct NetworkConfiguration {
    |               `- note: consider making struct 'NetworkConfiguration' conform to the 'Sendable' protocol
163 |     public let timeout: TimeInterval
164 |     public let retryPolicy: RetryPolicy
    :
169 |     }
170 |
171 |     public static let `default` = NetworkConfiguration()
    |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'NetworkConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
172 | }
173 |
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:31:17: warning: non-sendable type 'T' cannot be returned from actor-isolated implementation to caller of protocol requirement 'request'; this is an error in the Swift 6 language mode
 29 |     }
 30 |
 31 |     public func request<T: Decodable>(_ endpoint: Endpoint) async throws -> T {
    |                 |       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
    |                 `- warning: non-sendable type 'T' cannot be returned from actor-isolated implementation to caller of protocol requirement 'request'; this is an error in the Swift 6 language mode
 32 |         let data = try await request(endpoint)
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:31:17: warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 29 |     }
 30 |
 31 |     public func request<T: Decodable>(_ endpoint: Endpoint) async throws -> T {
    |                 `- warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 32 |         let data = try await request(endpoint)
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/Endpoint.swift:3:15: note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public struct Endpoint {
   |               `- note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 4 |     public let path: String
 5 |     public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:46:17: warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 44 |     }
 45 |
 46 |     public func request(_ endpoint: Endpoint) async throws -> Data {
    |                 `- warning: non-sendable parameter type 'Endpoint' cannot be sent from caller of protocol requirement 'request' into actor-isolated implementation; this is an error in the Swift 6 language mode
 47 |         guard let url = endpoint.url else {
 48 |             throw LastFMError.invalidURL
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/Endpoint.swift:3:15: note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public struct Endpoint {
   |               `- note: consider making struct 'Endpoint' conform to the 'Sendable' protocol
 4 |     public let path: String
 5 |     public let method: HTTPMethod
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/NetworkClient.swift:171:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'NetworkConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
160 | }
161 |
162 | public struct NetworkConfiguration {
    |               `- note: consider making struct 'NetworkConfiguration' conform to the 'Sendable' protocol
163 |     public let timeout: TimeInterval
164 |     public let retryPolicy: RetryPolicy
    :
169 |     }
170 |
171 |     public static let `default` = NetworkConfiguration()
    |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'NetworkConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
172 | }
173 |
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/LastFMClient.swift:240:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'ClientConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
203 | /// let client = LastFMClient(configuration: configuration)
204 | /// ```
205 | public struct ClientConfiguration {
    |               `- note: consider making struct 'ClientConfiguration' conform to the 'Sendable' protocol
206 |     /// The base URL for API requests.
207 |     /// Default: `https://lastfm-proxy-worker.guitaripod.workers.dev`
    :
238 |     /// - Timeout: 30 seconds
239 |     /// - Retry Policy: Exponential backoff with 3 retries
240 |     public static let `default` = ClientConfiguration()
    |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'ClientConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | }
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/LastFMClient.swift:156:29: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
154 |
155 |         let configuration = NetworkConfiguration(timeout: timeout, retryPolicy: retryPolicy)
156 |         let networkClient = NetworkClient(configuration: configuration)
    |                             |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: sending task-isolated 'configuration' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
157 |         self.networkClient = networkClient
158 |
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/LastFMClient.swift:240:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'ClientConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
203 | /// let client = LastFMClient(configuration: configuration)
204 | /// ```
205 | public struct ClientConfiguration {
    |               `- note: consider making struct 'ClientConfiguration' conform to the 'Sendable' protocol
206 |     /// The base URL for API requests.
207 |     /// Default: `https://lastfm-proxy-worker.guitaripod.workers.dev`
    :
238 |     /// - Timeout: 30 seconds
239 |     /// - Retry Policy: Exponential backoff with 3 retries
240 |     public static let `default` = ClientConfiguration()
    |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'ClientConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | }
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/LastFMClient.swift:156:29: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
154 |
155 |         let configuration = NetworkConfiguration(timeout: timeout, retryPolicy: retryPolicy)
156 |         let networkClient = NetworkClient(configuration: configuration)
    |                             |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: sending task-isolated 'configuration' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
157 |         self.networkClient = networkClient
158 |
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/LastFMClient.swift:240:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'ClientConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
203 | /// let client = LastFMClient(configuration: configuration)
204 | /// ```
205 | public struct ClientConfiguration {
    |               `- note: consider making struct 'ClientConfiguration' conform to the 'Sendable' protocol
206 |     /// The base URL for API requests.
207 |     /// Default: `https://lastfm-proxy-worker.guitaripod.workers.dev`
    :
238 |     /// - Timeout: 30 seconds
239 |     /// - Retry Policy: Exponential backoff with 3 retries
240 |     public static let `default` = ClientConfiguration()
    |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'ClientConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | }
/Users/admin/builder/spi-builder-workspace/Sources/LastFMKit/Core/LastFMClient.swift:156:29: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
154 |
155 |         let configuration = NetworkConfiguration(timeout: timeout, retryPolicy: retryPolicy)
156 |         let networkClient = NetworkClient(configuration: configuration)
    |                             |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: sending task-isolated 'configuration' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
157 |         self.networkClient = networkClient
158 |
[90/96] Compiling LastFMKit Track.swift
[91/96] Compiling LastFMKit User.swift
[94/108] Compiling LastFMCLI TrackCommands.swift
[95/108] Compiling LastFMCLI GeoCommands.swift
[96/108] Compiling LastFMCLI LastFMCLI.swift
[97/108] Compiling LastFMCLI LibraryCommands.swift
[98/108] Compiling LastFMCLI TagCommands.swift
[99/108] Compiling LastFMCLI ConfigManager.swift
[100/108] Compiling LastFMCLI ChartCommands.swift
[101/108] Compiling LastFMCLI ConfigCommands.swift
[102/108] Compiling LastFMCLI MyCommands.swift
[103/109] Compiling LastFMCLI UserCommands.swift
[104/109] Compiling LastFMCLI AlbumCommands.swift
[105/109] Compiling LastFMCLI AuthCommands.swift
[106/109] Emitting module LastFMCLI
[106/109] Write Objects.LinkFileList
[107/109] Linking lastfm-cli
[108/109] Applying lastfm-cli
Build complete! (28.31s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.3.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log"
    },
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.3.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "LastFMKit",
  "name" : "LastFMKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "ios",
      "version" : "16.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0"
    },
    {
      "name" : "watchos",
      "version" : "9.0"
    }
  ],
  "products" : [
    {
      "name" : "LastFMKit",
      "targets" : [
        "LastFMKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "lastfm-cli",
      "targets" : [
        "LastFMCLI"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "LastFMKitTests",
      "module_type" : "SwiftTarget",
      "name" : "LastFMKitTests",
      "path" : "Tests/LastFMKitTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/LastFMKitTests/Resources/README.md",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "BasicTests.swift"
      ],
      "target_dependencies" : [
        "LastFMKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "LastFMKit",
      "module_type" : "SwiftTarget",
      "name" : "LastFMKit",
      "path" : "Sources/LastFMKit",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "LastFMKit",
        "lastfm-cli"
      ],
      "sources" : [
        "API/AlbumAPI.swift",
        "API/ArtistAPI.swift",
        "API/AuthAPI.swift",
        "API/BaseAPI.swift",
        "API/ChartAPI.swift",
        "API/GeoAPI.swift",
        "API/LibraryAPI.swift",
        "API/TagAPI.swift",
        "API/TrackAPI.swift",
        "API/UserAPI.swift",
        "Core/Endpoint.swift",
        "Core/LastFMClient.swift",
        "Core/LastFMError.swift",
        "Core/NetworkClient.swift",
        "Models/Album.swift",
        "Models/Artist.swift",
        "Models/Auth.swift",
        "Models/Chart.swift",
        "Models/Common.swift",
        "Models/Geo.swift",
        "Models/Library.swift",
        "Models/Tag.swift",
        "Models/Track.swift",
        "Models/User.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "LastFMCLI",
      "module_type" : "SwiftTarget",
      "name" : "LastFMCLI",
      "path" : "Sources/LastFMCLI",
      "product_dependencies" : [
        "ArgumentParser"
      ],
      "product_memberships" : [
        "lastfm-cli"
      ],
      "sources" : [
        "AlbumCommands.swift",
        "AuthCommands.swift",
        "ChartCommands.swift",
        "ConfigCommands.swift",
        "ConfigManager.swift",
        "GeoCommands.swift",
        "LastFMCLI.swift",
        "LibraryCommands.swift",
        "MyCommands.swift",
        "TagCommands.swift",
        "TrackCommands.swift",
        "UserCommands.swift"
      ],
      "target_dependencies" : [
        "LastFMKit"
      ],
      "type" : "executable"
    }
  ],
  "tools_version" : "5.9"
}
Done.