Build Information
Successful build of Featureflip, reference v2.0.0 (839974), with Swift 6.3 for macOS (SPM) on 16 Apr 2026 11:17:26 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/canopy-labs/featureflip-swift.git
Reference: v2.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/canopy-labs/featureflip-swift
* tag v2.0.0 -> FETCH_HEAD
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 v2.0.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",
"traits": [
"default"
],
"dependencies": [
{
"identity": "featureflip-swift",
"name": "Featureflip",
"url": "https://github.com/canopy-labs/featureflip-swift.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/featureflip-swift",
"traits": [
"default"
],
"dependencies": [
]
}
]
}
Fetching https://github.com/canopy-labs/featureflip-swift.git
[1/58] Fetching featureflip-swift
Fetched https://github.com/canopy-labs/featureflip-swift.git from cache (0.67s)
Creating working copy for https://github.com/canopy-labs/featureflip-swift.git
Working copy of https://github.com/canopy-labs/featureflip-swift.git resolved at v2.0.0 (8399740)
warning: '.resolve-product-dependencies': dependency 'featureflip-swift' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.3
Building package at path: $PWD
https://github.com/canopy-labs/featureflip-swift.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--6988338F2F200930.txt
[3/15] Compiling Featureflip Protocols.swift
[4/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 |
[5/15] Compiling Featureflip EventProcessor.swift
[6/15] Compiling Featureflip FeatureflipClient.swift
[7/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 |
[8/15] Compiling Featureflip SharedFeatureflipCore.swift
[9/15] Compiling Featureflip Models.swift
[10/15] Compiling Featureflip FeatureflipConfig.swift
[11/15] Compiling Featureflip FlagCache.swift
[12/15] Compiling Featureflip HttpClient.swift
[13/15] Compiling Featureflip LifecycleObserver.swift
[14/15] Emitting module Featureflip
[15/15] Compiling Featureflip FeatureFlag.swift
[16/16] Compiling Featureflip FeatureFlagProvider.swift
Build complete! (10.72s)
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.