The Swift Package Index logo.Swift Package Index

Build Information

Successful build of NCCCodableStorage, reference 1.1.2 (22713e), with Swift 6.1 for macOS (SPM) on 14 Oct 2026 02:02:53 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 5.1.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/drewster99/NCCCodableStorage.git
Reference: 1.1.2
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/drewster99/NCCCodableStorage
 * tag               1.1.2      -> FETCH_HEAD
HEAD is now at 22713e4 1.1.2: HTTPS dependency, leak and data-race fixes, safer flushes
Cloned https://github.com/drewster99/NCCCodableStorage.git
Revision (git rev-parse @):
22713e4235645953068ad962d989b23971b58ba3
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/drewster99/NCCCodableStorage.git at 1.1.2
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/drewster99/NCCCodableStorage.git
https://github.com/drewster99/NCCCodableStorage.git
{
  "dependencies" : [
    {
      "identity" : "ncccoding",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/drewster99/NCCCoding.git"
    }
  ],
  "manifest_display_name" : "NCCCodableStorage",
  "name" : "NCCCodableStorage",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    }
  ],
  "products" : [
    {
      "name" : "NCCCodableStorage",
      "targets" : [
        "NCCCodableStorage"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "NCCCodableStorageTests",
      "module_type" : "SwiftTarget",
      "name" : "NCCCodableStorageTests",
      "path" : "Tests/NCCCodableStorageTests",
      "sources" : [
        "NCCCodableStorageTests.swift",
        "StorageBehaviorTests.swift",
        "StorageRegressionTests.swift",
        "StorageTestSupport.swift",
        "StorageWriteOrderingTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "NCCCodableStorage"
      ],
      "type" : "test"
    },
    {
      "c99name" : "NCCCodableStorage",
      "module_type" : "SwiftTarget",
      "name" : "NCCCodableStorage",
      "path" : "Sources/NCCCodableStorage",
      "product_dependencies" : [
        "NCCCoding"
      ],
      "product_memberships" : [
        "NCCCodableStorage"
      ],
      "sources" : [
        "NCCCodableJSONStorage.swift",
        "NCCCodableStorage.swift",
        "NCCUnderlyingStorage.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/5] Emitting module NCCCoding
[5/5] Compiling NCCCoding NCCCoding.swift
[6/9] Compiling NCCCodableStorage NCCUnderlyingStorage.swift
[7/9] Compiling NCCCodableStorage NCCCodableJSONStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/NCCCodableStorage/NCCCodableJSONStorage.swift:163:49: warning: capture of 'snapshot' with non-sendable type 'JSONCodableValue' in a '@Sendable' closure
 29 |     /// Debounced writes copy `value` on the main thread and only encode and write that copy on
 30 |     /// `storageWriteQueue`.
 31 |     internal final class NCCCodableJSONStorage<JSONCodableValue: Codable>: ObservableObject, NCCUnderlyingStorage {
    |                                                `- note: consider making generic parameter 'JSONCodableValue' conform to the 'Sendable' protocol
 32 |
 33 |         private(set) var url: URL
    :
161 |             // synchronous write, could happen on that queue.
162 |             storageWriteQueue.async {
163 |                 if let error = NCCCoding.encode(snapshot, to: url) {
    |                                                 `- warning: capture of 'snapshot' with non-sendable type 'JSONCodableValue' in a '@Sendable' closure
164 |                     Self.automaticWriteFailed(error, url: url)
165 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/NCCCodableStorage/NCCCodableJSONStorage.swift:206:21: warning: capture of 'self' with non-sendable type 'NCCCodableStorage<T>.NCCCodableJSONStorage<JSONCodableValue>?' in a '@Sendable' closure
 29 |     /// Debounced writes copy `value` on the main thread and only encode and write that copy on
 30 |     /// `storageWriteQueue`.
 31 |     internal final class NCCCodableJSONStorage<JSONCodableValue: Codable>: ObservableObject, NCCUnderlyingStorage {
    |                          `- note: generic class 'NCCCodableJSONStorage' does not conform to the 'Sendable' protocol
 32 |
 33 |         private(set) var url: URL
    :
204 |             lifecycleObservers = notificationNames.map { name in
205 |                 NotificationCenter.default.addObserver(forName: name, object: nil, queue: .main) { [weak self] _ in
206 |                     self?.writePendingChangesNow()
    |                     `- warning: capture of 'self' with non-sendable type 'NCCCodableStorage<T>.NCCCodableJSONStorage<JSONCodableValue>?' in a '@Sendable' closure
207 |                 }
208 |             }
[8/9] Emitting module NCCCodableStorage
[9/9] Compiling NCCCodableStorage NCCCodableStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/NCCCodableStorage/NCCCodableStorage.swift:38:9: warning: main actor-isolated property 'storage' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 32 |
 33 |     /// The underlying data storage
 34 |     @StateObject private var storage: NCCCodableJSONStorage<T>
    |                              `- note: property declared here
 35 |
 36 |     /// URL of underlying storage file
 37 |     public var url: URL {
 38 |         storage.url
    |         `- warning: main actor-isolated property 'storage' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 39 |     }
 40 |
/Users/admin/builder/spi-builder-workspace/Sources/NCCCodableStorage/NCCCodableStorage.swift:44:13: warning: main actor-isolated property 'storage' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 32 |
 33 |     /// The underlying data storage
 34 |     @StateObject private var storage: NCCCodableJSONStorage<T>
    |                              `- note: property declared here
 35 |
 36 |     /// URL of underlying storage file
    :
 42 |     public var wrappedValue: T {
 43 |         get {
 44 |             storage.value
    |             `- warning: main actor-isolated property 'storage' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 45 |         }
 46 |         nonmutating set {
/Users/admin/builder/spi-builder-workspace/Sources/NCCCodableStorage/NCCCodableStorage.swift:47:13: warning: main actor-isolated property 'storage' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 32 |
 33 |     /// The underlying data storage
 34 |     @StateObject private var storage: NCCCodableJSONStorage<T>
    |                              `- note: mutation of this property is only permitted within the actor
 35 |
 36 |     /// URL of underlying storage file
    :
 45 |         }
 46 |         nonmutating set {
 47 |             storage.value = newValue
    |             `- warning: main actor-isolated property 'storage' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 48 |         }
 49 |     }
/Users/admin/builder/spi-builder-workspace/Sources/NCCCodableStorage/NCCCodableStorage.swift:53:27: warning: capture of 'self' with non-sendable type 'NCCCodableStorage<T>' in a '@Sendable' closure
 18 | /// A failed automatic write (`.immediate` or `.afterIdle`) terminates the app with `fatalError`.
 19 | /// Use `.manual` and ``save()`` to handle write errors yourself.
 20 | @propertyWrapper public struct NCCCodableStorage<T: Codable>: DynamicProperty {
    |                                `- note: consider making generic struct 'NCCCodableStorage' conform to the 'Sendable' protocol
 21 |
 22 |     /// Composes a file URL from the given filename and directoryType
    :
 51 |     /// Returns a Binding to the property's value, suitable for use with SwiftUI
 52 |     public var projectedValue: Binding<T> {
 53 |         Binding<T>(get: { self.storage.value },
    |                           `- warning: capture of 'self' with non-sendable type 'NCCCodableStorage<T>' in a '@Sendable' closure
 54 |                    set: { newValue in self.storage.value = newValue })
 55 |     }
