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 APNGKit, reference 2.3.0 (995386), with Swift 6.0 for macOS (SPM) on 30 Nov 2024 18:41:05 UTC.

Swift 6 data race errors: 12

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/onevcat/APNGKit.git
Reference: 2.3.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/onevcat/APNGKit
 * tag               2.3.0      -> FETCH_HEAD
HEAD is now at 9953862 Bump version to 2.3.0
Cloned https://github.com/onevcat/APNGKit.git
Revision (git rev-parse @):
995386261326bce7ff19879cac84b6f27ce35629
SUCCESS checkout https://github.com/onevcat/APNGKit.git at 2.3.0
Fetching https://github.com/onevcat/Delegate.git
[1/48] Fetching delegate
Fetched https://github.com/onevcat/Delegate.git from cache (0.68s)
Computing version for https://github.com/onevcat/Delegate.git
Computed https://github.com/onevcat/Delegate.git at 1.3.0 (3.14s)
Creating working copy for https://github.com/onevcat/Delegate.git
Working copy of https://github.com/onevcat/Delegate.git resolved at 1.3.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "apngkit",
      "name": "APNGKit",
      "url": "https://github.com/onevcat/APNGKit.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/APNGKit",
      "dependencies": [
        {
          "identity": "delegate",
          "name": "Delegate",
          "url": "https://github.com/onevcat/Delegate.git",
          "version": "1.3.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Delegate",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/onevcat/APNGKit.git
[1/3549] Fetching apngkit
Fetched https://github.com/onevcat/APNGKit.git from cache (1.27s)
Fetching https://github.com/onevcat/Delegate.git from cache
Fetched https://github.com/onevcat/Delegate.git from cache (0.45s)
Computing version for https://github.com/onevcat/Delegate.git
Computed https://github.com/onevcat/Delegate.git at 1.3.0 (0.02s)
Creating working copy for https://github.com/onevcat/Delegate.git
Working copy of https://github.com/onevcat/Delegate.git resolved at 1.3.0
Creating working copy for https://github.com/onevcat/APNGKit.git
Working copy of https://github.com/onevcat/APNGKit.git resolved at 2.3.0 (9953862)
warning: '.resolve-product-dependencies': dependency 'apngkit' is not used by any target
Found 1 product dependencies
  - Delegate
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/onevcat/APNGKit.git
{
  "dependencies" : [
    {
      "identity" : "delegate",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.3.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/onevcat/Delegate.git"
    }
  ],
  "manifest_display_name" : "APNGKit",
  "name" : "APNGKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.14"
    },
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "APNGKit",
      "targets" : [
        "APNGKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "APNGKitTests",
      "module_type" : "SwiftTarget",
      "name" : "APNGKitTests",
      "path" : "Tests/APNGKitTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/APNGKitTests/Resources/General",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/APNGKitTests/Resources/SpecTesting",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "APNGDecoderTests.swift",
        "APNGImageRendererTests.swift",
        "APNGImageTests.swift",
        "APNGImageViewTests.swift",
        "APNGImageViewTimingTests.swift",
        "ChunkTests.swift",
        "DataReaderTests.swift",
        "DecoderOptionsTests.swift",
        "FileReaderTests.swift",
        "Helpers.swift",
        "ReaderExtensionTests.swift"
      ],
      "target_dependencies" : [
        "APNGKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "APNGKit",
      "module_type" : "SwiftTarget",
      "name" : "APNGKit",
      "path" : "Source/APNGKit",
      "product_dependencies" : [
        "Delegate"
      ],
      "product_memberships" : [
        "APNGKit"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Source/APNGKit/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "APNGDecoder.swift",
        "APNGImage.DecodingOptions.swift",
        "APNGImage.swift",
        "APNGImageRenderer.swift",
        "APNGImageView.swift",
        "APNGKitError.swift",
        "Chunk.swift",
        "CrossPlatform.swift",
        "DisplayTimer.swift",
        "Extensions.swift",
        "LogLevel.swift",
        "Reader.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/4] Write sources
[2/4] Copying PrivacyInfo.xcprivacy
[3/4] Write swift-version--7754E27361AE5C74.txt
[5/6] Emitting module Delegate
[6/6] Compiling Delegate Delegate.swift
[7/19] Compiling APNGKit LogLevel.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/LogLevel.swift:26:23: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 |     /// The global setting of the log printed by APNGKit.
26 |     public static var current: LogLevel = .default
   |                       |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | }
28 |
[8/19] Compiling APNGKit Reader.swift
[9/19] Compiling APNGKit Extensions.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/LogLevel.swift:26:23: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 |     /// The global setting of the log printed by APNGKit.
26 |     public static var current: LogLevel = .default
   |                       |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | }
28 |
[10/20] Compiling APNGKit resource_bundle_accessor.swift
[11/20] Compiling APNGKit DisplayTimer.swift
[12/20] Compiling APNGKit APNGImage.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.swift:40:23: warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 38 |     /// cached or not by checking its loop number and the estimated size. Enlarge this number to allow bigger images
 39 |     /// to be cached.
 40 |     public static var maximumCacheSize = 50_000_000 // 50 MB
    |                       |- warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'maximumCacheSize' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'maximumCacheSize' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |
 42 |     /// The MIME type represents an APNG data. Fixed to `image/apng` according to APNG specification 1.0.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:26:27: warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 24 |         /// detect any APNG data or file error before showing it or get the total frames information and gives you the
 25 |         /// total animation duration before actually displaying the image.
 26 |         public static let fullFirstPass     = DecodingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'fullFirstPass' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 |         /// Loads and holds the actual frame data when decoding the frames in the first pass.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:75:27: warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 73 |         /// If `fullFirstPass` and `cacheDecodedImages` are not set in the same decoding options, APNGKit adds them
 74 |         /// for you automatically, since only enabling `preRenderAllFrames` is meaningless.
 75 |         public static let preRenderAllFrames  = DecodingOptions(
    |                           |- warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'preRenderAllFrames' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 76 |                                                        rawValue: 1 << 4 |
 77 |                                                        fullFirstPass.rawValue |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:88:27: warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 86 |         /// Enable this to ask APNGKit to skip this check. It improves the CPU performance a bit, but with the risk of
 87 |         /// reading and trust unchecked chunks. It is not recommended to skip the check.
 88 |         public static let skipChecksumVerify   = DecodingOptions(rawValue: 1 << 5)
    |                           |- warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'skipChecksumVerify' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 89 |
 90 |         /// Unsets frame count limitation when reading an APNG image.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:33:27: warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 31 |         /// to ask APNGKit to copy out the image data for each frame at the first pass. So it won't read data again in
 32 |         /// the future playing loops. This option trades a bit CPU resource with cost of taking more memory.
 33 |         public static let loadFrameData     = DecodingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'loadFrameData' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |         /// Holds the decoded image for each frame, so APNGKit will not render it again.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:334:42: warning: capture of 'self' with non-sendable type 'APNGImageRenderer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 10 |
 11 | // This class is not thread safe. Methods in this class are expected only run on main thread.
 12 | class APNGImageRenderer {
    |       `- note: class 'APNGImageRenderer' does not conform to the 'Sendable' protocol
 13 |     let reader: Reader
 14 |     let decoder: APNGDecoder
    :
332 |         renderingQueue.async {
333 |             do {
334 |                 let (image, index) = try self.renderNextImpl()
    |                                          `- warning: capture of 'self' with non-sendable type 'APNGImageRenderer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
335 |                 DispatchQueue.main.async {
336 |                     self.output = .success(image)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:477:33: warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
471 |
472 | extension DispatchQueue {
473 |     func asyncOrSyncIfMain(execute block: @escaping () -> Void) {
    |                                    `- note: parameter 'block' is implicitly non-sendable
474 |         if Thread.isMainThread {
475 |             block()
476 |         } else {
477 |             self.async(execute: block)
    |                                 `- warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
478 |         }
479 |     }
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:101:40: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 99 |             _ = try reader.readChunk(type: IEND.self, skipChecksumVerify: skipChecksumVerify)
100 |             // Dispatch to give the user a chance to setup delegate after they get the returned APNG image.
101 |             DispatchQueue.main.async { self.decoder.onFirstPassDone() }
    |                                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                        `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
102 |         }
103 |     }
[13/20] Compiling APNGKit APNGImageRenderer.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.swift:40:23: warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 38 |     /// cached or not by checking its loop number and the estimated size. Enlarge this number to allow bigger images
 39 |     /// to be cached.
 40 |     public static var maximumCacheSize = 50_000_000 // 50 MB
    |                       |- warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'maximumCacheSize' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'maximumCacheSize' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |
 42 |     /// The MIME type represents an APNG data. Fixed to `image/apng` according to APNG specification 1.0.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:26:27: warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 24 |         /// detect any APNG data or file error before showing it or get the total frames information and gives you the
 25 |         /// total animation duration before actually displaying the image.
 26 |         public static let fullFirstPass     = DecodingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'fullFirstPass' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 |         /// Loads and holds the actual frame data when decoding the frames in the first pass.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:75:27: warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 73 |         /// If `fullFirstPass` and `cacheDecodedImages` are not set in the same decoding options, APNGKit adds them
 74 |         /// for you automatically, since only enabling `preRenderAllFrames` is meaningless.
 75 |         public static let preRenderAllFrames  = DecodingOptions(
    |                           |- warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'preRenderAllFrames' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 76 |                                                        rawValue: 1 << 4 |
 77 |                                                        fullFirstPass.rawValue |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:88:27: warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 86 |         /// Enable this to ask APNGKit to skip this check. It improves the CPU performance a bit, but with the risk of
 87 |         /// reading and trust unchecked chunks. It is not recommended to skip the check.
 88 |         public static let skipChecksumVerify   = DecodingOptions(rawValue: 1 << 5)
    |                           |- warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'skipChecksumVerify' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 89 |
 90 |         /// Unsets frame count limitation when reading an APNG image.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:33:27: warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 31 |         /// to ask APNGKit to copy out the image data for each frame at the first pass. So it won't read data again in
 32 |         /// the future playing loops. This option trades a bit CPU resource with cost of taking more memory.
 33 |         public static let loadFrameData     = DecodingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'loadFrameData' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |         /// Holds the decoded image for each frame, so APNGKit will not render it again.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:334:42: warning: capture of 'self' with non-sendable type 'APNGImageRenderer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 10 |
 11 | // This class is not thread safe. Methods in this class are expected only run on main thread.
 12 | class APNGImageRenderer {
    |       `- note: class 'APNGImageRenderer' does not conform to the 'Sendable' protocol
 13 |     let reader: Reader
 14 |     let decoder: APNGDecoder
    :
332 |         renderingQueue.async {
333 |             do {
334 |                 let (image, index) = try self.renderNextImpl()
    |                                          `- warning: capture of 'self' with non-sendable type 'APNGImageRenderer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
335 |                 DispatchQueue.main.async {
336 |                     self.output = .success(image)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:477:33: warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
471 |
472 | extension DispatchQueue {
473 |     func asyncOrSyncIfMain(execute block: @escaping () -> Void) {
    |                                    `- note: parameter 'block' is implicitly non-sendable
474 |         if Thread.isMainThread {
475 |             block()
476 |         } else {
477 |             self.async(execute: block)
    |                                 `- warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
478 |         }
479 |     }
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:101:40: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 99 |             _ = try reader.readChunk(type: IEND.self, skipChecksumVerify: skipChecksumVerify)
100 |             // Dispatch to give the user a chance to setup delegate after they get the returned APNG image.
101 |             DispatchQueue.main.async { self.decoder.onFirstPassDone() }
    |                                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                        `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
102 |         }
103 |     }
[14/20] Compiling APNGKit Chunk.swift
[15/20] Compiling APNGKit CrossPlatform.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/CrossPlatform.swift:48:16: warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension Notification.Name {
48 |     static var applicationDidBecomeActive = NSApplication.didBecomeActiveNotification
   |                |- warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'applicationDidBecomeActive' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'applicationDidBecomeActive' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | }
50 |
[16/20] Compiling APNGKit APNGImageView.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/CrossPlatform.swift:48:16: warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension Notification.Name {
48 |     static var applicationDidBecomeActive = NSApplication.didBecomeActiveNotification
   |                |- warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'applicationDidBecomeActive' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'applicationDidBecomeActive' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | }
50 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:18:10: warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
 16 | public enum APNGKitError: Error {
 17 |     /// Errors happening during decoding the image data.
 18 |     case decoderError(DecoderError)
    |          `- warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
 19 |     /// Errors happening during creating the image.
 20 |     case imageError(ImageError)
    :
 26 |
 27 |     /// Errors happening during decoding the image data.
 28 |     public enum DecoderError {
    |                 `- note: consider making enum 'DecoderError' conform to the 'Sendable' protocol
 29 |         case fileHandleCreatingFailed(URL, Error)
 30 |         case fileHandleOperationFailed(FileHandle, Error)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:20:10: warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
 18 |     case decoderError(DecoderError)
 19 |     /// Errors happening during creating the image.
 20 |     case imageError(ImageError)
    |          `- warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
 21 |     /// Other errors happening inside system and not directly related to APNGKit.
 22 |     case internalError(Error)
    :
 48 |
 49 |     /// Errors happening during creating the image.
 50 |     public enum ImageError {
    |                 `- note: consider making enum 'ImageError' conform to the 'Sendable' protocol
 51 |         case resourceNotFound(name: String, bundle: Bundle)
 52 |         case normalImageDataLoaded(data: Data, scale: CGFloat)
[17/20] Compiling APNGKit APNGKitError.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/CrossPlatform.swift:48:16: warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension Notification.Name {
48 |     static var applicationDidBecomeActive = NSApplication.didBecomeActiveNotification
   |                |- warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'applicationDidBecomeActive' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'applicationDidBecomeActive' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | }
50 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:18:10: warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
 16 | public enum APNGKitError: Error {
 17 |     /// Errors happening during decoding the image data.
 18 |     case decoderError(DecoderError)
    |          `- warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
 19 |     /// Errors happening during creating the image.
 20 |     case imageError(ImageError)
    :
 26 |
 27 |     /// Errors happening during decoding the image data.
 28 |     public enum DecoderError {
    |                 `- note: consider making enum 'DecoderError' conform to the 'Sendable' protocol
 29 |         case fileHandleCreatingFailed(URL, Error)
 30 |         case fileHandleOperationFailed(FileHandle, Error)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:20:10: warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
 18 |     case decoderError(DecoderError)
 19 |     /// Errors happening during creating the image.
 20 |     case imageError(ImageError)
    |          `- warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
 21 |     /// Other errors happening inside system and not directly related to APNGKit.
 22 |     case internalError(Error)
    :
 48 |
 49 |     /// Errors happening during creating the image.
 50 |     public enum ImageError {
    |                 `- note: consider making enum 'ImageError' conform to the 'Sendable' protocol
 51 |         case resourceNotFound(name: String, bundle: Bundle)
 52 |         case normalImageDataLoaded(data: Data, scale: CGFloat)
[18/20] Compiling APNGKit APNGDecoder.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:88:27: warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 86 |         /// Enable this to ask APNGKit to skip this check. It improves the CPU performance a bit, but with the risk of
 87 |         /// reading and trust unchecked chunks. It is not recommended to skip the check.
 88 |         public static let skipChecksumVerify   = DecodingOptions(rawValue: 1 << 5)
    |                           |- warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'skipChecksumVerify' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 89 |
 90 |         /// Unsets frame count limitation when reading an APNG image.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:95:27: warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 93 |         /// all expected use cases. Allowing more frame count or even unlimited frames may easily causes
 94 |         ///
 95 |         public static let unlimitedFrameCount = DecodingOptions(rawValue: 1 << 6)
    |                           |- warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'unlimitedFrameCount' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 96 |     }
 97 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:45:27: warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 43 |         ///
 44 |         /// See ``APNGImage.CachePolicy`` for more.
 45 |         public static let cacheDecodedImages = DecodingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'cacheDecodedImages' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 46 |
 47 |         /// Drops the decoded image for each frame, so APNGKit will render it again when next time it is needed.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:57:27: warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 55 |         ///
 56 |         /// See ``APNGImage.CachePolicy`` for more.
 57 |         public static let notCacheDecodedImages = DecodingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'notCacheDecodedImages' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 58 |
 59 |         /// Performs render for all frames before the APNG image finishes it initialization. This also enables
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.swift:40:23: warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 38 |     /// cached or not by checking its loop number and the estimated size. Enlarge this number to allow bigger images
 39 |     /// to be cached.
 40 |     public static var maximumCacheSize = 50_000_000 // 50 MB
    |                       |- warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'maximumCacheSize' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'maximumCacheSize' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |
 42 |     /// The MIME type represents an APNG data. Fixed to `image/apng` according to APNG specification 1.0.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:26:27: warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 24 |         /// detect any APNG data or file error before showing it or get the total frames information and gives you the
 25 |         /// total animation duration before actually displaying the image.
 26 |         public static let fullFirstPass     = DecodingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'fullFirstPass' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 |         /// Loads and holds the actual frame data when decoding the frames in the first pass.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:33:27: warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 31 |         /// to ask APNGKit to copy out the image data for each frame at the first pass. So it won't read data again in
 32 |         /// the future playing loops. This option trades a bit CPU resource with cost of taking more memory.
 33 |         public static let loadFrameData     = DecodingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'loadFrameData' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |         /// Holds the decoded image for each frame, so APNGKit will not render it again.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:75:27: warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 73 |         /// If `fullFirstPass` and `cacheDecodedImages` are not set in the same decoding options, APNGKit adds them
 74 |         /// for you automatically, since only enabling `preRenderAllFrames` is meaningless.
 75 |         public static let preRenderAllFrames  = DecodingOptions(
    |                           |- warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'preRenderAllFrames' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 76 |                                                        rawValue: 1 << 4 |
 77 |                                                        fullFirstPass.rawValue |
[19/20] Compiling APNGKit APNGImage.DecodingOptions.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:88:27: warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 86 |         /// Enable this to ask APNGKit to skip this check. It improves the CPU performance a bit, but with the risk of
 87 |         /// reading and trust unchecked chunks. It is not recommended to skip the check.
 88 |         public static let skipChecksumVerify   = DecodingOptions(rawValue: 1 << 5)
    |                           |- warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'skipChecksumVerify' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 89 |
 90 |         /// Unsets frame count limitation when reading an APNG image.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:95:27: warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 93 |         /// all expected use cases. Allowing more frame count or even unlimited frames may easily causes
 94 |         ///
 95 |         public static let unlimitedFrameCount = DecodingOptions(rawValue: 1 << 6)
    |                           |- warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'unlimitedFrameCount' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 96 |     }
 97 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:45:27: warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 43 |         ///
 44 |         /// See ``APNGImage.CachePolicy`` for more.
 45 |         public static let cacheDecodedImages = DecodingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'cacheDecodedImages' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 46 |
 47 |         /// Drops the decoded image for each frame, so APNGKit will render it again when next time it is needed.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:57:27: warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 55 |         ///
 56 |         /// See ``APNGImage.CachePolicy`` for more.
 57 |         public static let notCacheDecodedImages = DecodingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'notCacheDecodedImages' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 58 |
 59 |         /// Performs render for all frames before the APNG image finishes it initialization. This also enables
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.swift:40:23: warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 38 |     /// cached or not by checking its loop number and the estimated size. Enlarge this number to allow bigger images
 39 |     /// to be cached.
 40 |     public static var maximumCacheSize = 50_000_000 // 50 MB
    |                       |- warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'maximumCacheSize' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'maximumCacheSize' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |
 42 |     /// The MIME type represents an APNG data. Fixed to `image/apng` according to APNG specification 1.0.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:26:27: warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 24 |         /// detect any APNG data or file error before showing it or get the total frames information and gives you the
 25 |         /// total animation duration before actually displaying the image.
 26 |         public static let fullFirstPass     = DecodingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'fullFirstPass' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 |         /// Loads and holds the actual frame data when decoding the frames in the first pass.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:33:27: warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 31 |         /// to ask APNGKit to copy out the image data for each frame at the first pass. So it won't read data again in
 32 |         /// the future playing loops. This option trades a bit CPU resource with cost of taking more memory.
 33 |         public static let loadFrameData     = DecodingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'loadFrameData' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |         /// Holds the decoded image for each frame, so APNGKit will not render it again.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:75:27: warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 73 |         /// If `fullFirstPass` and `cacheDecodedImages` are not set in the same decoding options, APNGKit adds them
 74 |         /// for you automatically, since only enabling `preRenderAllFrames` is meaningless.
 75 |         public static let preRenderAllFrames  = DecodingOptions(
    |                           |- warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'preRenderAllFrames' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 76 |                                                        rawValue: 1 << 4 |
 77 |                                                        fullFirstPass.rawValue |
[20/20] Emitting module APNGKit
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:26:27: warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 24 |         /// detect any APNG data or file error before showing it or get the total frames information and gives you the
 25 |         /// total animation duration before actually displaying the image.
 26 |         public static let fullFirstPass     = DecodingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'fullFirstPass' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 |         /// Loads and holds the actual frame data when decoding the frames in the first pass.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:33:27: warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 31 |         /// to ask APNGKit to copy out the image data for each frame at the first pass. So it won't read data again in
 32 |         /// the future playing loops. This option trades a bit CPU resource with cost of taking more memory.
 33 |         public static let loadFrameData     = DecodingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'loadFrameData' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |         /// Holds the decoded image for each frame, so APNGKit will not render it again.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:45:27: warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 43 |         ///
 44 |         /// See ``APNGImage.CachePolicy`` for more.
 45 |         public static let cacheDecodedImages = DecodingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'cacheDecodedImages' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 46 |
 47 |         /// Drops the decoded image for each frame, so APNGKit will render it again when next time it is needed.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:57:27: warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 55 |         ///
 56 |         /// See ``APNGImage.CachePolicy`` for more.
 57 |         public static let notCacheDecodedImages = DecodingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'notCacheDecodedImages' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 58 |
 59 |         /// Performs render for all frames before the APNG image finishes it initialization. This also enables
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:75:27: warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 73 |         /// If `fullFirstPass` and `cacheDecodedImages` are not set in the same decoding options, APNGKit adds them
 74 |         /// for you automatically, since only enabling `preRenderAllFrames` is meaningless.
 75 |         public static let preRenderAllFrames  = DecodingOptions(
    |                           |- warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'preRenderAllFrames' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 76 |                                                        rawValue: 1 << 4 |
 77 |                                                        fullFirstPass.rawValue |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:88:27: warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 86 |         /// Enable this to ask APNGKit to skip this check. It improves the CPU performance a bit, but with the risk of
 87 |         /// reading and trust unchecked chunks. It is not recommended to skip the check.
 88 |         public static let skipChecksumVerify   = DecodingOptions(rawValue: 1 << 5)
    |                           |- warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'skipChecksumVerify' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 89 |
 90 |         /// Unsets frame count limitation when reading an APNG image.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:95:27: warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// Decoding options you can use when creating an APNG image view.
 13 |     public struct DecodingOptions: OptionSet {
    |                   `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
 14 |         public let rawValue: Int
 15 |         public init(rawValue: Int) {
    :
 93 |         /// all expected use cases. Allowing more frame count or even unlimited frames may easily causes
 94 |         ///
 95 |         public static let unlimitedFrameCount = DecodingOptions(rawValue: 1 << 6)
    |                           |- warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'unlimitedFrameCount' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 96 |     }
 97 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.swift:40:23: warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 38 |     /// cached or not by checking its loop number and the estimated size. Enlarge this number to allow bigger images
 39 |     /// to be cached.
 40 |     public static var maximumCacheSize = 50_000_000 // 50 MB
    |                       |- warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'maximumCacheSize' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'maximumCacheSize' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |
 42 |     /// The MIME type represents an APNG data. Fixed to `image/apng` according to APNG specification 1.0.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:18:10: warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
 16 | public enum APNGKitError: Error {
 17 |     /// Errors happening during decoding the image data.
 18 |     case decoderError(DecoderError)
    |          `- warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
 19 |     /// Errors happening during creating the image.
 20 |     case imageError(ImageError)
    :
 26 |
 27 |     /// Errors happening during decoding the image data.
 28 |     public enum DecoderError {
    |                 `- note: consider making enum 'DecoderError' conform to the 'Sendable' protocol
 29 |         case fileHandleCreatingFailed(URL, Error)
 30 |         case fileHandleOperationFailed(FileHandle, Error)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:20:10: warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
 18 |     case decoderError(DecoderError)
 19 |     /// Errors happening during creating the image.
 20 |     case imageError(ImageError)
    |          `- warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
 21 |     /// Other errors happening inside system and not directly related to APNGKit.
 22 |     case internalError(Error)
    :
 48 |
 49 |     /// Errors happening during creating the image.
 50 |     public enum ImageError {
    |                 `- note: consider making enum 'ImageError' conform to the 'Sendable' protocol
 51 |         case resourceNotFound(name: String, bundle: Bundle)
 52 |         case normalImageDataLoaded(data: Data, scale: CGFloat)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/CrossPlatform.swift:48:16: warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension Notification.Name {
48 |     static var applicationDidBecomeActive = NSApplication.didBecomeActiveNotification
   |                |- warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'applicationDidBecomeActive' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'applicationDidBecomeActive' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | }
50 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/LogLevel.swift:26:23: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 |     /// The global setting of the log printed by APNGKit.
26 |     public static var current: LogLevel = .default
   |                       |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | }
28 |
Build complete! (12.30s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "delegate",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.3.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/onevcat/Delegate.git"
    }
  ],
  "manifest_display_name" : "APNGKit",
  "name" : "APNGKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.14"
    },
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "APNGKit",
      "targets" : [
        "APNGKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "APNGKitTests",
      "module_type" : "SwiftTarget",
      "name" : "APNGKitTests",
      "path" : "Tests/APNGKitTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/APNGKitTests/Resources/General",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/APNGKitTests/Resources/SpecTesting",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "APNGDecoderTests.swift",
        "APNGImageRendererTests.swift",
        "APNGImageTests.swift",
        "APNGImageViewTests.swift",
        "APNGImageViewTimingTests.swift",
        "ChunkTests.swift",
        "DataReaderTests.swift",
        "DecoderOptionsTests.swift",
        "FileReaderTests.swift",
        "Helpers.swift",
        "ReaderExtensionTests.swift"
      ],
      "target_dependencies" : [
        "APNGKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "APNGKit",
      "module_type" : "SwiftTarget",
      "name" : "APNGKit",
      "path" : "Source/APNGKit",
      "product_dependencies" : [
        "Delegate"
      ],
      "product_memberships" : [
        "APNGKit"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Source/APNGKit/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "APNGDecoder.swift",
        "APNGImage.DecodingOptions.swift",
        "APNGImage.swift",
        "APNGImageRenderer.swift",
        "APNGImageView.swift",
        "APNGKitError.swift",
        "Chunk.swift",
        "CrossPlatform.swift",
        "DisplayTimer.swift",
        "Extensions.swift",
        "LogLevel.swift",
        "Reader.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.