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 AmuseKit, reference 0.5.0 (77080d), with Swift 6.0 for macOS (SPM) on 3 Nov 2024 14:18:02 UTC.

Swift 6 data race errors: 10

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

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/jjotaum/AmuseKit.git
Reference: 0.5.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/jjotaum/AmuseKit
 * tag               0.5.0      -> FETCH_HEAD
HEAD is now at 77080d2 Release 0.5.0 (#6)
Cloned https://github.com/jjotaum/AmuseKit.git
Revision (git rev-parse @):
77080d23c70fcf5b220a1847e956368d158fbb61
SUCCESS checkout https://github.com/jjotaum/AmuseKit.git at 0.5.0
Fetching https://github.com/kishikawakatsumi/KeychainAccess.git
[1/4389] Fetching keychainaccess
Fetched https://github.com/kishikawakatsumi/KeychainAccess.git from cache (1.35s)
Computing version for https://github.com/kishikawakatsumi/KeychainAccess.git
Computed https://github.com/kishikawakatsumi/KeychainAccess.git at 4.2.2 (0.66s)
Creating working copy for https://github.com/kishikawakatsumi/KeychainAccess.git
Working copy of https://github.com/kishikawakatsumi/KeychainAccess.git resolved at 4.2.2
========================================
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": "amusekit",
      "name": "AmuseKit",
      "url": "https://github.com/jjotaum/AmuseKit.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/AmuseKit",
      "dependencies": [
        {
          "identity": "keychainaccess",
          "name": "KeychainAccess",
          "url": "https://github.com/kishikawakatsumi/KeychainAccess.git",
          "version": "4.2.2",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/KeychainAccess",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/jjotaum/AmuseKit.git
[1/405] Fetching amusekit
Fetched https://github.com/jjotaum/AmuseKit.git from cache (0.82s)
Fetching https://github.com/kishikawakatsumi/KeychainAccess.git from cache
Fetched https://github.com/kishikawakatsumi/KeychainAccess.git from cache (0.58s)
Computing version for https://github.com/kishikawakatsumi/KeychainAccess.git
Computed https://github.com/kishikawakatsumi/KeychainAccess.git at 4.2.2 (0.04s)
Creating working copy for https://github.com/kishikawakatsumi/KeychainAccess.git
Working copy of https://github.com/kishikawakatsumi/KeychainAccess.git resolved at 4.2.2
Creating working copy for https://github.com/jjotaum/AmuseKit.git
Working copy of https://github.com/jjotaum/AmuseKit.git resolved at 0.5.0 (77080d2)
warning: '.resolve-product-dependencies': dependency 'amusekit' is not used by any target
Found 1 product dependencies
  - KeychainAccess
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/jjotaum/AmuseKit.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
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version--7754E27361AE5C74.txt
[4/5] Compiling KeychainAccess Keychain.swift
[5/5] Emitting module KeychainAccess
[6/30] Compiling AmuseKit AmuseKit.swift
[7/30] Compiling AmuseKit EmptyCodable.swift
[8/30] Compiling AmuseKit Relationship.swift
[9/32] Compiling AmuseKit ResourceConvertible.swift
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:24:16: warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
22 |
23 | public extension LibraryResourceConvertible where Model == LibraryAlbum {
24 |     static var albums = Self.init(rawValue: .albums)
   |                |- warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'albums' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'albums' 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
25 | }
26 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:28:16: warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
26 |
27 | public extension LibraryResourceConvertible where Model == LibraryArtist {
28 |     static var artists = Self.init(rawValue: .artists)
   |                |- warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'artists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'artists' 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
29 | }
30 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:32:16: warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |
31 | public extension LibraryResourceConvertible where Model == LibraryMusicVideo {
32 |     static var musicVideos = Self.init(rawValue: .musicVideos)
   |                |- warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'musicVideos' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'musicVideos' 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 | }
34 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:36:16: warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
34 |
35 | public extension LibraryResourceConvertible where Model == LibraryPlaylist {
36 |     static var playlists = Self.init(rawValue: .playlists)
   |                |- warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'playlists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'playlists' 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
37 | }
38 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:40:16: warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 |
39 | public extension LibraryResourceConvertible where Model == LibrarySong {
40 |     static var songs = Self.init(rawValue: .songs)
   |                |- warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'songs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'songs' 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
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:51:16: warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | public extension CatalogResourceConvertible where Model == CatalogAlbum {
51 |     static var albums = Self.init(rawValue: .albums)
   |                |- warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'albums' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'albums' 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
52 | }
53 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:55:16: warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
53 |
54 | public extension CatalogResourceConvertible where Model == CatalogArtist {
55 |     static var artists = Self.init(rawValue: .artists)
   |                |- warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'artists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'artists' 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
56 | }
57 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:59:16: warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | public extension CatalogResourceConvertible where Model == CatalogMusicVideo {
59 |     static var musicVideos = Self.init(rawValue: .musicVideos)
   |                |- warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'musicVideos' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'musicVideos' 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
60 | }
61 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:63:16: warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
61 |
62 | public extension CatalogResourceConvertible where Model == CatalogPlaylist {
63 |     static var playlists = Self.init(rawValue: .playlists)
   |                |- warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'playlists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'playlists' 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
64 | }
65 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:67:16: warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
65 |
66 | public extension CatalogResourceConvertible where Model == CatalogSong {
67 |     static var songs = Self.init(rawValue: .songs)
   |                |- warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'songs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'songs' 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
68 | }
69 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/RequestCoordinator.swift:31:17: warning: capture of 'completion' with non-sendable type '(RequestResult<T>) -> Void' (aka '(Result<T, any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 |         dataTask(with: request) { data, response, error in
30 |             if let error = error {
31 |                 completion(.failure(error))
   |                 |- warning: capture of 'completion' with non-sendable type '(RequestResult<T>) -> Void' (aka '(Result<T, any Error>) -> ()') 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'
32 |             }
33 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/RequestCoordinator.swift:40:39: warning: capture of 'decoder' with non-sendable type 'any RequestDecoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | public typealias RequestResult<T> = Result<T, Error>
12 |
13 | public protocol RequestDecoder {
   |                 `- note: protocol 'RequestDecoder' does not conform to the 'Sendable' protocol
14 |     func decode<T>(_ type: T.Type, from data: Data) throws -> T where T: Decodable
15 | }
   :
38 |
39 |             do {
40 |                 let decodedData = try decoder.decode(T.self, from: data)
   |                                       `- warning: capture of 'decoder' with non-sendable type 'any RequestDecoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 |                 completion(.success(decodedData))
42 |             } catch {
[10/32] Compiling AmuseKit RequestCoordinator.swift
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:24:16: warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
22 |
23 | public extension LibraryResourceConvertible where Model == LibraryAlbum {
24 |     static var albums = Self.init(rawValue: .albums)
   |                |- warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'albums' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'albums' 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
25 | }
26 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:28:16: warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
26 |
27 | public extension LibraryResourceConvertible where Model == LibraryArtist {
28 |     static var artists = Self.init(rawValue: .artists)
   |                |- warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'artists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'artists' 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
29 | }
30 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:32:16: warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |
31 | public extension LibraryResourceConvertible where Model == LibraryMusicVideo {
32 |     static var musicVideos = Self.init(rawValue: .musicVideos)
   |                |- warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'musicVideos' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'musicVideos' 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 | }
34 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:36:16: warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
34 |
35 | public extension LibraryResourceConvertible where Model == LibraryPlaylist {
36 |     static var playlists = Self.init(rawValue: .playlists)
   |                |- warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'playlists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'playlists' 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
37 | }
38 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:40:16: warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 |
39 | public extension LibraryResourceConvertible where Model == LibrarySong {
40 |     static var songs = Self.init(rawValue: .songs)
   |                |- warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'songs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'songs' 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
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:51:16: warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | public extension CatalogResourceConvertible where Model == CatalogAlbum {
51 |     static var albums = Self.init(rawValue: .albums)
   |                |- warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'albums' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'albums' 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
52 | }
53 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:55:16: warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
53 |
54 | public extension CatalogResourceConvertible where Model == CatalogArtist {
55 |     static var artists = Self.init(rawValue: .artists)
   |                |- warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'artists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'artists' 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
56 | }
57 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:59:16: warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | public extension CatalogResourceConvertible where Model == CatalogMusicVideo {
59 |     static var musicVideos = Self.init(rawValue: .musicVideos)
   |                |- warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'musicVideos' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'musicVideos' 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
60 | }
61 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:63:16: warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
61 |
62 | public extension CatalogResourceConvertible where Model == CatalogPlaylist {
63 |     static var playlists = Self.init(rawValue: .playlists)
   |                |- warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'playlists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'playlists' 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
64 | }
65 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:67:16: warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
65 |
66 | public extension CatalogResourceConvertible where Model == CatalogSong {
67 |     static var songs = Self.init(rawValue: .songs)
   |                |- warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'songs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'songs' 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
68 | }
69 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/RequestCoordinator.swift:31:17: warning: capture of 'completion' with non-sendable type '(RequestResult<T>) -> Void' (aka '(Result<T, any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 |         dataTask(with: request) { data, response, error in
30 |             if let error = error {
31 |                 completion(.failure(error))
   |                 |- warning: capture of 'completion' with non-sendable type '(RequestResult<T>) -> Void' (aka '(Result<T, any Error>) -> ()') 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'
32 |             }
33 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/RequestCoordinator.swift:40:39: warning: capture of 'decoder' with non-sendable type 'any RequestDecoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | public typealias RequestResult<T> = Result<T, Error>
12 |
13 | public protocol RequestDecoder {
   |                 `- note: protocol 'RequestDecoder' does not conform to the 'Sendable' protocol
14 |     func decode<T>(_ type: T.Type, from data: Data) throws -> T where T: Decodable
15 | }
   :
38 |
39 |             do {
40 |                 let decodedData = try decoder.decode(T.self, from: data)
   |                                       `- warning: capture of 'decoder' with non-sendable type 'any RequestDecoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 |                 completion(.success(decodedData))
42 |             } catch {
[11/32] Compiling AmuseKit CuratorResource.swift
[12/32] Compiling AmuseKit GenreResource.swift
[13/32] Compiling AmuseKit LibraryAlbum.swift
[14/32] Compiling AmuseKit LibrarySearchResponse.swift
[15/32] Compiling AmuseKit LibrarySong.swift
[16/32] Compiling AmuseKit StationResource.swift
[17/32] Compiling AmuseKit ResponseRoot.swift
[18/32] Compiling AmuseKit SearchResponse.swift
[19/32] Compiling AmuseKit Router.swift
[20/32] Compiling AmuseKit StorageService.swift
[21/32] Emitting module AmuseKit
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:24:16: warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
22 |
23 | public extension LibraryResourceConvertible where Model == LibraryAlbum {
24 |     static var albums = Self.init(rawValue: .albums)
   |                |- warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'albums' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'albums' 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
25 | }
26 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:28:16: warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
26 |
27 | public extension LibraryResourceConvertible where Model == LibraryArtist {
28 |     static var artists = Self.init(rawValue: .artists)
   |                |- warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'artists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'artists' 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
29 | }
30 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:32:16: warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |
31 | public extension LibraryResourceConvertible where Model == LibraryMusicVideo {
32 |     static var musicVideos = Self.init(rawValue: .musicVideos)
   |                |- warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'musicVideos' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'musicVideos' 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 | }
34 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:36:16: warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
34 |
35 | public extension LibraryResourceConvertible where Model == LibraryPlaylist {
36 |     static var playlists = Self.init(rawValue: .playlists)
   |                |- warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'playlists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'playlists' 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
37 | }
38 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:40:16: warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 |
39 | public extension LibraryResourceConvertible where Model == LibrarySong {
40 |     static var songs = Self.init(rawValue: .songs)
   |                |- warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'songs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'songs' 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
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:51:16: warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | public extension CatalogResourceConvertible where Model == CatalogAlbum {
51 |     static var albums = Self.init(rawValue: .albums)
   |                |- warning: static property 'albums' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'albums' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'albums' 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
52 | }
53 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:55:16: warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
53 |
54 | public extension CatalogResourceConvertible where Model == CatalogArtist {
55 |     static var artists = Self.init(rawValue: .artists)
   |                |- warning: static property 'artists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'artists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'artists' 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
56 | }
57 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:59:16: warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | public extension CatalogResourceConvertible where Model == CatalogMusicVideo {
59 |     static var musicVideos = Self.init(rawValue: .musicVideos)
   |                |- warning: static property 'musicVideos' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'musicVideos' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'musicVideos' 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
60 | }
61 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:63:16: warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
61 |
62 | public extension CatalogResourceConvertible where Model == CatalogPlaylist {
63 |     static var playlists = Self.init(rawValue: .playlists)
   |                |- warning: static property 'playlists' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'playlists' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'playlists' 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
64 | }
65 |
/Users/admin/builder/spi-builder-workspace/Sources/AmuseKit/Networking/Helpers/ResourceConvertible.swift:67:16: warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
65 |
66 | public extension CatalogResourceConvertible where Model == CatalogSong {
67 |     static var songs = Self.init(rawValue: .songs)
   |                |- warning: static property 'songs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'songs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'songs' 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
68 | }
69 |
[22/32] Compiling AmuseKit DataProvider.swift
[23/32] Compiling AmuseKit AmuseKitOption.swift
[24/32] Compiling AmuseKit Resource.swift
[25/32] Compiling AmuseKit CatalogAlbum.swift
[26/32] Compiling AmuseKit CatalogArtist.swift
[27/32] Compiling AmuseKit LibraryArtist.swift
[28/32] Compiling AmuseKit LibraryMusicVideo.swift
[29/32] Compiling AmuseKit LibraryPlaylist.swift
[30/32] Compiling AmuseKit CatalogMusicVideo.swift
[31/32] Compiling AmuseKit CatalogPlaylist.swift
[32/32] Compiling AmuseKit CatalogSong.swift
Build complete! (10.67s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "keychainaccess",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.0.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/kishikawakatsumi/KeychainAccess.git"
    }
  ],
  "manifest_display_name" : "AmuseKit",
  "name" : "AmuseKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "AmuseKit",
      "targets" : [
        "AmuseKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "AmuseKitTests",
      "module_type" : "SwiftTarget",
      "name" : "AmuseKitTests",
      "path" : "Tests/AmuseKitTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Catalog/catalog_albums.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Catalog/catalog_artists.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Catalog/catalog_music-videos.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Catalog/catalog_playlists.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Catalog/catalog_search.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Catalog/catalog_songs.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Library/library_albums.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Library/library_artists.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Library/library_music-videos.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Library/library_playlists.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Library/library_search.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/Library/library_songs.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmuseKitTests/DataModels/invalid_authentication.json",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Helpers/MockDataProvider.swift",
        "Helpers/MockRequestCoordinator.swift",
        "Helpers/MockStorageService.swift",
        "Networking/DataProviderTests.swift",
        "Networking/RouterTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "AmuseKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AmuseKit",
      "module_type" : "SwiftTarget",
      "name" : "AmuseKit",
      "path" : "Sources/AmuseKit",
      "product_dependencies" : [
        "KeychainAccess"
      ],
      "product_memberships" : [
        "AmuseKit"
      ],
      "sources" : [
        "AmuseKit.swift",
        "Models/Codable/EmptyCodable.swift",
        "Models/Relationship.swift",
        "Models/Resource.swift",
        "Models/Resources/CatalogAlbum.swift",
        "Models/Resources/CatalogArtist.swift",
        "Models/Resources/CatalogMusicVideo.swift",
        "Models/Resources/CatalogPlaylist.swift",
        "Models/Resources/CatalogSong.swift",
        "Models/Resources/CuratorResource.swift",
        "Models/Resources/GenreResource.swift",
        "Models/Resources/LibraryAlbum.swift",
        "Models/Resources/LibraryArtist.swift",
        "Models/Resources/LibraryMusicVideo.swift",
        "Models/Resources/LibraryPlaylist.swift",
        "Models/Resources/LibrarySearchResponse.swift",
        "Models/Resources/LibrarySong.swift",
        "Models/Resources/StationResource.swift",
        "Models/ResponseRoot.swift",
        "Models/SearchResponse.swift",
        "Networking/DataProvider.swift",
        "Networking/Helpers/AmuseKitOption.swift",
        "Networking/Helpers/ResourceConvertible.swift",
        "Networking/RequestCoordinator.swift",
        "Networking/Router.swift",
        "Storage/StorageService.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
Done.