/Users/admin/builder/spi-builder-workspace/Sources/NCCCodableStorage/NCCCodableStorage.swift:53:32: warning: main actor-isolated property 'storage' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
 32 |
 33 |     /// The underlying data storage
 34 |     @StateObject private var storage: NCCCodableJSONStorage<T>
    |                              `- note: property declared here
 35 |
 36 |     /// URL of underlying storage file
    :
 51 |     /// Returns a Binding to the property's value, suitable for use with SwiftUI
 52 |     public var projectedValue: Binding<T> {
 53 |         Binding<T>(get: { self.storage.value },
    |                                `- warning: main actor-isolated property 'storage' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
 54 |                    set: { newValue in self.storage.value = newValue })
 55 |     }
/Users/admin/builder/spi-builder-workspace/Sources/NCCCodableStorage/NCCCodableStorage.swift:54:39: warning: capture of 'self' with non-sendable type 'NCCCodableStorage<T>' in a '@Sendable' closure
 18 | /// A failed automatic write (`.immediate` or `.afterIdle`) terminates the app with `fatalError`.
 19 | /// Use `.manual` and ``save()`` to handle write errors yourself.
 20 | @propertyWrapper public struct NCCCodableStorage<T: Codable>: DynamicProperty {
    |                                `- note: consider making generic struct 'NCCCodableStorage' conform to the 'Sendable' protocol
 21 |
 22 |     /// Composes a file URL from the given filename and directoryType
    :
 52 |     public var projectedValue: Binding<T> {
 53 |         Binding<T>(get: { self.storage.value },
 54 |                    set: { newValue in self.storage.value = newValue })
    |                                       `- warning: capture of 'self' with non-sendable type 'NCCCodableStorage<T>' in a '@Sendable' closure
 55 |     }
 56 |
