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 Athena, reference 0.0.12 (a4e351), with Swift 6.1 for Linux on 27 Apr 2025 14:05:55 UTC.

Swift 6 data race errors: 9

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/vsanthanam/Athena.git
Reference: 0.0.12
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/vsanthanam/Athena
 * tag               0.0.12     -> FETCH_HEAD
HEAD is now at a4e3517 Add custom string interpolation for `JSONEncodable` conforming types (#26)
Cloned https://github.com/vsanthanam/Athena.git
Revision (git rev-parse @):
a4e3517d00cf0bbef9dc3c7f7b972b3024ff8a76
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/vsanthanam/Athena.git at 0.0.12
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.1
Building package at path:  $PWD
https://github.com/vsanthanam/Athena.git
https://github.com/vsanthanam/Athena.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    },
    {
      "identity" : "swiftformat",
      "requirement" : {
        "exact" : [
          "0.51.7"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/nicklockwood/SwiftFormat"
    }
  ],
  "manifest_display_name" : "Athena",
  "name" : "Athena",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.14"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "5.0"
    }
  ],
  "products" : [
    {
      "name" : "Athena",
      "targets" : [
        "Athena"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "AthenaTests",
      "module_type" : "SwiftTarget",
      "name" : "AthenaTests",
      "path" : "Tests/AthenaTests",
      "sources" : [
        "DeserializerTests.swift",
        "EncodeDecodeTests.swift",
        "JSONEncodingUTFTestFixtures.swift",
        "JSONTests.swift"
      ],
      "target_dependencies" : [
        "Athena"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Athena",
      "module_type" : "SwiftTarget",
      "name" : "Athena",
      "path" : "Sources/Athena",
      "product_memberships" : [
        "Athena"
      ],
      "sources" : [
        "Decoder.swift",
        "Deserializer.swift",
        "DeserializerOptions.swift",
        "Encoder.swift",
        "EncodingDetector.swift",
        "Error.swift",
        "Internal/IntExtensions.swift",
        "Internal/NumberParser.swift",
        "Internal/SerializationOptionsExtensions.swift",
        "Internal/StringExtensions.swift",
        "Internal/UInt8Extensions.swift",
        "Internal/UnicodeEscapeParser.swift",
        "JSON.swift",
        "JSONCodable.swift",
        "JSONSubscriptRepresentable.swift",
        "Literal.swift",
        "LiteralDecodable.swift",
        "Number.swift",
        "NumberDecodable.swift",
        "Serializer.swift",
        "SerializerOptions.swift",
        "StringInterpolationExtensions.swift",
        "Subscript.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Fetching https://github.com/apple/swift-docc-plugin
Fetching https://github.com/nicklockwood/SwiftFormat
[1/2049] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-docc-plugin from cache (0.36s)
[1/46730] Fetching swiftformat
warning: 'swiftformat': skipping cache due to an error: Failed to clone repository https://github.com/nicklockwood/SwiftFormat:
    Cloning into bare repository '/root/.cache/org.swift.swiftpm/repositories/SwiftFormat-92afd852'...
    remote: Enumerating objects: 46730, done.
    remote: Counting objects:   0% (1/1580)        
remote: Counting objects:   1% (16/1580)        
remote: Counting objects:   2% (32/1580)        
remote: Counting objects:   3% (48/1580)        
remote: Counting objects:   4% (64/1580)        
remote: Counting objects:   5% (79/1580)        
remote: Counting objects:   6% (95/1580)        
remote: Counting objects:   7% (111/1580)        
remote: Counting objects:   8% (127/1580)        
remote: Counting objects:   9% (143/1580)        
remote: Counting objects:  10% (158/1580)        
remote: Counting objects:  11% (174/1580)        
remote: Counting objects:  12% (190/1580)        
remote: Counting objects:  13% (206/1580)        
remote: Counting objects:  14% (222/1580)        
remote: Counting objects:  15% (237/1580)        
remote: Counting objects:  16% (253/1580)        
remote: Counting objects:  17% (269/1580)        
remote: Counting objects:  18% (285/1580)        
remote: Counting objects:  19% (301/1580)        
remote: Counting objects:  20% (316/1580)        
remote: Counting objects:  21% (332/1580)        
remote: Counting objects:  22% (348/1580)        
remote: Counting objects:  23% (364/1580)        
remote: Counting objects:  24% (380/1580)        
remote: Counting objects:  25% (395/1580)        
remote: Counting objects:  26% (411/1580)        
remote: Counting objects:  27% (427/1580)        
remote: Counting objects:  28% (443/1580)        
remote: Counting objects:  29% (459/1580)        
remote: Counting objects:  30% (474/1580)        
remote: Counting objects:  31% (490/1580)        
remote: Counting objects:  32% (506/1580)        
remote: Counting objects:  33% (522/1580)        
remote: Counting objects:  34% (538/1580)        
remote: Counting objects:  35% (553/1580)        
remote: Counting objects:  36% (569/1580)        
remote: Counting objects:  37% (585/1580)        
remote: Counting objects:  38% (601/1580)        
remote: Counting objects:  39% (617/1580)        
remote: Counting objects:  40% (632/1580)        
remote: Counting objects:  41% (648/1580)        
remote: Counting objects:  42% (664/1580)        
remote: Counting objects:  43% (680/1580)        
remote: Counting objects:  44% (696/1580)        
remote: Counting objects:  45% (711/1580)        
remote: Counting objects:  46% (727/1580)        
remote: Counting objects:  47% (743/1580)        
remote: Counting objects:  48% (759/1580)        
remote: Counting objects:  49% (775/1580)        
remote: Counting objects:  50% (790/1580)        
remote: Counting objects:  51% (806/1580)        
remote: Counting objects:  52% (822/1580)        
remote: Counting objects:  53% (838/1580)        
remote: Counting objects:  54% (854/1580)        
remote: Counting objects:  55% (869/1580)        
remote: Counting objects:  56% (885/1580)        
remote: Counting objects:  57% (901/1580)        
remote: Counting objects:  58% (917/1580)        
remote: Counting objects:  59% (933/1580)        
remote: Counting objects:  60% (948/1580)        
remote: Counting objects:  61% (964/1580)        
remote: Counting objects:  62% (980/1580)        
remote: Counting objects:  63% (996/1580)        
remote: Counting objects:  64% (1012/1580)        
remote: Counting objects:  65% (1027/1580)        
remote: Counting objects:  66% (1043/1580)        
remote: Counting objects:  67% (1059/1580)        
remote: Counting objects:  68% (1075/1580)        
remote: Counting objects:  69% (1091/1580)        
remote: Counting objects:  70% (1106/1580)        
remote: Counting objects:  71% (1122/1580)        
remote: Counting objects:  72% (1138/1580)        
remote: Counting objects:  73% (1154/1580)        
remote: Counting objects:  74% (1170/1580)        
remote: Counting objects:  75% (1185/1580)        
remote: Counting objects:  76% (1201/1580)        
remote: Counting objects:  77% (1217/1580)        
remote: Counting objects:  78% (1233/1580)        
remote: Counting objects:  79% (1249/1580)        
remote: Counting objects:  80% (1264/1580)        
remote: Counting objects:  81% (1280/1580)        
remote: Counting objects:  82% (1296/1580)        
remote: Counting objects:  83% (1312/1580)        
remote: Counting objects:  84% (1328/1580)        
remote: Counting objects:  85% (1343/1580)        
remote: Counting objects:  86% (1359/1580)        
remote: Counting objects:  87% (1375/1580)        
remote: Counting objects:  88% (1391/1580)        
remote: Counting objects:  89% (1407/1580)        
remote: Counting objects:  90% (1422/1580)        
remote: Counting objects:  91% (1438/1580)        
remote: Counting objects:  92% (1454/1580)        
remote: Counting objects:  93% (1470/1580)        
remote: Counting objects:  94% (1486/1580)        
remote: Counting objects:  95% (1501/1580)        
remote: Counting objects:  96% (1517/1580)        
remote: Counting objects:  97% (1533/1580)        
remote: Counting objects:  98% (1549/1580)        
remote: Counting objects:  99% (1565/1580)        
remote: Counting objects: 100% (1580/1580)        
remote: Counting objects: 100% (1580/1580), done.
    remote: Compressing objects:   0% (1/325)        
remote: Compressing objects:   1% (4/325)        
remote: Compressing objects:   2% (7/325)        
remote: Compressing objects:   3% (10/325)        
remote: Compressing objects:   4% (13/325)        
remote: Compressing objects:   5% (17/325)        
remote: Compressing objects:   6% (20/325)        
remote: Compressing objects:   7% (23/325)        
remote: Compressing objects:   8% (26/325)        
remote: Compressing objects:   9% (30/325)        
remote: Compressing objects:  10% (33/325)        
remote: Compressing objects:  11% (36/325)        
remote: Compressing objects:  12% (39/325)        
remote: Compressing objects:  13% (43/325)        
remote: Compressing objects:  14% (46/325)        
remote: Compressing objects:  15% (49/325)        
remote: Compressing objects:  16% (52/325)        
remote: Compressing objects:  17% (56/325)        
remote: Compressing objects:  18% (59/325)        
remote: Compressing objects:  19% (62/325)        
remote: Compressing objects:  20% (65/325)        
remote: Compressing objects:  21% (69/325)        
remote: Compressing objects:  22% (72/325)        
remote: Compressing objects:  23% (75/325)        
remote: Compressing objects:  24% (78/325)        
remote: Compressing objects:  25% (82/325)        
remote: Compressing objects:  26% (85/325)        
remote: Compressing objects:  27% (88/325)        
remote: Compressing objects:  28% (91/325)        
remote: Compressing objects:  29% (95/325)        
remote: Compressing objects:  30% (98/325)        
remote: Compressing objects:  31% (101/325)        
remote: Compressing objects:  32% (104/325)        
remote: Compressing objects:  33% (108/325)        
remote: Compressing objects:  34% (111/325)        
remote: Compressing objects:  35% (114/325)        
remote: Compressing objects:  36% (117/325)        
remote: Compressing objects:  37% (121/325)        
remote: Compressing objects:  38% (124/325)        
remote: Compressing objects:  39% (127/325)        
remote: Compressing objects:  40% (130/325)        
remote: Compressing objects:  41% (134/325)        
remote: Compressing objects:  42% (137/325)        
remote: Compressing objects:  43% (140/325)        
remote: Compressing objects:  44% (143/325)        
remote: Compressing objects:  45% (147/325)        
remote: Compressing objects:  46% (150/325)        
remote: Compressing objects:  47% (153/325)        
remote: Compressing objects:  48% (156/325)        
remote: Compressing objects:  49% (160/325)        
remote: Compressing objects:  50% (163/325)        
remote: Compressing objects:  51% (166/325)        
remote: Compressing objects:  52% (169/325)        
remote: Compressing objects:  53% (173/325)        
remote: Compressing objects:  54% (176/325)        
remote: Compressing objects:  55% (179/325)        
remote: Compressing objects:  56% (182/325)        
remote: Compressing objects:  57% (186/325)        
remote: Compressing objects:  58% (189/325)        
remote: Compressing objects:  59% (192/325)        
remote: Compressing objects:  60% (195/325)        
remote: Compressing objects:  61% (199/325)        
remote: Compressing objects:  62% (202/325)        
remote: Compressing objects:  63% (205/325)        
remote: Compressing objects:  64% (208/325)        
remote: Compressing objects:  65% (212/325)        
remote: Compressing objects:  66% (215/325)        
remote: Compressing objects:  67% (218/325)        
remote: Compressing objects:  68% (221/325)        
remote: Compressing objects:  69% (225/325)        
remote: Compressing objects:  70% (228/325)        
remote: Compressing objects:  71% (231/325)        
remote: Compressing objects:  72% (234/325)        
remote: Compressing objects:  73% (238/325)        
remote: Compressing objects:  74% (241/325)        
remote: Compressing objects:  75% (244/325)        
remote: Compressing objects:  76% (247/325)        
remote: Compressing objects:  77% (251/325)        
remote: Compressing objects:  78% (254/325)        
remote: Compressing objects:  79% (257/325)        
remote: Compressing objects:  80% (260/325)        
remote: Compressing objects:  81% (264/325)        
remote: Compressing objects:  82% (267/325)        
remote: Compressing objects:  83% (270/325)        
remote: Compressing objects:  84% (273/325)        
remote: Compressing objects:  85% (277/325)        
remote: Compressing objects:  86% (280/325)        
remote: Compressing objects:  87% (283/325)        
remote: Compressing objects:  88% (286/325)        
remote: Compressing objects:  89% (290/325)        
remote: Compressing objects:  90% (293/325)        
remote: Compressing objects:  91% (296/325)        
remote: Compressing objects:  92% (299/325)        
remote: Compressing objects:  93% (303/325)        
remote: Compressing objects:  94% (306/325)        
remote: Compressing objects:  95% (309/325)        
remote: Compressing objects:  96% (312/325)        
remote: Compressing objects:  97% (316/325)        
remote: Compressing objects:  98% (319/325)        
remote: Compressing objects:  99% (322/325)        
remote: Compressing objects: 100% (325/325)        
remote: Compressing objects: 100% (325/325), done.
    Receiving objects:   0% (1/46730)
Receiving objects:   1% (468/46730)
Receiving objects:   2% (935/46730)
Receiving objects:   3% (1402/46730)
Receiving objects:   4% (1870/46730)
Receiving objects:   5% (2337/46730)
Receiving objects:   6% (2804/46730)
Receiving objects:   7% (3272/46730)
Receiving objects:   8% (3739/46730)
Receiving objects:   9% (4206/46730)
Receiving objects:  10% (4673/46730)
Receiving objects:  11% (5141/46730), 17.28 MiB | 34.54 MiB/s
Receiving objects:  12% (5608/46730), 17.28 MiB | 34.54 MiB/s
Receiving objects:  12% (5995/46730), 38.05 MiB | 38.04 MiB/s
error: 7423 bytes of body are still expected
    fetch-pack: unexpected disconnect while reading sideband packet
    fatal: early EOF
    fatal: fetch-pack: invalid index-pack output
Fetching https://github.com/nicklockwood/SwiftFormat
Fetched https://github.com/nicklockwood/SwiftFormat from cache (21.18s)
Computing version for https://github.com/nicklockwood/SwiftFormat
Computed https://github.com/nicklockwood/SwiftFormat at 0.51.7 (34.93s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.3 (0.49s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3375] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.34s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.85s)
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
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.3
Creating working copy for https://github.com/nicklockwood/SwiftFormat
Working copy of https://github.com/nicklockwood/SwiftFormat resolved at 0.51.7
[1/1] Compiling plugin SwiftFormatPlugin
[2/2] Compiling plugin Swift-DocC Preview
[3/3] Compiling plugin Swift-DocC
Building for debugging...
[3/5] Write sources
[4/5] Write swift-version-24593BA9C3E375BF.txt
[6/27] Emitting module Athena
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:35:27: warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
33 |
34 |         /// Allow fragments
35 |         public static let fragmentsAllowed = Options(rawValue: 1 << 0)
   |                           |- warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'fragmentsAllowed' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 |         /// Remove keys from objects with null values
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:38:27: warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
   :
36 |
37 |         /// Remove keys from objects with null values
38 |         public static let nullSkipsKey = Options(rawValue: 1 << 1)
   |                           |- warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'nullSkipsKey' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 |
40 |         /// The default options
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:41:27: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
   :
39 |
40 |         /// The default options
41 |         public static let `default`: Options = [.fragmentsAllowed]
   |                           |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' 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
42 |
43 |         // MARK: - OptionSet
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:35:27: warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
 33 |
 34 |         /// Remove keys from objects with null values
 35 |         public static let nullSkipsKey = Options(rawValue: 1 << 0)
    |                           |- warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'nullSkipsKey' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |
 37 |         /// Add pretty printing format to the string
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:38:27: warning: static property 'prettyPrinted' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 36 |
 37 |         /// Add pretty printing format to the string
 38 |         public static let prettyPrinted = Options(rawValue: 1 << 1)
    |                           |- warning: static property 'prettyPrinted' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'prettyPrinted' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |
 40 |         /// Sort the keys in an object
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:41:27: warning: static property 'sortedKeys' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 39 |
 40 |         /// Sort the keys in an object
 41 |         public static let sortedKeys = Options(rawValue: 1 << 2)
    |                           |- warning: static property 'sortedKeys' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'sortedKeys' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 |         /// Allow fragments
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:44:27: warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 42 |
 43 |         /// Allow fragments
 44 |         public static let fragmentsAllowed = Options(rawValue: 1 << 4)
    |                           |- warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'fragmentsAllowed' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 45 |
 46 |         /// Remove escaping slashes
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:48:27: warning: static property 'withoutEscapingSlashes' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 46 |         /// Remove escaping slashes
 47 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 48 |         public static let withoutEscapingSlashes = Options(rawValue: 1 << 5)
    |                           |- warning: static property 'withoutEscapingSlashes' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'withoutEscapingSlashes' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 49 |
 50 |         /// The default options
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:51:27: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 49 |
 50 |         /// The default options
 51 |         public static let `default`: Options = [.fragmentsAllowed]
    |                           |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' 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
 52 |
 53 |         // MARK: - OptionSet
[7/29] Compiling Athena Literal.swift
[8/29] Compiling Athena LiteralDecodable.swift
[9/29] Compiling Athena Number.swift
[10/29] Compiling Athena NumberDecodable.swift
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:113:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
111 |             DispatchQueue.global().async {
112 |                 let result = Result<Data, any Swift.Error> {
113 |                     try serialize(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
114 |                 }
115 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:115:17: warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<Data, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
113 |                     try serialize(json, options: options)
114 |                 }
115 |                 completionHandler(json, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<Data, 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'
116 |             }
117 |         }
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:113:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
111 |             DispatchQueue.global().async {
112 |                 let result = Result<Data, any Swift.Error> {
113 |                     try serialize(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
114 |                 }
115 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:147:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
145 |             DispatchQueue.global().async {
146 |                 let result = Result {
147 |                     try stringify(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
148 |                 }
149 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:149:17: warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<String, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
147 |                     try stringify(json, options: options)
148 |                 }
149 |                 completionHandler(json, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<String, 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'
150 |             }
151 |         }
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:147:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
145 |             DispatchQueue.global().async {
146 |                 let result = Result {
147 |                     try stringify(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
148 |                 }
149 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:35:27: warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
 33 |
 34 |         /// Remove keys from objects with null values
 35 |         public static let nullSkipsKey = Options(rawValue: 1 << 0)
    |                           |- warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'nullSkipsKey' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |
 37 |         /// Add pretty printing format to the string
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:38:27: warning: static property 'prettyPrinted' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 36 |
 37 |         /// Add pretty printing format to the string
 38 |         public static let prettyPrinted = Options(rawValue: 1 << 1)
    |                           |- warning: static property 'prettyPrinted' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'prettyPrinted' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |
 40 |         /// Sort the keys in an object
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:41:27: warning: static property 'sortedKeys' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 39 |
 40 |         /// Sort the keys in an object
 41 |         public static let sortedKeys = Options(rawValue: 1 << 2)
    |                           |- warning: static property 'sortedKeys' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'sortedKeys' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 |         /// Allow fragments
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:44:27: warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 42 |
 43 |         /// Allow fragments
 44 |         public static let fragmentsAllowed = Options(rawValue: 1 << 4)
    |                           |- warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'fragmentsAllowed' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 45 |
 46 |         /// Remove escaping slashes
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:48:27: warning: static property 'withoutEscapingSlashes' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 46 |         /// Remove escaping slashes
 47 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 48 |         public static let withoutEscapingSlashes = Options(rawValue: 1 << 5)
    |                           |- warning: static property 'withoutEscapingSlashes' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'withoutEscapingSlashes' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 49 |
 50 |         /// The default options
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:51:27: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 49 |
 50 |         /// The default options
 51 |         public static let `default`: Options = [.fragmentsAllowed]
    |                           |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' 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
 52 |
 53 |         // MARK: - OptionSet
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:78:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 76 |             options: Options = .default
 77 |         ) async throws -> Data {
 78 |             try await Task { try serialize(json, options: options) }.value
    |                            |                              `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 79 |         }
 80 |
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:133:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
131 |             options: Options = .default
132 |         ) async throws -> String {
133 |             try await Task { try stringify(json, options: options) }.value
    |                            |                              `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
134 |         }
135 |
[11/29] Compiling Athena Serializer.swift
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:113:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
111 |             DispatchQueue.global().async {
112 |                 let result = Result<Data, any Swift.Error> {
113 |                     try serialize(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
114 |                 }
115 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:115:17: warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<Data, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
113 |                     try serialize(json, options: options)
114 |                 }
115 |                 completionHandler(json, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<Data, 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'
116 |             }
117 |         }
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:113:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
111 |             DispatchQueue.global().async {
112 |                 let result = Result<Data, any Swift.Error> {
113 |                     try serialize(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
114 |                 }
115 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:147:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
145 |             DispatchQueue.global().async {
146 |                 let result = Result {
147 |                     try stringify(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
148 |                 }
149 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:149:17: warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<String, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
147 |                     try stringify(json, options: options)
148 |                 }
149 |                 completionHandler(json, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<String, 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'
150 |             }
151 |         }
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:147:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
145 |             DispatchQueue.global().async {
146 |                 let result = Result {
147 |                     try stringify(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
148 |                 }
149 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:35:27: warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
 33 |
 34 |         /// Remove keys from objects with null values
 35 |         public static let nullSkipsKey = Options(rawValue: 1 << 0)
    |                           |- warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'nullSkipsKey' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |
 37 |         /// Add pretty printing format to the string
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:38:27: warning: static property 'prettyPrinted' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 36 |
 37 |         /// Add pretty printing format to the string
 38 |         public static let prettyPrinted = Options(rawValue: 1 << 1)
    |                           |- warning: static property 'prettyPrinted' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'prettyPrinted' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |
 40 |         /// Sort the keys in an object
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:41:27: warning: static property 'sortedKeys' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 39 |
 40 |         /// Sort the keys in an object
 41 |         public static let sortedKeys = Options(rawValue: 1 << 2)
    |                           |- warning: static property 'sortedKeys' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'sortedKeys' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 |         /// Allow fragments
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:44:27: warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 42 |
 43 |         /// Allow fragments
 44 |         public static let fragmentsAllowed = Options(rawValue: 1 << 4)
    |                           |- warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'fragmentsAllowed' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 45 |
 46 |         /// Remove escaping slashes
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:48:27: warning: static property 'withoutEscapingSlashes' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 46 |         /// Remove escaping slashes
 47 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 48 |         public static let withoutEscapingSlashes = Options(rawValue: 1 << 5)
    |                           |- warning: static property 'withoutEscapingSlashes' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'withoutEscapingSlashes' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 49 |
 50 |         /// The default options
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:51:27: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 49 |
 50 |         /// The default options
 51 |         public static let `default`: Options = [.fragmentsAllowed]
    |                           |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' 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
 52 |
 53 |         // MARK: - OptionSet
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:78:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 76 |             options: Options = .default
 77 |         ) async throws -> Data {
 78 |             try await Task { try serialize(json, options: options) }.value
    |                            |                              `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 79 |         }
 80 |
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:133:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
131 |             options: Options = .default
132 |         ) async throws -> String {
133 |             try await Task { try stringify(json, options: options) }.value
    |                            |                              `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
134 |         }
135 |
[12/29] Compiling Athena SerializerOptions.swift
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:113:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
111 |             DispatchQueue.global().async {
112 |                 let result = Result<Data, any Swift.Error> {
113 |                     try serialize(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
114 |                 }
115 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:115:17: warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<Data, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
113 |                     try serialize(json, options: options)
114 |                 }
115 |                 completionHandler(json, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<Data, 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'
116 |             }
117 |         }
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:113:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
111 |             DispatchQueue.global().async {
112 |                 let result = Result<Data, any Swift.Error> {
113 |                     try serialize(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
114 |                 }
115 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:147:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
145 |             DispatchQueue.global().async {
146 |                 let result = Result {
147 |                     try stringify(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
148 |                 }
149 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:149:17: warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<String, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
147 |                     try stringify(json, options: options)
148 |                 }
149 |                 completionHandler(json, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<String, 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'
150 |             }
151 |         }
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:147:50: warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
145 |             DispatchQueue.global().async {
146 |                 let result = Result {
147 |                     try stringify(json, options: options)
    |                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Serializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
148 |                 }
149 |                 completionHandler(json, result)
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:35:27: warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
 33 |
 34 |         /// Remove keys from objects with null values
 35 |         public static let nullSkipsKey = Options(rawValue: 1 << 0)
    |                           |- warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'nullSkipsKey' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |
 37 |         /// Add pretty printing format to the string
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:38:27: warning: static property 'prettyPrinted' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 36 |
 37 |         /// Add pretty printing format to the string
 38 |         public static let prettyPrinted = Options(rawValue: 1 << 1)
    |                           |- warning: static property 'prettyPrinted' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'prettyPrinted' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |
 40 |         /// Sort the keys in an object
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:41:27: warning: static property 'sortedKeys' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 39 |
 40 |         /// Sort the keys in an object
 41 |         public static let sortedKeys = Options(rawValue: 1 << 2)
    |                           |- warning: static property 'sortedKeys' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'sortedKeys' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 |         /// Allow fragments
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:44:27: warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 42 |
 43 |         /// Allow fragments
 44 |         public static let fragmentsAllowed = Options(rawValue: 1 << 4)
    |                           |- warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'fragmentsAllowed' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 45 |
 46 |         /// Remove escaping slashes
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:48:27: warning: static property 'withoutEscapingSlashes' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 46 |         /// Remove escaping slashes
 47 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 48 |         public static let withoutEscapingSlashes = Options(rawValue: 1 << 5)
    |                           |- warning: static property 'withoutEscapingSlashes' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'withoutEscapingSlashes' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 49 |
 50 |         /// The default options
/host/spi-builder-workspace/Sources/Athena/SerializerOptions.swift:51:27: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Serializer``
 30 |     struct Options: OptionSet {
    |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |
 32 |         // MARK: - API
    :
 49 |
 50 |         /// The default options
 51 |         public static let `default`: Options = [.fragmentsAllowed]
    |                           |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Serializer.Options' 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
 52 |
 53 |         // MARK: - OptionSet
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:78:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 76 |             options: Options = .default
 77 |         ) async throws -> Data {
 78 |             try await Task { try serialize(json, options: options) }.value
    |                            |                              `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 79 |         }
 80 |
/host/spi-builder-workspace/Sources/Athena/Serializer.swift:133:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
131 |             options: Options = .default
132 |         ) async throws -> String {
133 |             try await Task { try stringify(json, options: options) }.value
    |                            |                              `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
134 |         }
135 |
[13/29] Compiling Athena Encoder.swift
/host/spi-builder-workspace/Sources/Athena/Encoder.swift:99:35: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 92 |         @available(watchOS, deprecated: 8.0, message: "Use the Swift Concurrency based APIs instead.")
 93 |         @available(tvOS, deprecated: 15.0, message: "Use the Swift Concurrency based APIs instead.")
 94 |         public static func encode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 95 |             _ value: T,
 96 |             completionHandler: @escaping (T, JSON) -> Void
 97 |         ) where T: JSONEncodable {
 98 |             DispatchQueue.global().async {
 99 |                 let json = encode(value)
    |                                   `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure; this is an error in the Swift 6 language mode
100 |                 completionHandler(value, json)
101 |             }
/host/spi-builder-workspace/Sources/Athena/Encoder.swift:100:17: warning: capture of 'completionHandler' with non-sendable type '(T, JSON) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 98 |             DispatchQueue.global().async {
 99 |                 let json = encode(value)
100 |                 completionHandler(value, json)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(T, JSON) -> 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'
101 |             }
102 |         }
/host/spi-builder-workspace/Sources/Athena/Encoder.swift:69:24: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 67 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 68 |         public static func encode<T>(_ value: T) async -> JSON where T: JSONEncodable {
 69 |             await Task { encode(value) }.value
    |                        |        `- note: closure captures 'value' which is accessible to code in the current task
    |                        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 70 |         }
 71 |
[14/29] Compiling Athena EncodingDetector.swift
/host/spi-builder-workspace/Sources/Athena/Encoder.swift:99:35: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 92 |         @available(watchOS, deprecated: 8.0, message: "Use the Swift Concurrency based APIs instead.")
 93 |         @available(tvOS, deprecated: 15.0, message: "Use the Swift Concurrency based APIs instead.")
 94 |         public static func encode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 95 |             _ value: T,
 96 |             completionHandler: @escaping (T, JSON) -> Void
 97 |         ) where T: JSONEncodable {
 98 |             DispatchQueue.global().async {
 99 |                 let json = encode(value)
    |                                   `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure; this is an error in the Swift 6 language mode
100 |                 completionHandler(value, json)
101 |             }
/host/spi-builder-workspace/Sources/Athena/Encoder.swift:100:17: warning: capture of 'completionHandler' with non-sendable type '(T, JSON) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 98 |             DispatchQueue.global().async {
 99 |                 let json = encode(value)
100 |                 completionHandler(value, json)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(T, JSON) -> 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'
101 |             }
102 |         }
/host/spi-builder-workspace/Sources/Athena/Encoder.swift:69:24: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 67 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 68 |         public static func encode<T>(_ value: T) async -> JSON where T: JSONEncodable {
 69 |             await Task { encode(value) }.value
    |                        |        `- note: closure captures 'value' which is accessible to code in the current task
    |                        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 70 |         }
 71 |
[15/29] Compiling Athena Error.swift
/host/spi-builder-workspace/Sources/Athena/Encoder.swift:99:35: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 92 |         @available(watchOS, deprecated: 8.0, message: "Use the Swift Concurrency based APIs instead.")
 93 |         @available(tvOS, deprecated: 15.0, message: "Use the Swift Concurrency based APIs instead.")
 94 |         public static func encode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 95 |             _ value: T,
 96 |             completionHandler: @escaping (T, JSON) -> Void
 97 |         ) where T: JSONEncodable {
 98 |             DispatchQueue.global().async {
 99 |                 let json = encode(value)
    |                                   `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure; this is an error in the Swift 6 language mode
100 |                 completionHandler(value, json)
101 |             }
/host/spi-builder-workspace/Sources/Athena/Encoder.swift:100:17: warning: capture of 'completionHandler' with non-sendable type '(T, JSON) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 98 |             DispatchQueue.global().async {
 99 |                 let json = encode(value)
100 |                 completionHandler(value, json)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(T, JSON) -> 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'
101 |             }
102 |         }
/host/spi-builder-workspace/Sources/Athena/Encoder.swift:69:24: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 67 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 68 |         public static func encode<T>(_ value: T) async -> JSON where T: JSONEncodable {
 69 |             await Task { encode(value) }.value
    |                        |        `- note: closure captures 'value' which is accessible to code in the current task
    |                        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 70 |         }
 71 |
[16/29] Compiling Athena StringInterpolationExtensions.swift
[17/29] Compiling Athena Subscript.swift
[18/29] Compiling Athena JSON.swift
[19/29] Compiling Athena JSONCodable.swift
[20/29] Compiling Athena JSONSubscriptRepresentable.swift
[21/29] Compiling Athena Decoder.swift
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:82:23: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 76 |         /// - Throws: A ``JSON/Error`` if the value could not be decoded successfully
 77 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 78 |         public static func decode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |             _ type: T.Type = T.self,
 80 |             from json: JSON
 81 |         ) async throws -> T where T: JSONDecodable {
 82 |             try await Task { try decode(type, from: json) }.value
    |                       `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         }
 84 |
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:82:23: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 76 |         /// - Throws: A ``JSON/Error`` if the value could not be decoded successfully
 77 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 78 |         public static func decode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |             _ type: T.Type = T.self,
 80 |             from json: JSON
 81 |         ) async throws -> T where T: JSONDecodable {
 82 |             try await Task { try decode(type, from: json) }.value
    |                       `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         }
 84 |
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:82:61: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 76 |         /// - Throws: A ``JSON/Error`` if the value could not be decoded successfully
 77 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 78 |         public static func decode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |             _ type: T.Type = T.self,
 80 |             from json: JSON
 81 |         ) async throws -> T where T: JSONDecodable {
 82 |             try await Task { try decode(type, from: json) }.value
    |                                                             `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         }
 84 |
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:122:17: warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<T, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
120 |                     try decode(type, from: json)
121 |                 }
122 |                 completionHandler(json, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<T, 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'
123 |             }
124 |         }
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:116:66: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
114 |             DispatchQueue.global().async {
115 |                 let result: Result<JSON, any Swift.Error> = .init {
116 |                     try parse(data, maximumDepth: .max, options: options)
    |                                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
117 |                 }
118 |                 completionHandler(data, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:118:17: warning: capture of 'completionHandler' with non-sendable type '(Data, Result<JSON, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
116 |                     try parse(data, maximumDepth: .max, options: options)
117 |                 }
118 |                 completionHandler(data, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(Data, Result<JSON, 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'
119 |             }
120 |         }
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:116:66: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
114 |             DispatchQueue.global().async {
115 |                 let result: Result<JSON, any Swift.Error> = .init {
116 |                     try parse(data, maximumDepth: .max, options: options)
    |                                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
117 |                 }
118 |                 completionHandler(data, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:202:72: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
200 |             DispatchQueue.global().async {
201 |                 let result: Result<JSON, any Swift.Error> = .init {
202 |                     try parse(jsonString, maximumDepth: .max, options: options)
    |                                                                        `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
203 |                 }
204 |                 completionHandler(jsonString, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:204:17: warning: capture of 'completionHandler' with non-sendable type '(String, Result<JSON, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
202 |                     try parse(jsonString, maximumDepth: .max, options: options)
203 |                 }
204 |                 completionHandler(jsonString, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(String, Result<JSON, 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'
205 |             }
206 |         }
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:202:72: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
200 |             DispatchQueue.global().async {
201 |                 let result: Result<JSON, any Swift.Error> = .init {
202 |                     try parse(jsonString, maximumDepth: .max, options: options)
    |                                                                        `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
203 |                 }
204 |                 completionHandler(jsonString, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:35:27: warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
33 |
34 |         /// Allow fragments
35 |         public static let fragmentsAllowed = Options(rawValue: 1 << 0)
   |                           |- warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'fragmentsAllowed' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 |         /// Remove keys from objects with null values
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:38:27: warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
   :
36 |
37 |         /// Remove keys from objects with null values
38 |         public static let nullSkipsKey = Options(rawValue: 1 << 1)
   |                           |- warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'nullSkipsKey' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 |
40 |         /// The default options
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:41:27: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
   :
39 |
40 |         /// The default options
41 |         public static let `default`: Options = [.fragmentsAllowed]
   |                           |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' 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
42 |
43 |         // MARK: - OptionSet
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:80:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 78 |             options: Options = .default
 79 |         ) async throws -> JSON {
 80 |             try await Task { try parse(data, maximumDepth: .max, options: options) }.value
    |                            |                                              `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 81 |         }
 82 |
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:166:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
164 |             options: Options = .default
165 |         ) async throws -> JSON {
166 |             try await Task { try parse(jsonString, maximumDepth: .max, options: options) }.value
    |                            |                                                    `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
167 |         }
168 |
[22/29] Compiling Athena Deserializer.swift
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:82:23: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 76 |         /// - Throws: A ``JSON/Error`` if the value could not be decoded successfully
 77 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 78 |         public static func decode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |             _ type: T.Type = T.self,
 80 |             from json: JSON
 81 |         ) async throws -> T where T: JSONDecodable {
 82 |             try await Task { try decode(type, from: json) }.value
    |                       `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         }
 84 |
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:82:23: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 76 |         /// - Throws: A ``JSON/Error`` if the value could not be decoded successfully
 77 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 78 |         public static func decode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |             _ type: T.Type = T.self,
 80 |             from json: JSON
 81 |         ) async throws -> T where T: JSONDecodable {
 82 |             try await Task { try decode(type, from: json) }.value
    |                       `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         }
 84 |
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:82:61: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 76 |         /// - Throws: A ``JSON/Error`` if the value could not be decoded successfully
 77 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 78 |         public static func decode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |             _ type: T.Type = T.self,
 80 |             from json: JSON
 81 |         ) async throws -> T where T: JSONDecodable {
 82 |             try await Task { try decode(type, from: json) }.value
    |                                                             `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         }
 84 |
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:122:17: warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<T, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
120 |                     try decode(type, from: json)
121 |                 }
122 |                 completionHandler(json, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<T, 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'
123 |             }
124 |         }
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:116:66: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
114 |             DispatchQueue.global().async {
115 |                 let result: Result<JSON, any Swift.Error> = .init {
116 |                     try parse(data, maximumDepth: .max, options: options)
    |                                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
117 |                 }
118 |                 completionHandler(data, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:118:17: warning: capture of 'completionHandler' with non-sendable type '(Data, Result<JSON, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
116 |                     try parse(data, maximumDepth: .max, options: options)
117 |                 }
118 |                 completionHandler(data, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(Data, Result<JSON, 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'
119 |             }
120 |         }
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:116:66: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
114 |             DispatchQueue.global().async {
115 |                 let result: Result<JSON, any Swift.Error> = .init {
116 |                     try parse(data, maximumDepth: .max, options: options)
    |                                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
117 |                 }
118 |                 completionHandler(data, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:202:72: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
200 |             DispatchQueue.global().async {
201 |                 let result: Result<JSON, any Swift.Error> = .init {
202 |                     try parse(jsonString, maximumDepth: .max, options: options)
    |                                                                        `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
203 |                 }
204 |                 completionHandler(jsonString, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:204:17: warning: capture of 'completionHandler' with non-sendable type '(String, Result<JSON, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
202 |                     try parse(jsonString, maximumDepth: .max, options: options)
203 |                 }
204 |                 completionHandler(jsonString, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(String, Result<JSON, 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'
205 |             }
206 |         }
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:202:72: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
200 |             DispatchQueue.global().async {
201 |                 let result: Result<JSON, any Swift.Error> = .init {
202 |                     try parse(jsonString, maximumDepth: .max, options: options)
    |                                                                        `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
203 |                 }
204 |                 completionHandler(jsonString, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:35:27: warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
33 |
34 |         /// Allow fragments
35 |         public static let fragmentsAllowed = Options(rawValue: 1 << 0)
   |                           |- warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'fragmentsAllowed' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 |         /// Remove keys from objects with null values
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:38:27: warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
   :
36 |
37 |         /// Remove keys from objects with null values
38 |         public static let nullSkipsKey = Options(rawValue: 1 << 1)
   |                           |- warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'nullSkipsKey' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 |
40 |         /// The default options
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:41:27: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
   :
39 |
40 |         /// The default options
41 |         public static let `default`: Options = [.fragmentsAllowed]
   |                           |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' 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
42 |
43 |         // MARK: - OptionSet
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:80:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 78 |             options: Options = .default
 79 |         ) async throws -> JSON {
 80 |             try await Task { try parse(data, maximumDepth: .max, options: options) }.value
    |                            |                                              `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 81 |         }
 82 |
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:166:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
164 |             options: Options = .default
165 |         ) async throws -> JSON {
166 |             try await Task { try parse(jsonString, maximumDepth: .max, options: options) }.value
    |                            |                                                    `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
167 |         }
168 |
[23/29] Compiling Athena DeserializerOptions.swift
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:82:23: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 76 |         /// - Throws: A ``JSON/Error`` if the value could not be decoded successfully
 77 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 78 |         public static func decode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |             _ type: T.Type = T.self,
 80 |             from json: JSON
 81 |         ) async throws -> T where T: JSONDecodable {
 82 |             try await Task { try decode(type, from: json) }.value
    |                       `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         }
 84 |
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:82:23: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 76 |         /// - Throws: A ``JSON/Error`` if the value could not be decoded successfully
 77 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 78 |         public static func decode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |             _ type: T.Type = T.self,
 80 |             from json: JSON
 81 |         ) async throws -> T where T: JSONDecodable {
 82 |             try await Task { try decode(type, from: json) }.value
    |                       `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         }
 84 |
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:82:61: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 76 |         /// - Throws: A ``JSON/Error`` if the value could not be decoded successfully
 77 |         @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
 78 |         public static func decode<T>(
    |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |             _ type: T.Type = T.self,
 80 |             from json: JSON
 81 |         ) async throws -> T where T: JSONDecodable {
 82 |             try await Task { try decode(type, from: json) }.value
    |                                                             `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         }
 84 |
/host/spi-builder-workspace/Sources/Athena/Decoder.swift:122:17: warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<T, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
120 |                     try decode(type, from: json)
121 |                 }
122 |                 completionHandler(json, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(JSON, Result<T, 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'
123 |             }
124 |         }
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:116:66: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
114 |             DispatchQueue.global().async {
115 |                 let result: Result<JSON, any Swift.Error> = .init {
116 |                     try parse(data, maximumDepth: .max, options: options)
    |                                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
117 |                 }
118 |                 completionHandler(data, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:118:17: warning: capture of 'completionHandler' with non-sendable type '(Data, Result<JSON, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
116 |                     try parse(data, maximumDepth: .max, options: options)
117 |                 }
118 |                 completionHandler(data, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(Data, Result<JSON, 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'
119 |             }
120 |         }
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:116:66: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
114 |             DispatchQueue.global().async {
115 |                 let result: Result<JSON, any Swift.Error> = .init {
116 |                     try parse(data, maximumDepth: .max, options: options)
    |                                                                  `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
117 |                 }
118 |                 completionHandler(data, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:202:72: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
200 |             DispatchQueue.global().async {
201 |                 let result: Result<JSON, any Swift.Error> = .init {
202 |                     try parse(jsonString, maximumDepth: .max, options: options)
    |                                                                        `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in a '@Sendable' closure; this is an error in the Swift 6 language mode
203 |                 }
204 |                 completionHandler(jsonString, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:204:17: warning: capture of 'completionHandler' with non-sendable type '(String, Result<JSON, any Error>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
202 |                     try parse(jsonString, maximumDepth: .max, options: options)
203 |                 }
204 |                 completionHandler(jsonString, result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(String, Result<JSON, 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'
205 |             }
206 |         }
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:202:72: warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
200 |             DispatchQueue.global().async {
201 |                 let result: Result<JSON, any Swift.Error> = .init {
202 |                     try parse(jsonString, maximumDepth: .max, options: options)
    |                                                                        `- warning: capture of 'options' with non-sendable type 'JSON.Deserializer.Options' in an isolated closure; this is an error in the Swift 6 language mode
203 |                 }
204 |                 completionHandler(jsonString, result)
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:30:12: note: consider making struct 'Options' conform to the 'Sendable' protocol
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:35:27: warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
33 |
34 |         /// Allow fragments
35 |         public static let fragmentsAllowed = Options(rawValue: 1 << 0)
   |                           |- warning: static property 'fragmentsAllowed' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'fragmentsAllowed' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 |         /// Remove keys from objects with null values
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:38:27: warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
   :
36 |
37 |         /// Remove keys from objects with null values
38 |         public static let nullSkipsKey = Options(rawValue: 1 << 1)
   |                           |- warning: static property 'nullSkipsKey' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'nullSkipsKey' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 |
40 |         /// The default options
/host/spi-builder-workspace/Sources/Athena/DeserializerOptions.swift:41:27: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// A bitmask used to provide customization options when using the static interface of ``JSON/Deserializer``
30 |     struct Options: OptionSet {
   |            `- note: consider making struct 'Options' conform to the 'Sendable' protocol
31 |
32 |         // MARK: - API
   :
39 |
40 |         /// The default options
41 |         public static let `default`: Options = [.fragmentsAllowed]
   |                           |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'JSON.Deserializer.Options' 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
42 |
43 |         // MARK: - OptionSet
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:80:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 78 |             options: Options = .default
 79 |         ) async throws -> JSON {
 80 |             try await Task { try parse(data, maximumDepth: .max, options: options) }.value
    |                            |                                              `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 81 |         }
 82 |
/host/spi-builder-workspace/Sources/Athena/Deserializer.swift:166:28: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
164 |             options: Options = .default
165 |         ) async throws -> JSON {
166 |             try await Task { try parse(jsonString, maximumDepth: .max, options: options) }.value
    |                            |                                                    `- note: closure captures 'options' which is accessible to code in the current task
    |                            `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
167 |         }
168 |
[24/29] Compiling Athena StringExtensions.swift
[25/29] Compiling Athena UInt8Extensions.swift
[26/29] Compiling Athena UnicodeEscapeParser.swift
[27/29] Compiling Athena IntExtensions.swift
[28/29] Compiling Athena NumberParser.swift
[29/29] Compiling Athena SerializationOptionsExtensions.swift
Build complete! (63.78s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    },
    {
      "identity" : "swiftformat",
      "requirement" : {
        "exact" : [
          "0.51.7"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/nicklockwood/SwiftFormat"
    }
  ],
  "manifest_display_name" : "Athena",
  "name" : "Athena",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.14"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "5.0"
    }
  ],
  "products" : [
    {
      "name" : "Athena",
      "targets" : [
        "Athena"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "AthenaTests",
      "module_type" : "SwiftTarget",
      "name" : "AthenaTests",
      "path" : "Tests/AthenaTests",
      "sources" : [
        "DeserializerTests.swift",
        "EncodeDecodeTests.swift",
        "JSONEncodingUTFTestFixtures.swift",
        "JSONTests.swift"
      ],
      "target_dependencies" : [
        "Athena"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Athena",
      "module_type" : "SwiftTarget",
      "name" : "Athena",
      "path" : "Sources/Athena",
      "product_memberships" : [
        "Athena"
      ],
      "sources" : [
        "Decoder.swift",
        "Deserializer.swift",
        "DeserializerOptions.swift",
        "Encoder.swift",
        "EncodingDetector.swift",
        "Error.swift",
        "Internal/IntExtensions.swift",
        "Internal/NumberParser.swift",
        "Internal/SerializationOptionsExtensions.swift",
        "Internal/StringExtensions.swift",
        "Internal/UInt8Extensions.swift",
        "Internal/UnicodeEscapeParser.swift",
        "JSON.swift",
        "JSONCodable.swift",
        "JSONSubscriptRepresentable.swift",
        "Literal.swift",
        "LiteralDecodable.swift",
        "Number.swift",
        "NumberDecodable.swift",
        "Serializer.swift",
        "SerializerOptions.swift",
        "StringInterpolationExtensions.swift",
        "Subscript.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.