The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of OpenFeature, reference 0.3.0 (e2be58), with Swift 6.2 (beta) for macOS (SPM) on 23 Jun 2025 00:23:48 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/open-feature/swift-sdk.git
Reference: 0.3.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/open-feature/swift-sdk
 * tag               0.3.0      -> FETCH_HEAD
HEAD is now at e2be585 chore(main): release 0.3.0 (#53)
Cloned https://github.com/open-feature/swift-sdk.git
Revision (git rev-parse @):
e2be5852827d7d6b837b9a4e577bb52bea6322d7
SUCCESS checkout https://github.com/open-feature/swift-sdk.git at 0.3.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/open-feature/swift-sdk.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-1EA4D86E10B52AF.txt
[3/30] Emitting module OpenFeature
[4/32] Compiling OpenFeature BaseEvaluation.swift
[5/32] Compiling OpenFeature Client.swift
[6/32] Compiling OpenFeature ClientMetadata.swift
[7/32] Compiling OpenFeature ErrorCode.swift
[8/32] Compiling OpenFeature OpenFeatureError.swift
[9/32] Compiling OpenFeature MutableStructure.swift
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:41:27: warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
  4 | /// A global singleton which holds base configuration for the OpenFeature library.
  5 | /// Configuration here will be shared across all ``Client``s.
  6 | public class OpenFeatureAPI {
    |              `- note: class 'OpenFeatureAPI' does not conform to the 'Sendable' protocol
  7 |     private let eventHandler = EventHandler()
  8 |     private let queue = DispatchQueue(label: "com.openfeature.providerDescriptor.queue")
    :
 39 |             queue.async {
 40 |                 Task {
 41 |                     await self.setProviderInternal(provider: provider, initialContext: initialContext)
    |                           `- warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
 42 |                     continuation.resume()
 43 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:41:62: warning: capture of 'provider' with non-sendable type 'any FeatureProvider' in a '@Sendable' closure [#SendableClosureCaptures]
 39 |             queue.async {
 40 |                 Task {
 41 |                     await self.setProviderInternal(provider: provider, initialContext: initialContext)
    |                                                              `- warning: capture of 'provider' with non-sendable type 'any FeatureProvider' in a '@Sendable' closure [#SendableClosureCaptures]
 42 |                     continuation.resume()
 43 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/Provider/FeatureProvider.swift:4:17: note: protocol 'FeatureProvider' does not conform to the 'Sendable' protocol
 2 |
 3 | /// The interface implemented by upstream flag providers to resolve flags for their service.
 4 | public protocol FeatureProvider: EventPublisher {
   |                 `- note: protocol 'FeatureProvider' does not conform to the 'Sendable' protocol
 5 |     var hooks: [any Hook] { get }
 6 |     var metadata: ProviderMetadata { get }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:41:88: warning: capture of 'initialContext' with non-sendable type '(any EvaluationContext)?' in a '@Sendable' closure [#SendableClosureCaptures]
 39 |             queue.async {
 40 |                 Task {
 41 |                     await self.setProviderInternal(provider: provider, initialContext: initialContext)
    |                                                                                        `- warning: capture of 'initialContext' with non-sendable type '(any EvaluationContext)?' in a '@Sendable' closure [#SendableClosureCaptures]
 42 |                     continuation.resume()
 43 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/EvaluationContext.swift:4:17: note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
2 |
3 | /// Container for arbitrary contextual data that can be used as a basis for dynamic evaluation.
4 | public protocol EvaluationContext: Structure {
  |                 `- note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
5 |     func getTargetingKey() -> String
6 |
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:95:27: warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
  4 | /// A global singleton which holds base configuration for the OpenFeature library.
  5 | /// Configuration here will be shared across all ``Client``s.
  6 | public class OpenFeatureAPI {
    |              `- note: class 'OpenFeatureAPI' does not conform to the 'Sendable' protocol
  7 |     private let eventHandler = EventHandler()
  8 |     private let queue = DispatchQueue(label: "com.openfeature.providerDescriptor.queue")
    :
 93 |             queue.async {
 94 |                 Task {
 95 |                     await self.updateContext(evaluationContext: evaluationContext)
    |                           `- warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
 96 |                     continuation.resume()
 97 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:95:65: warning: capture of 'evaluationContext' with non-sendable type 'any EvaluationContext' in a '@Sendable' closure [#SendableClosureCaptures]
 93 |             queue.async {
 94 |                 Task {
 95 |                     await self.updateContext(evaluationContext: evaluationContext)
    |                                                                 `- warning: capture of 'evaluationContext' with non-sendable type 'any EvaluationContext' in a '@Sendable' closure [#SendableClosureCaptures]
 96 |                     continuation.resume()
 97 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/EvaluationContext.swift:4:17: note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
2 |
3 | /// Container for arbitrary contextual data that can be used as a basis for dynamic evaluation.
4 | public protocol EvaluationContext: Structure {
  |                 `- note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
5 |     func getTargetingKey() -> String
6 |
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[10/32] Compiling OpenFeature OpenFeatureAPI.swift
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:41:27: warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
  4 | /// A global singleton which holds base configuration for the OpenFeature library.
  5 | /// Configuration here will be shared across all ``Client``s.
  6 | public class OpenFeatureAPI {
    |              `- note: class 'OpenFeatureAPI' does not conform to the 'Sendable' protocol
  7 |     private let eventHandler = EventHandler()
  8 |     private let queue = DispatchQueue(label: "com.openfeature.providerDescriptor.queue")
    :
 39 |             queue.async {
 40 |                 Task {
 41 |                     await self.setProviderInternal(provider: provider, initialContext: initialContext)
    |                           `- warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
 42 |                     continuation.resume()
 43 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:41:62: warning: capture of 'provider' with non-sendable type 'any FeatureProvider' in a '@Sendable' closure [#SendableClosureCaptures]
 39 |             queue.async {
 40 |                 Task {
 41 |                     await self.setProviderInternal(provider: provider, initialContext: initialContext)
    |                                                              `- warning: capture of 'provider' with non-sendable type 'any FeatureProvider' in a '@Sendable' closure [#SendableClosureCaptures]
 42 |                     continuation.resume()
 43 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/Provider/FeatureProvider.swift:4:17: note: protocol 'FeatureProvider' does not conform to the 'Sendable' protocol
 2 |
 3 | /// The interface implemented by upstream flag providers to resolve flags for their service.
 4 | public protocol FeatureProvider: EventPublisher {
   |                 `- note: protocol 'FeatureProvider' does not conform to the 'Sendable' protocol
 5 |     var hooks: [any Hook] { get }
 6 |     var metadata: ProviderMetadata { get }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:41:88: warning: capture of 'initialContext' with non-sendable type '(any EvaluationContext)?' in a '@Sendable' closure [#SendableClosureCaptures]
 39 |             queue.async {
 40 |                 Task {
 41 |                     await self.setProviderInternal(provider: provider, initialContext: initialContext)
    |                                                                                        `- warning: capture of 'initialContext' with non-sendable type '(any EvaluationContext)?' in a '@Sendable' closure [#SendableClosureCaptures]
 42 |                     continuation.resume()
 43 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/EvaluationContext.swift:4:17: note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
2 |
3 | /// Container for arbitrary contextual data that can be used as a basis for dynamic evaluation.
4 | public protocol EvaluationContext: Structure {
  |                 `- note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
5 |     func getTargetingKey() -> String
6 |
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:95:27: warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
  4 | /// A global singleton which holds base configuration for the OpenFeature library.
  5 | /// Configuration here will be shared across all ``Client``s.
  6 | public class OpenFeatureAPI {
    |              `- note: class 'OpenFeatureAPI' does not conform to the 'Sendable' protocol
  7 |     private let eventHandler = EventHandler()
  8 |     private let queue = DispatchQueue(label: "com.openfeature.providerDescriptor.queue")
    :
 93 |             queue.async {
 94 |                 Task {
 95 |                     await self.updateContext(evaluationContext: evaluationContext)
    |                           `- warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
 96 |                     continuation.resume()
 97 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:95:65: warning: capture of 'evaluationContext' with non-sendable type 'any EvaluationContext' in a '@Sendable' closure [#SendableClosureCaptures]
 93 |             queue.async {
 94 |                 Task {
 95 |                     await self.updateContext(evaluationContext: evaluationContext)
    |                                                                 `- warning: capture of 'evaluationContext' with non-sendable type 'any EvaluationContext' in a '@Sendable' closure [#SendableClosureCaptures]
 96 |                     continuation.resume()
 97 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/EvaluationContext.swift:4:17: note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
2 |
3 | /// Container for arbitrary contextual data that can be used as a basis for dynamic evaluation.
4 | public protocol EvaluationContext: Structure {
  |                 `- note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
5 |     func getTargetingKey() -> String
6 |
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[11/32] Compiling OpenFeature OpenFeatureClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:41:27: warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
  4 | /// A global singleton which holds base configuration for the OpenFeature library.
  5 | /// Configuration here will be shared across all ``Client``s.
  6 | public class OpenFeatureAPI {
    |              `- note: class 'OpenFeatureAPI' does not conform to the 'Sendable' protocol
  7 |     private let eventHandler = EventHandler()
  8 |     private let queue = DispatchQueue(label: "com.openfeature.providerDescriptor.queue")
    :
 39 |             queue.async {
 40 |                 Task {
 41 |                     await self.setProviderInternal(provider: provider, initialContext: initialContext)
    |                           `- warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
 42 |                     continuation.resume()
 43 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:41:62: warning: capture of 'provider' with non-sendable type 'any FeatureProvider' in a '@Sendable' closure [#SendableClosureCaptures]
 39 |             queue.async {
 40 |                 Task {
 41 |                     await self.setProviderInternal(provider: provider, initialContext: initialContext)
    |                                                              `- warning: capture of 'provider' with non-sendable type 'any FeatureProvider' in a '@Sendable' closure [#SendableClosureCaptures]
 42 |                     continuation.resume()
 43 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/Provider/FeatureProvider.swift:4:17: note: protocol 'FeatureProvider' does not conform to the 'Sendable' protocol
 2 |
 3 | /// The interface implemented by upstream flag providers to resolve flags for their service.
 4 | public protocol FeatureProvider: EventPublisher {
   |                 `- note: protocol 'FeatureProvider' does not conform to the 'Sendable' protocol
 5 |     var hooks: [any Hook] { get }
 6 |     var metadata: ProviderMetadata { get }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:41:88: warning: capture of 'initialContext' with non-sendable type '(any EvaluationContext)?' in a '@Sendable' closure [#SendableClosureCaptures]
 39 |             queue.async {
 40 |                 Task {
 41 |                     await self.setProviderInternal(provider: provider, initialContext: initialContext)
    |                                                                                        `- warning: capture of 'initialContext' with non-sendable type '(any EvaluationContext)?' in a '@Sendable' closure [#SendableClosureCaptures]
 42 |                     continuation.resume()
 43 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/EvaluationContext.swift:4:17: note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
2 |
3 | /// Container for arbitrary contextual data that can be used as a basis for dynamic evaluation.
4 | public protocol EvaluationContext: Structure {
  |                 `- note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
5 |     func getTargetingKey() -> String
6 |
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:95:27: warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
  4 | /// A global singleton which holds base configuration for the OpenFeature library.
  5 | /// Configuration here will be shared across all ``Client``s.
  6 | public class OpenFeatureAPI {
    |              `- note: class 'OpenFeatureAPI' does not conform to the 'Sendable' protocol
  7 |     private let eventHandler = EventHandler()
  8 |     private let queue = DispatchQueue(label: "com.openfeature.providerDescriptor.queue")
    :
 93 |             queue.async {
 94 |                 Task {
 95 |                     await self.updateContext(evaluationContext: evaluationContext)
    |                           `- warning: capture of 'self' with non-sendable type 'OpenFeatureAPI' in a '@Sendable' closure [#SendableClosureCaptures]
 96 |                     continuation.resume()
 97 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/OpenFeatureAPI.swift:95:65: warning: capture of 'evaluationContext' with non-sendable type 'any EvaluationContext' in a '@Sendable' closure [#SendableClosureCaptures]
 93 |             queue.async {
 94 |                 Task {
 95 |                     await self.updateContext(evaluationContext: evaluationContext)
    |                                                                 `- warning: capture of 'evaluationContext' with non-sendable type 'any EvaluationContext' in a '@Sendable' closure [#SendableClosureCaptures]
 96 |                     continuation.resume()
 97 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OpenFeature/EvaluationContext.swift:4:17: note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
2 |
3 | /// Container for arbitrary contextual data that can be used as a basis for dynamic evaluation.
4 | public protocol EvaluationContext: Structure {
  |                 `- note: protocol 'EvaluationContext' does not conform to the 'Sendable' protocol
5 |     func getTargetingKey() -> String
6 |
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[12/32] Compiling OpenFeature FeatureProvider.swift
[13/32] Compiling OpenFeature NoOpProvider.swift
[14/32] Compiling OpenFeature ProviderEvaluation.swift
[15/32] Compiling OpenFeature EvaluationContext.swift
[16/32] Compiling OpenFeature EventHandler.swift
[17/32] Compiling OpenFeature Features+Defaults.swift
[18/32] Compiling OpenFeature ProviderEvents.swift
[19/32] Compiling OpenFeature ProviderMetadata.swift
[20/32] Compiling OpenFeature ProviderStatus.swift
[21/32] Compiling OpenFeature Features.swift
[22/32] Compiling OpenFeature FlagEvaluationDetails.swift
[23/32] Compiling OpenFeature FlagEvaluationOptions.swift
[24/32] Compiling OpenFeature FlagMetadataValue.swift
[25/32] Compiling OpenFeature FlagValueType.swift
[26/32] Compiling OpenFeature Hook.swift
[27/32] Compiling OpenFeature Reason.swift
[28/32] Compiling OpenFeature Structure.swift
[29/32] Compiling OpenFeature Value.swift
[30/32] Compiling OpenFeature HookContext.swift
[31/32] Compiling OpenFeature HookSupport.swift
[32/32] Compiling OpenFeature MutableContext.swift
Build complete! (5.17s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "OpenFeature",
  "name" : "OpenFeature",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    }
  ],
  "products" : [
    {
      "name" : "OpenFeature",
      "targets" : [
        "OpenFeature"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "OpenFeatureTests",
      "module_type" : "SwiftTarget",
      "name" : "OpenFeatureTests",
      "path" : "Tests/OpenFeatureTests",
      "sources" : [
        "DeveloperExperienceTests.swift",
        "EvalContextTests.swift",
        "FlagEvaluationTests.swift",
        "Helpers/AlwaysBrokenProvider.swift",
        "Helpers/BooleanHookMock.swift",
        "Helpers/DoSomethingProvider.swift",
        "Helpers/IntHookMock.swift",
        "Helpers/StaggeredProvider.swift",
        "Helpers/ThrowingProvider.swift",
        "HookSpecTests.swift",
        "HookSupportTests.swift",
        "OpenFeatureClientTests.swift",
        "ProviderSpecTests.swift",
        "StructureTests.swift",
        "ValueTests.swift"
      ],
      "target_dependencies" : [
        "OpenFeature"
      ],
      "type" : "test"
    },
    {
      "c99name" : "OpenFeature",
      "module_type" : "SwiftTarget",
      "name" : "OpenFeature",
      "path" : "Sources/OpenFeature",
      "product_memberships" : [
        "OpenFeature"
      ],
      "sources" : [
        "BaseEvaluation.swift",
        "Client.swift",
        "ClientMetadata.swift",
        "EvaluationContext.swift",
        "EventHandler.swift",
        "Features+Defaults.swift",
        "Features.swift",
        "FlagEvaluationDetails.swift",
        "FlagEvaluationOptions.swift",
        "FlagMetadataValue.swift",
        "FlagValueType.swift",
        "Hook.swift",
        "HookContext.swift",
        "HookSupport.swift",
        "MutableContext.swift",
        "MutableStructure.swift",
        "OpenFeatureAPI.swift",
        "OpenFeatureClient.swift",
        "Provider/FeatureProvider.swift",
        "Provider/NoOpProvider.swift",
        "Provider/ProviderEvaluation.swift",
        "Provider/ProviderEvents.swift",
        "Provider/ProviderMetadata.swift",
        "Provider/ProviderStatus.swift",
        "Reason.swift",
        "Structure.swift",
        "Value.swift",
        "exceptions/ErrorCode.swift",
        "exceptions/OpenFeatureError.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.