/Users/admin/builder/spi-builder-workspace/Sources/NCCCodableStorage/NCCCodableStorage.swift:54:44: warning: main actor-isolated property 'storage' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
 32 |
 33 |     /// The underlying data storage
 34 |     @StateObject private var storage: NCCCodableJSONStorage<T>
    |                              `- note: mutation of this property is only permitted within the actor
 35 |
 36 |     /// URL of underlying storage file
    :
 52 |     public var projectedValue: Binding<T> {
 53 |         Binding<T>(get: { self.storage.value },
 54 |                    set: { newValue in self.storage.value = newValue })
    |                                            `- warning: main actor-isolated property 'storage' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
 55 |     }
 56 |
/Users/admin/builder/spi-builder-workspace/Sources/NCCCodableStorage/NCCCodableStorage.swift:61:13: warning: main actor-isolated property 'storage' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 32 |
 33 |     /// The underlying data storage
 34 |     @StateObject private var storage: NCCCodableJSONStorage<T>
    |                              `- note: property declared here
 35 |
 36 |     /// URL of underlying storage file
    :
 58 |     /// Required in `.manual` mode; also useful to force a write in the other modes.
 59 |     /// - Throws: The encoding or file-writing error if the write failed.
 60 |     public func save() throws {
    |                 `- note: add '@MainActor' to make instance method 'save()' part of global actor 'MainActor'
 61 |         try storage.save()
    |             `- warning: main actor-isolated property 'storage' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 62 |     }
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/NCCCodableStorage/NCCCodableStorage.swift:67:13: warning: main actor-isolated property 'storage' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 32 |
 33 |     /// The underlying data storage
 34 |     @StateObject private var storage: NCCCodableJSONStorage<T>
    |                              `- note: property declared here
 35 |
 36 |     /// URL of underlying storage file
    :
 64 |     /// Replaces the current value with the one decoded from storage. Does not write the file back.
 65 |     /// - Throws: The file-reading or decoding error if the value could not be loaded.
 66 |     public func load() throws {
    |                 `- note: add '@MainActor' to make instance method 'load()' part of global actor 'MainActor'
 67 |         try storage.load()
    |             `- warning: main actor-isolated property 'storage' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 68 |     }
 69 |
Build complete! (12.12s)
Fetching https://github.com/drewster99/NCCCoding.git
[1/62] Fetching ncccoding
Fetched https://github.com/drewster99/NCCCoding.git from cache (0.65s)
Computing version for https://github.com/drewster99/NCCCoding.git
Computed https://github.com/drewster99/NCCCoding.git at 1.1.0 (1.26s)
Creating working copy for https://github.com/drewster99/NCCCoding.git
Working copy of https://github.com/drewster99/NCCCoding.git resolved at 1.1.0
Build complete.
{
  "dependencies" : [
    {
      "identity" : "ncccoding",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/drewster99/NCCCoding.git"
    }
  ],
  "manifest_display_name" : "NCCCodableStorage",
  "name" : "NCCCodableStorage",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    }
  ],
  "products" : [
    {
      "name" : "NCCCodableStorage",
      "targets" : [
        "NCCCodableStorage"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "NCCCodableStorageTests",
      "module_type" : "SwiftTarget",
      "name" : "NCCCodableStorageTests",
      "path" : "Tests/NCCCodableStorageTests",
      "sources" : [
        "NCCCodableStorageTests.swift",
        "StorageBehaviorTests.swift",
        "StorageRegressionTests.swift",
        "StorageTestSupport.swift",
        "StorageWriteOrderingTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "NCCCodableStorage"
      ],
      "type" : "test"
    },
    {
      "c99name" : "NCCCodableStorage",
      "module_type" : "SwiftTarget",
      "name" : "NCCCodableStorage",
      "path" : "Sources/NCCCodableStorage",
      "product_dependencies" : [
        "NCCCoding"
      ],
      "product_memberships" : [
        "NCCCodableStorage"
      ],
      "sources" : [
        "NCCCodableJSONStorage.swift",
        "NCCCodableStorage.swift",
        "NCCUnderlyingStorage.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.