The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Featureflip, reference master (839974), with Swift 6.1 for macOS (SPM) on 16 Apr 2026 11:37:35 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/canopy-labs/featureflip-swift.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/canopy-labs/featureflip-swift
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 8399740 Release v2.0.0
Cloned https://github.com/canopy-labs/featureflip-swift.git
Revision (git rev-parse @):
839974002ab83b442ccf39ce15dead49a142c0ae
SUCCESS checkout https://github.com/canopy-labs/featureflip-swift.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/canopy-labs/featureflip-swift.git
https://github.com/canopy-labs/featureflip-swift.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Featureflip",
  "name" : "Featureflip",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "Featureflip",
      "targets" : [
        "Featureflip"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "FeatureflipTests",
      "module_type" : "SwiftTarget",
      "name" : "FeatureflipTests",
      "path" : "Tests/FeatureflipTests",
      "sources" : [
        "ConfigTests.swift",
        "EventProcessorTests.swift",
        "FeatureflipClientFactoryTests.swift",
        "FeatureflipClientTests.swift",
        "FeatureflipTests.swift",
        "FlagCacheTests.swift",
        "Helpers/MockHTTPLoader.swift",
        "HttpClientTests.swift",
        "LifecycleObserverTests.swift",
        "PollingDataSourceTests.swift",
        "SharedFeatureflipCoreTests.swift",
        "StreamingDataSourceTests.swift",
        "SwiftUITests.swift"
      ],
      "target_dependencies" : [
        "Featureflip"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Featureflip",
      "module_type" : "SwiftTarget",
      "name" : "Featureflip",
      "path" : "Sources/Featureflip",
      "product_memberships" : [
        "Featureflip"
      ],
      "sources" : [
        "EventProcessor.swift",
        "FeatureflipClient.swift",
        "FeatureflipConfig.swift",
        "FlagCache.swift",
        "HttpClient.swift",
        "LifecycleObserver.swift",
        "Models.swift",
        "PollingDataSource.swift",
        "Protocols.swift",
        "SharedFeatureflipCore.swift",
        "StreamingDataSource.swift",
        "SwiftUI/FeatureFlag.swift",
        "SwiftUI/FeatureFlagProvider.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/15] Compiling Featureflip SharedFeatureflipCore.swift
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/SharedFeatureflipCore.swift:79:16: warning: static property 'isoFormatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
 77 |
 78 |     /// Shared date formatter for event timestamps.
 79 |     static let isoFormatter = ISO8601DateFormatter()
    |                |- warning: static property 'isoFormatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'isoFormatter' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 80 |
 81 |     // MARK: - HTTP / Lifecycle
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h:46:12: note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
44 |
45 | API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0))
46 | @interface NSISO8601DateFormatter : NSFormatter <NSSecureCoding> {
   |            `- note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
47 | @private
48 |     CFDateFormatterRef _formatter;
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/SharedFeatureflipCore.swift:487:13: warning: var '_liveCores' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
485 | // MARK: - Module-level cache
486 |
487 | private var _liveCores: [String: SharedFeatureflipCore] = [:]
    |             |- warning: var '_liveCores' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert '_liveCores' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var '_liveCores' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
488 | private let _liveCoresLock = NSLock()
489 |
[4/15] Compiling Featureflip Models.swift
[5/16] Compiling Featureflip FeatureFlagProvider.swift
[6/16] Compiling Featureflip FeatureflipConfig.swift
[7/16] Compiling Featureflip FlagCache.swift
[8/16] Compiling Featureflip EventProcessor.swift
[9/16] Compiling Featureflip FeatureflipClient.swift
[10/16] Compiling Featureflip HttpClient.swift
[11/16] Compiling Featureflip LifecycleObserver.swift
[12/16] Emitting module Featureflip
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/SharedFeatureflipCore.swift:79:16: warning: static property 'isoFormatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
 77 |
 78 |     /// Shared date formatter for event timestamps.
 79 |     static let isoFormatter = ISO8601DateFormatter()
    |                |- warning: static property 'isoFormatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'isoFormatter' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 80 |
 81 |     // MARK: - HTTP / Lifecycle
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h:46:12: note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
44 |
45 | API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0))
46 | @interface NSISO8601DateFormatter : NSFormatter <NSSecureCoding> {
   |            `- note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
47 | @private
48 |     CFDateFormatterRef _formatter;
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/SharedFeatureflipCore.swift:487:13: warning: var '_liveCores' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
485 | // MARK: - Module-level cache
486 |
487 | private var _liveCores: [String: SharedFeatureflipCore] = [:]
    |             |- warning: var '_liveCores' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert '_liveCores' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var '_liveCores' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
488 | private let _liveCoresLock = NSLock()
489 |
[13/16] Compiling Featureflip Protocols.swift
[14/16] Compiling Featureflip PollingDataSource.swift
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/PollingDataSource.swift:49:14: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
47 |
48 |     func pollOnce() async {
49 |         lock.lock()
   |              `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
50 |         let currentContext = context
51 |         lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/PollingDataSource.swift:51:14: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
49 |         lock.lock()
50 |         let currentContext = context
51 |         lock.unlock()
   |              `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
52 |         do {
53 |             let result = try await httpClient.evaluate(context: currentContext)
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
[15/16] Compiling Featureflip StreamingDataSource.swift
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:115:18: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
113 |     private func connectLoop() async {
114 |         while !Task.isCancelled {
115 |             lock.lock()
    |                  `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
116 |             let currentRetryCount = retryCount
117 |             let currentBackoff = backoff
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:118:18: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
116 |             let currentRetryCount = retryCount
117 |             let currentBackoff = backoff
118 |             lock.unlock()
    |                  `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
119 |
120 |             guard currentRetryCount < Self.maxRetries else { return }
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:128:18: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
126 |             }
127 |
128 |             lock.lock()
    |                  `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
129 |             retryCount += 1
130 |             lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:130:18: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
128 |             lock.lock()
129 |             retryCount += 1
130 |             lock.unlock()
    |                  `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
131 |
132 |             try? await Task.sleep(nanoseconds: UInt64(currentBackoff * 1_000_000_000))
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:134:18: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
132 |             try? await Task.sleep(nanoseconds: UInt64(currentBackoff * 1_000_000_000))
133 |
134 |             lock.lock()
    |                  `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
135 |             backoff = Self.nextBackoff(backoff)
136 |             lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:136:18: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
134 |             lock.lock()
135 |             backoff = Self.nextBackoff(backoff)
136 |             lock.unlock()
    |                  `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
137 |         }
138 |     }
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:141:14: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
139 |
140 |     private func connect() async throws {
141 |         lock.lock()
    |              `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
142 |         let currentContext = context
143 |         lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:143:14: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
141 |         lock.lock()
142 |         let currentContext = context
143 |         lock.unlock()
    |              `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
144 |
145 |         guard let url = Self.buildStreamURL(baseUrl: baseUrl, clientKey: clientKey, context: currentContext) else { return }
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:153:14: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
151 |
152 |         // Reset backoff on successful connection
153 |         lock.lock()
    |              `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
154 |         backoff = Self.initialBackoff
155 |         retryCount = 0
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:156:14: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
154 |         backoff = Self.initialBackoff
155 |         retryCount = 0
156 |         lock.unlock()
    |              `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
157 |
158 |         var lineBuffer: [String] = []
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
[16/16] Compiling Featureflip FeatureFlag.swift
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/SwiftUI/FeatureFlag.swift:31:9: warning: main actor-isolated property 'provider' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
21 |     private let defaultValue: Bool
22 |
23 |     @EnvironmentObject private var provider: FeatureFlagProvider
   |                                    `- note: property declared here
24 |
25 |     public init(wrappedValue defaultValue: Bool, _ key: String) {
   :
29 |
30 |     public var wrappedValue: Bool {
31 |         provider.boolVariation(key, default: defaultValue)
   |         `- warning: main actor-isolated property 'provider' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
32 |     }
33 | }
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/SwiftUI/FeatureFlag.swift:28:5: error: return from initializer without initializing all stored properties
26 |         self.key = key
27 |         self.defaultValue = defaultValue
28 |     }
   |     |- error: return from initializer without initializing all stored properties
   |     `- note: main actor-isolated default value of 'self.provider' cannot be used in a nonisolated initalizer
29 |
30 |     public var wrappedValue: Bool {
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/14] Compiling Featureflip FeatureFlag.swift
[3/15] Compiling Featureflip PollingDataSource.swift
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/PollingDataSource.swift:49:14: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
47 |
48 |     func pollOnce() async {
49 |         lock.lock()
   |              `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
50 |         let currentContext = context
51 |         lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/PollingDataSource.swift:51:14: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
49 |         lock.lock()
50 |         let currentContext = context
51 |         lock.unlock()
   |              `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
52 |         do {
53 |             let result = try await httpClient.evaluate(context: currentContext)
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
[4/15] Compiling Featureflip FeatureflipConfig.swift
[5/15] Compiling Featureflip FlagCache.swift
[6/15] Compiling Featureflip Models.swift
[7/15] Compiling Featureflip HttpClient.swift
[8/15] Compiling Featureflip LifecycleObserver.swift
[9/15] Compiling Featureflip StreamingDataSource.swift
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:115:18: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
113 |     private func connectLoop() async {
114 |         while !Task.isCancelled {
115 |             lock.lock()
    |                  `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
116 |             let currentRetryCount = retryCount
117 |             let currentBackoff = backoff
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:118:18: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
116 |             let currentRetryCount = retryCount
117 |             let currentBackoff = backoff
118 |             lock.unlock()
    |                  `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
119 |
120 |             guard currentRetryCount < Self.maxRetries else { return }
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:128:18: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
126 |             }
127 |
128 |             lock.lock()
    |                  `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
129 |             retryCount += 1
130 |             lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:130:18: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
128 |             lock.lock()
129 |             retryCount += 1
130 |             lock.unlock()
    |                  `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
131 |
132 |             try? await Task.sleep(nanoseconds: UInt64(currentBackoff * 1_000_000_000))
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:134:18: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
132 |             try? await Task.sleep(nanoseconds: UInt64(currentBackoff * 1_000_000_000))
133 |
134 |             lock.lock()
    |                  `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
135 |             backoff = Self.nextBackoff(backoff)
136 |             lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:136:18: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
134 |             lock.lock()
135 |             backoff = Self.nextBackoff(backoff)
136 |             lock.unlock()
    |                  `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
137 |         }
138 |     }
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:141:14: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
139 |
140 |     private func connect() async throws {
141 |         lock.lock()
    |              `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
142 |         let currentContext = context
143 |         lock.unlock()
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:143:14: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
141 |         lock.lock()
142 |         let currentContext = context
143 |         lock.unlock()
    |              `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
144 |
145 |         guard let url = Self.buildStreamURL(baseUrl: baseUrl, clientKey: clientKey, context: currentContext) else { return }
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:153:14: warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
151 |
152 |         // Reset backoff on successful connection
153 |         lock.lock()
    |              `- warning: instance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
154 |         backoff = Self.initialBackoff
155 |         retryCount = 0
Foundation.NSLock.lock:2:11: note: 'lock()' declared here
1 | class NSLock {
2 | open func lock()}
  |           `- note: 'lock()' declared here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:156:14: warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
154 |         backoff = Self.initialBackoff
155 |         retryCount = 0
156 |         lock.unlock()
    |              `- warning: instance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode
157 |
158 |         var lineBuffer: [String] = []
Foundation.NSLock.unlock:2:11: note: 'unlock()' declared here
1 | class NSLock {
2 | open func unlock()}
  |           `- note: 'unlock()' declared here
3 |
[10/15] Compiling Featureflip Protocols.swift
[11/15] Compiling Featureflip EventProcessor.swift
[12/15] Compiling Featureflip FeatureflipClient.swift
[13/15] Emitting module Featureflip
[14/15] Compiling Featureflip SharedFeatureflipCore.swift
[15/15] Compiling Featureflip FeatureFlagProvider.swift
Build complete! (2.40s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Featureflip",
  "name" : "Featureflip",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "Featureflip",
      "targets" : [
        "Featureflip"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "FeatureflipTests",
      "module_type" : "SwiftTarget",
      "name" : "FeatureflipTests",
      "path" : "Tests/FeatureflipTests",
      "sources" : [
        "ConfigTests.swift",
        "EventProcessorTests.swift",
        "FeatureflipClientFactoryTests.swift",
        "FeatureflipClientTests.swift",
        "FeatureflipTests.swift",
        "FlagCacheTests.swift",
        "Helpers/MockHTTPLoader.swift",
        "HttpClientTests.swift",
        "LifecycleObserverTests.swift",
        "PollingDataSourceTests.swift",
        "SharedFeatureflipCoreTests.swift",
        "StreamingDataSourceTests.swift",
        "SwiftUITests.swift"
      ],
      "target_dependencies" : [
        "Featureflip"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Featureflip",
      "module_type" : "SwiftTarget",
      "name" : "Featureflip",
      "path" : "Sources/Featureflip",
      "product_memberships" : [
        "Featureflip"
      ],
      "sources" : [
        "EventProcessor.swift",
        "FeatureflipClient.swift",
        "FeatureflipConfig.swift",
        "FlagCache.swift",
        "HttpClient.swift",
        "LifecycleObserver.swift",
        "Models.swift",
        "PollingDataSource.swift",
        "Protocols.swift",
        "SharedFeatureflipCore.swift",
        "StreamingDataSource.swift",
        "SwiftUI/FeatureFlag.swift",
        "SwiftUI/FeatureFlagProvider.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.