Build Information
Successful build of Featureflip, reference master (7bf7a3), with Swift 6.4 for macOS (SPM) on 23 Oct 2026 00:47:26 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.3
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 7bf7a3a Release v3.4.0
Cloned https://github.com/canopy-labs/featureflip-swift.git
Revision (git rev-parse @):
7bf7a3ab45969716da1c6c4a5f35ff3fb62e2975
SUCCESS checkout https://github.com/canopy-labs/featureflip-swift.git at master
========================================
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/214] Fetching featureflip-swift
Fetched https://github.com/canopy-labs/featureflip-swift.git (0.94s)
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 master (7bf7a3a)
warning: '.resolve-product-dependencies': dependency 'featureflip-swift' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/canopy-labs/featureflip-swift.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0.app xcrun swift build --arch arm64
Building for debugging...
[Constructing description]
[Planning deferred tasks]
[19 / 28]
[20 / 29] Featureflip
[30 / 106]
[33 / 106]
[41 / 106]
[43 / 106]
[44 / 106]
[49 / 106]
[51 / 106]
[53 / 106]
[56 / 106]
[61 / 106]
[64 / 106]
[66 / 106]
[67 / 106]
[77 / 106]
[79 / 106]
[80 / 106]
[83 / 106]
[85 / 106]
[97 / 106] Featureflip
[98 / 106] Featureflip
[103 / 106] Featureflip
Build complete! (11.80 sec)
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/PollingDataSource.swift:74:14: [1;33mwarning: [1;39minstance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m72 |[0;0m
[0;36m73 |[0;0m func pollOnce() async {
[0;36m74 |[0;0m lock.lock()
[0;36m|[0;0m `- [1;33mwarning: [1;39minstance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m75 |[0;0m let currentContext = context
[0;36m76 |[0;0m lock.unlock()
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSLock.h:15:1: [1;39mnote: [1;39m'lock()' declared here[0;0m
[0;36m13 |[0;0m
[0;36m14 |[0;0m /// Attempts to acquire a lock, blocking a thread's execution until the lock can be acquired.
[0;36m15 |[0;0m - (void)lock NS_SWIFT_UNAVAILABLE_FROM_ASYNC("Use async-safe scoped locking instead");
[0;36m|[0;0m `- [1;39mnote: [1;39m'lock()' declared here[0;0m
[0;36m16 |[0;0m
[0;36m17 |[0;0m /// Relinquishes a previously acquired lock.
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/PollingDataSource.swift:76:14: [1;33mwarning: [1;39minstance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m74 |[0;0m lock.lock()
[0;36m75 |[0;0m let currentContext = context
[0;36m76 |[0;0m lock.unlock()
[0;36m|[0;0m `- [1;33mwarning: [1;39minstance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m77 |[0;0m do {
[0;36m78 |[0;0m let result = try await httpClient.evaluate(context: currentContext)
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSLock.h:18:1: [1;39mnote: [1;39m'unlock()' declared here[0;0m
[0;36m16 |[0;0m
[0;36m17 |[0;0m /// Relinquishes a previously acquired lock.
[0;36m18 |[0;0m - (void)unlock NS_SWIFT_UNAVAILABLE_FROM_ASYNC("Use async-safe scoped locking instead");
[0;36m|[0;0m `- [1;39mnote: [1;39m'unlock()' declared here[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m @end
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/PollingDataSource.swift:79:18: [1;33mwarning: [1;39minstance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m77 |[0;0m do {
[0;36m78 |[0;0m let result = try await httpClient.evaluate(context: currentContext)
[0;36m79 |[0;0m lock.lock()
[0;36m|[0;0m `- [1;33mwarning: [1;39minstance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m80 |[0;0m let isStopped = stopped
[0;36m81 |[0;0m lock.unlock()
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSLock.h:15:1: [1;39mnote: [1;39m'lock()' declared here[0;0m
[0;36m13 |[0;0m
[0;36m14 |[0;0m /// Attempts to acquire a lock, blocking a thread's execution until the lock can be acquired.
[0;36m15 |[0;0m - (void)lock NS_SWIFT_UNAVAILABLE_FROM_ASYNC("Use async-safe scoped locking instead");
[0;36m|[0;0m `- [1;39mnote: [1;39m'lock()' declared here[0;0m
[0;36m16 |[0;0m
[0;36m17 |[0;0m /// Relinquishes a previously acquired lock.
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/PollingDataSource.swift:81:18: [1;33mwarning: [1;39minstance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m79 |[0;0m lock.lock()
[0;36m80 |[0;0m let isStopped = stopped
[0;36m81 |[0;0m lock.unlock()
[0;36m|[0;0m `- [1;33mwarning: [1;39minstance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m82 |[0;0m if isStopped { return }
[0;36m83 |[0;0m onChange(result.flags)
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSLock.h:18:1: [1;39mnote: [1;39m'unlock()' declared here[0;0m
[0;36m16 |[0;0m
[0;36m17 |[0;0m /// Relinquishes a previously acquired lock.
[0;36m18 |[0;0m - (void)unlock NS_SWIFT_UNAVAILABLE_FROM_ASYNC("Use async-safe scoped locking instead");
[0;36m|[0;0m `- [1;39mnote: [1;39m'unlock()' declared here[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m @end
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:206:18: [1;33mwarning: [1;39minstance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m204 |[0;0m // front would make the first reconnect after it sleep the pre-outage
[0;36m205 |[0;0m // delay — up to the 30s cap — instead of the base.
[0;36m206 |[0;0m lock.lock()
[0;36m|[0;0m `- [1;33mwarning: [1;39minstance method 'lock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m207 |[0;0m retryCount += 1
[0;36m208 |[0;0m let armFallback = retryCount >= Self.maxRetries && !fallbackActive
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSLock.h:15:1: [1;39mnote: [1;39m'lock()' declared here[0;0m
[0;36m13 |[0;0m
[0;36m14 |[0;0m /// Attempts to acquire a lock, blocking a thread's execution until the lock can be acquired.
[0;36m15 |[0;0m - (void)lock NS_SWIFT_UNAVAILABLE_FROM_ASYNC("Use async-safe scoped locking instead");
[0;36m|[0;0m `- [1;39mnote: [1;39m'lock()' declared here[0;0m
[0;36m16 |[0;0m
[0;36m17 |[0;0m /// Relinquishes a previously acquired lock.
/Users/admin/builder/spi-builder-workspace/Sources/Featureflip/StreamingDataSource.swift:214:18: [1;33mwarning: [1;39minstance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m212 |[0;0m let currentBackoff = backoff
[0;36m213 |[0;0m backoff = Self.nextBackoff(backoff)
[0;36m214 |[0;0m lock.unlock()
[0;36m|[0;0m `- [1;33mwarning: [1;39minstance method 'unlock' is unavailable from asynchronous contexts; Use async-safe scoped locking instead; this is an error in the Swift 6 language mode[0;0m
[0;36m215 |[0;0m
[0;36m216 |[0;0m // The fallback is ADDITIVE, never terminal (#3075). Polling covers the
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSLock.h:18:1: [1;39mnote: [1;39m'unlock()' declared here[0;0m
[0;36m16 |[0;0m
[0;36m17 |[0;0m /// Relinquishes a previously acquired lock.
[0;36m18 |[0;0m - (void)unlock NS_SWIFT_UNAVAILABLE_FROM_ASYNC("Use async-safe scoped locking instead");
[0;36m|[0;0m `- [1;39mnote: [1;39m'unlock()' declared here[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m @end
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" : [
"AnonymousKeyTests.swift",
"ConfigTests.swift",
"ContextValueTypeTests.swift",
"EventFlushCoalescingTests.swift",
"EventFlushResilienceTests.swift",
"EventProcessorTests.swift",
"FeatureflipClientFactoryTests.swift",
"FeatureflipClientTests.swift",
"FeatureflipTests.swift",
"FlagCacheTests.swift",
"Helpers/MockHTTPLoader.swift",
"HttpClientTests.swift",
"InspectorTests.swift",
"LifecycleObserverTests.swift",
"PollingDataSourceTests.swift",
"PrerequisiteKeyTests.swift",
"ReadRecorderTests.swift",
"ReadReportingBenchmarkTests.swift",
"ReadReportingCoreTests.swift",
"SdkIdentityTests.swift",
"SharedFeatureflipCoreTests.swift",
"StreamingDataSourceTests.swift",
"SwiftUITests.swift",
"UseAfterCloseTests.swift"
],
"target_dependencies" : [
"Featureflip"
],
"type" : "test"
},
{
"c99name" : "Featureflip",
"module_type" : "SwiftTarget",
"name" : "Featureflip",
"path" : "Sources/Featureflip",
"product_memberships" : [
"Featureflip"
],
"sources" : [
"AnonymousKeyStore.swift",
"Diagnostics.swift",
"EventProcessor.swift",
"FeatureflipClient.swift",
"FeatureflipConfig.swift",
"FlagCache.swift",
"HttpClient.swift",
"LifecycleObserver.swift",
"Models.swift",
"PollingDataSource.swift",
"Protocols.swift",
"ReadRecorder.swift",
"SdkIdentity.swift",
"SharedFeatureflipCore.swift",
"StreamingDataSource.swift",
"SwiftUI/FeatureFlag.swift",
"SwiftUI/FeatureFlagProvider.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.