The Swift Package Index logo.Swift Package Index

Build Information

Successful build of GrowthBook-IOS, reference main (212ec5), with Swift 6.0 for macOS (SPM) on 30 Apr 2026 09:35:57 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.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/growthbook/growthbook-swift.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/growthbook/growthbook-swift
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 212ec59 fix: restore savedGroups from cache on app restart (#156)
Cloned https://github.com/growthbook/growthbook-swift.git
Revision (git rev-parse @):
212ec59a0274623070eeaad766dcc6457be9b438
SUCCESS checkout https://github.com/growthbook/growthbook-swift.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/growthbook/growthbook-swift.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-5BDAB9E9C0126B9D.txt
[3/37] Emitting module GrowthBook
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:4:20: warning: non-final class 'Feature' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
  2 |
  3 | /// A Feature object consists of possible values plus rules for how to assign values to users.
  4 | @objc public class Feature: NSObject, Codable, Sendable {
    |                    `- warning: non-final class 'Feature' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
  5 |     /// The default value (should use null if not specified)
  6 |     public let defaultValue: JSON?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:6:16: warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
  4 | @objc public class Feature: NSObject, Codable, Sendable {
  5 |     /// The default value (should use null if not specified)
  6 |     public let defaultValue: JSON?
    |                `- warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
  7 |     /// Array of Rule objects that determine when and how the defaultValue gets overridden
  8 |     public let rules: [FeatureRule]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:29:16: warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 27 |     public let id: String?
 28 |     /// Optional targeting condition
 29 |     public let condition: JSON?
    |                `- warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 30 |     /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
 31 |     public let parentConditions: [ParentConditionInterface]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:31:16: warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[ParentConditionInterface]?'; this is an error in the Swift 6 language mode
 29 |     public let condition: JSON?
 30 |     /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
 31 |     public let parentConditions: [ParentConditionInterface]?
    |                `- warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[ParentConditionInterface]?'; this is an error in the Swift 6 language mode
 32 |     /// What percent of users should be included in the experiment (between 0 and 1, inclusive)
 33 |     public let coverage: Float?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:19:15: note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
 17 | typealias Condition = JSON
 18 |
 19 | public struct ParentConditionInterface: Codable {
    |               `- note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
 20 |     public let id: String
 21 |     public let condition: JSON
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:35:16: warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 33 |     public let coverage: Float?
 34 |     /// Immediately force a specific value (ignore every other option besides condition and coverage)
 35 |     public let force: JSON?
    |                `- warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 36 |     /// Run an experiment (A/B test) and randomly choose between these variations
 37 |     public let variations: [JSON]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:37:16: warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 35 |     public let force: JSON?
 36 |     /// Run an experiment (A/B test) and randomly choose between these variations
 37 |     public let variations: [JSON]?
    |                `- warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 38 |     /// The globally unique tracking key for the experiment (default to the feature key)
 39 |     public let key: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:43:16: warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 41 |     public let weights: [Float]?
 42 |     /// A tuple that contains the namespace identifier, plus a range of coverage for the experiment.
 43 |     public let namespace: [JSON]?
    |                `- warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 44 |     /// What user attribute should be used to assign variations (defaults to id)
 45 |     public let hashAttribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:57:16: warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'BucketRange?'; this is an error in the Swift 6 language mode
 55 |     public let minBucketVersion: Int?
 56 |     /// A more precise version of `coverage`
 57 |     public let range: BucketRange?
    |                `- warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'BucketRange?'; this is an error in the Swift 6 language mode
 58 |     /// Ranges for experiment variations
 59 |     public let ranges: [BucketRange]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 46 |
 47 | /// Double Struct for GrowthBook Ranges
 48 | public struct BucketRange: Codable {
    |               `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 49 |     let number1: Float
 50 |     let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:59:16: warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[BucketRange]?'; this is an error in the Swift 6 language mode
 57 |     public let range: BucketRange?
 58 |     /// Ranges for experiment variations
 59 |     public let ranges: [BucketRange]?
    |                `- warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[BucketRange]?'; this is an error in the Swift 6 language mode
 60 |     /// Meta info about the experiment variations
 61 |     public let meta: [VariationMeta]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 46 |
 47 | /// Double Struct for GrowthBook Ranges
 48 | public struct BucketRange: Codable {
    |               `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 49 |     let number1: Float
 50 |     let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:61:16: warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[VariationMeta]?'; this is an error in the Swift 6 language mode
 59 |     public let ranges: [BucketRange]?
 60 |     /// Meta info about the experiment variations
 61 |     public let meta: [VariationMeta]?
    |                `- warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[VariationMeta]?'; this is an error in the Swift 6 language mode
 62 |     /// Array of filters to apply to the rule
 63 |     public let filters: [Filter]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:114:15: note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
112 |
113 | /// Meta info about the variations
114 | public struct VariationMeta: Codable {
    |               `- note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
115 |     /// Used to implement holdout groups
116 |     let passthrough: Bool?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:63:16: warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Filter]?'; this is an error in the Swift 6 language mode
 61 |     public let meta: [VariationMeta]?
 62 |     /// Array of filters to apply to the rule
 63 |     public let filters: [Filter]?
    |                `- warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Filter]?'; this is an error in the Swift 6 language mode
 64 |     /// Seed to use for hashing
 65 |     public let seed: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:152:20: note: class 'Filter' does not conform to the 'Sendable' protocol
150 |
151 | /// Object used for mutual exclusion and filtering users out of experiments based on random hashes.
152 | @objc public class Filter: NSObject, Codable {
    |                    `- note: class 'Filter' does not conform to the 'Sendable' protocol
153 |     /// The attribute to use (default to `"id"`)
154 |     var attribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:71:16: warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Track]?'; this is an error in the Swift 6 language mode
 69 |     public let phase: String?
 70 |     /// Array of tracking calls to fire
 71 |     public let tracks: [Track]?
    |                `- warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Track]?'; this is an error in the Swift 6 language mode
 72 |
 73 |     init(id: String? = "", condition: Condition? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:129:15: note: consider making struct 'Track' conform to the 'Sendable' protocol
127 | }
128 |
129 | public struct Track: Codable {
    |               `- note: consider making struct 'Track' conform to the 'Sendable' protocol
130 |     public let experiment: Experiment?
131 |     public let result: ExperimentResult?
[4/40] Compiling GrowthBook Extensions.swift
[5/40] Compiling GrowthBook Logger.swift
[6/40] Compiling GrowthBook Utils.swift
[7/40] Compiling GrowthBook GlobalContext.swift
[8/40] Compiling GrowthBook RemoteEvalModel.swift
[9/40] Compiling GrowthBook StickyAssignmentsDocument.swift
[10/40] Compiling GrowthBook EventHandler.swift
[11/40] Compiling GrowthBook SSEHandler.swift
[12/40] Compiling GrowthBook StickyBucketService.swift
[13/40] Compiling GrowthBook Common.swift
[14/40] Compiling GrowthBook FeaturesViewModel.swift
[15/40] Compiling GrowthBook GrowthBookModel.swift
[16/40] Compiling GrowthBook GrowthBookSDK.swift
[17/40] Compiling GrowthBook JsonManager.swift
[18/40] Compiling GrowthBook ExperimentHelper.swift
[19/40] Compiling GrowthBook FeatureEvaluator.swift
[20/40] Compiling GrowthBook FeaturesDataModel.swift
[21/40] Compiling GrowthBook FeaturesDataSource.swift
[22/40] Compiling GrowthBook EvaluationData.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:4:20: warning: non-final class 'Feature' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
  2 |
  3 | /// A Feature object consists of possible values plus rules for how to assign values to users.
  4 | @objc public class Feature: NSObject, Codable, Sendable {
    |                    `- warning: non-final class 'Feature' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
  5 |     /// The default value (should use null if not specified)
  6 |     public let defaultValue: JSON?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:6:16: warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
  4 | @objc public class Feature: NSObject, Codable, Sendable {
  5 |     /// The default value (should use null if not specified)
  6 |     public let defaultValue: JSON?
    |                `- warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
  7 |     /// Array of Rule objects that determine when and how the defaultValue gets overridden
  8 |     public let rules: [FeatureRule]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:29:16: warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 27 |     public let id: String?
 28 |     /// Optional targeting condition
 29 |     public let condition: JSON?
    |                `- warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 30 |     /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
 31 |     public let parentConditions: [ParentConditionInterface]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:31:16: warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[ParentConditionInterface]?'; this is an error in the Swift 6 language mode
 29 |     public let condition: JSON?
 30 |     /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
 31 |     public let parentConditions: [ParentConditionInterface]?
    |                `- warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[ParentConditionInterface]?'; this is an error in the Swift 6 language mode
 32 |     /// What percent of users should be included in the experiment (between 0 and 1, inclusive)
 33 |     public let coverage: Float?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:19:15: note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
 17 | typealias Condition = JSON
 18 |
 19 | public struct ParentConditionInterface: Codable {
    |               `- note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
 20 |     public let id: String
 21 |     public let condition: JSON
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:35:16: warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 33 |     public let coverage: Float?
 34 |     /// Immediately force a specific value (ignore every other option besides condition and coverage)
 35 |     public let force: JSON?
    |                `- warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 36 |     /// Run an experiment (A/B test) and randomly choose between these variations
 37 |     public let variations: [JSON]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:37:16: warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 35 |     public let force: JSON?
 36 |     /// Run an experiment (A/B test) and randomly choose between these variations
 37 |     public let variations: [JSON]?
    |                `- warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 38 |     /// The globally unique tracking key for the experiment (default to the feature key)
 39 |     public let key: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:43:16: warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 41 |     public let weights: [Float]?
 42 |     /// A tuple that contains the namespace identifier, plus a range of coverage for the experiment.
 43 |     public let namespace: [JSON]?
    |                `- warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 44 |     /// What user attribute should be used to assign variations (defaults to id)
 45 |     public let hashAttribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:57:16: warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'BucketRange?'; this is an error in the Swift 6 language mode
 55 |     public let minBucketVersion: Int?
 56 |     /// A more precise version of `coverage`
 57 |     public let range: BucketRange?
    |                `- warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'BucketRange?'; this is an error in the Swift 6 language mode
 58 |     /// Ranges for experiment variations
 59 |     public let ranges: [BucketRange]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 46 |
 47 | /// Double Struct for GrowthBook Ranges
 48 | public struct BucketRange: Codable {
    |               `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 49 |     let number1: Float
 50 |     let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:59:16: warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[BucketRange]?'; this is an error in the Swift 6 language mode
 57 |     public let range: BucketRange?
 58 |     /// Ranges for experiment variations
 59 |     public let ranges: [BucketRange]?
    |                `- warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[BucketRange]?'; this is an error in the Swift 6 language mode
 60 |     /// Meta info about the experiment variations
 61 |     public let meta: [VariationMeta]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 46 |
 47 | /// Double Struct for GrowthBook Ranges
 48 | public struct BucketRange: Codable {
    |               `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 49 |     let number1: Float
 50 |     let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:61:16: warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[VariationMeta]?'; this is an error in the Swift 6 language mode
 59 |     public let ranges: [BucketRange]?
 60 |     /// Meta info about the experiment variations
 61 |     public let meta: [VariationMeta]?
    |                `- warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[VariationMeta]?'; this is an error in the Swift 6 language mode
 62 |     /// Array of filters to apply to the rule
 63 |     public let filters: [Filter]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:114:15: note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
112 |
113 | /// Meta info about the variations
114 | public struct VariationMeta: Codable {
    |               `- note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
115 |     /// Used to implement holdout groups
116 |     let passthrough: Bool?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:63:16: warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Filter]?'; this is an error in the Swift 6 language mode
 61 |     public let meta: [VariationMeta]?
 62 |     /// Array of filters to apply to the rule
 63 |     public let filters: [Filter]?
    |                `- warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Filter]?'; this is an error in the Swift 6 language mode
 64 |     /// Seed to use for hashing
 65 |     public let seed: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:152:20: note: class 'Filter' does not conform to the 'Sendable' protocol
150 |
151 | /// Object used for mutual exclusion and filtering users out of experiments based on random hashes.
152 | @objc public class Filter: NSObject, Codable {
    |                    `- note: class 'Filter' does not conform to the 'Sendable' protocol
153 |     /// The attribute to use (default to `"id"`)
154 |     var attribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:71:16: warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Track]?'; this is an error in the Swift 6 language mode
 69 |     public let phase: String?
 70 |     /// Array of tracking calls to fire
 71 |     public let tracks: [Track]?
    |                `- warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Track]?'; this is an error in the Swift 6 language mode
 72 |
 73 |     init(id: String? = "", condition: Condition? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:129:15: note: consider making struct 'Track' conform to the 'Sendable' protocol
127 | }
128 |
129 | public struct Track: Codable {
    |               `- note: consider making struct 'Track' conform to the 'Sendable' protocol
130 |     public let experiment: Experiment?
131 |     public let result: ExperimentResult?
[23/40] Compiling GrowthBook Experiment.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:4:20: warning: non-final class 'Feature' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
  2 |
  3 | /// A Feature object consists of possible values plus rules for how to assign values to users.
  4 | @objc public class Feature: NSObject, Codable, Sendable {
    |                    `- warning: non-final class 'Feature' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
  5 |     /// The default value (should use null if not specified)
  6 |     public let defaultValue: JSON?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:6:16: warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
  4 | @objc public class Feature: NSObject, Codable, Sendable {
  5 |     /// The default value (should use null if not specified)
  6 |     public let defaultValue: JSON?
    |                `- warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
  7 |     /// Array of Rule objects that determine when and how the defaultValue gets overridden
  8 |     public let rules: [FeatureRule]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:29:16: warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 27 |     public let id: String?
 28 |     /// Optional targeting condition
 29 |     public let condition: JSON?
    |                `- warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 30 |     /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
 31 |     public let parentConditions: [ParentConditionInterface]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:31:16: warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[ParentConditionInterface]?'; this is an error in the Swift 6 language mode
 29 |     public let condition: JSON?
 30 |     /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
 31 |     public let parentConditions: [ParentConditionInterface]?
    |                `- warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[ParentConditionInterface]?'; this is an error in the Swift 6 language mode
 32 |     /// What percent of users should be included in the experiment (between 0 and 1, inclusive)
 33 |     public let coverage: Float?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:19:15: note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
 17 | typealias Condition = JSON
 18 |
 19 | public struct ParentConditionInterface: Codable {
    |               `- note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
 20 |     public let id: String
 21 |     public let condition: JSON
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:35:16: warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 33 |     public let coverage: Float?
 34 |     /// Immediately force a specific value (ignore every other option besides condition and coverage)
 35 |     public let force: JSON?
    |                `- warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 36 |     /// Run an experiment (A/B test) and randomly choose between these variations
 37 |     public let variations: [JSON]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:37:16: warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 35 |     public let force: JSON?
 36 |     /// Run an experiment (A/B test) and randomly choose between these variations
 37 |     public let variations: [JSON]?
    |                `- warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 38 |     /// The globally unique tracking key for the experiment (default to the feature key)
 39 |     public let key: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:43:16: warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 41 |     public let weights: [Float]?
 42 |     /// A tuple that contains the namespace identifier, plus a range of coverage for the experiment.
 43 |     public let namespace: [JSON]?
    |                `- warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 44 |     /// What user attribute should be used to assign variations (defaults to id)
 45 |     public let hashAttribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:57:16: warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'BucketRange?'; this is an error in the Swift 6 language mode
 55 |     public let minBucketVersion: Int?
 56 |     /// A more precise version of `coverage`
 57 |     public let range: BucketRange?
    |                `- warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'BucketRange?'; this is an error in the Swift 6 language mode
 58 |     /// Ranges for experiment variations
 59 |     public let ranges: [BucketRange]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 46 |
 47 | /// Double Struct for GrowthBook Ranges
 48 | public struct BucketRange: Codable {
    |               `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 49 |     let number1: Float
 50 |     let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:59:16: warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[BucketRange]?'; this is an error in the Swift 6 language mode
 57 |     public let range: BucketRange?
 58 |     /// Ranges for experiment variations
 59 |     public let ranges: [BucketRange]?
    |                `- warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[BucketRange]?'; this is an error in the Swift 6 language mode
 60 |     /// Meta info about the experiment variations
 61 |     public let meta: [VariationMeta]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 46 |
 47 | /// Double Struct for GrowthBook Ranges
 48 | public struct BucketRange: Codable {
    |               `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 49 |     let number1: Float
 50 |     let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:61:16: warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[VariationMeta]?'; this is an error in the Swift 6 language mode
 59 |     public let ranges: [BucketRange]?
 60 |     /// Meta info about the experiment variations
 61 |     public let meta: [VariationMeta]?
    |                `- warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[VariationMeta]?'; this is an error in the Swift 6 language mode
 62 |     /// Array of filters to apply to the rule
 63 |     public let filters: [Filter]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:114:15: note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
112 |
113 | /// Meta info about the variations
114 | public struct VariationMeta: Codable {
    |               `- note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
115 |     /// Used to implement holdout groups
116 |     let passthrough: Bool?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:63:16: warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Filter]?'; this is an error in the Swift 6 language mode
 61 |     public let meta: [VariationMeta]?
 62 |     /// Array of filters to apply to the rule
 63 |     public let filters: [Filter]?
    |                `- warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Filter]?'; this is an error in the Swift 6 language mode
 64 |     /// Seed to use for hashing
 65 |     public let seed: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:152:20: note: class 'Filter' does not conform to the 'Sendable' protocol
150 |
151 | /// Object used for mutual exclusion and filtering users out of experiments based on random hashes.
152 | @objc public class Filter: NSObject, Codable {
    |                    `- note: class 'Filter' does not conform to the 'Sendable' protocol
153 |     /// The attribute to use (default to `"id"`)
154 |     var attribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:71:16: warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Track]?'; this is an error in the Swift 6 language mode
 69 |     public let phase: String?
 70 |     /// Array of tracking calls to fire
 71 |     public let tracks: [Track]?
    |                `- warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Track]?'; this is an error in the Swift 6 language mode
 72 |
 73 |     init(id: String? = "", condition: Condition? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:129:15: note: consider making struct 'Track' conform to the 'Sendable' protocol
127 | }
128 |
129 | public struct Track: Codable {
    |               `- note: consider making struct 'Track' conform to the 'Sendable' protocol
130 |     public let experiment: Experiment?
131 |     public let result: ExperimentResult?
[24/40] Compiling GrowthBook Feature.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:4:20: warning: non-final class 'Feature' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
  2 |
  3 | /// A Feature object consists of possible values plus rules for how to assign values to users.
  4 | @objc public class Feature: NSObject, Codable, Sendable {
    |                    `- warning: non-final class 'Feature' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
  5 |     /// The default value (should use null if not specified)
  6 |     public let defaultValue: JSON?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:6:16: warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
  4 | @objc public class Feature: NSObject, Codable, Sendable {
  5 |     /// The default value (should use null if not specified)
  6 |     public let defaultValue: JSON?
    |                `- warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
  7 |     /// Array of Rule objects that determine when and how the defaultValue gets overridden
  8 |     public let rules: [FeatureRule]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:29:16: warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 27 |     public let id: String?
 28 |     /// Optional targeting condition
 29 |     public let condition: JSON?
    |                `- warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 30 |     /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
 31 |     public let parentConditions: [ParentConditionInterface]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:31:16: warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[ParentConditionInterface]?'; this is an error in the Swift 6 language mode
 29 |     public let condition: JSON?
 30 |     /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
 31 |     public let parentConditions: [ParentConditionInterface]?
    |                `- warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[ParentConditionInterface]?'; this is an error in the Swift 6 language mode
 32 |     /// What percent of users should be included in the experiment (between 0 and 1, inclusive)
 33 |     public let coverage: Float?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:19:15: note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
 17 | typealias Condition = JSON
 18 |
 19 | public struct ParentConditionInterface: Codable {
    |               `- note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
 20 |     public let id: String
 21 |     public let condition: JSON
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:35:16: warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 33 |     public let coverage: Float?
 34 |     /// Immediately force a specific value (ignore every other option besides condition and coverage)
 35 |     public let force: JSON?
    |                `- warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 36 |     /// Run an experiment (A/B test) and randomly choose between these variations
 37 |     public let variations: [JSON]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:37:16: warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 35 |     public let force: JSON?
 36 |     /// Run an experiment (A/B test) and randomly choose between these variations
 37 |     public let variations: [JSON]?
    |                `- warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 38 |     /// The globally unique tracking key for the experiment (default to the feature key)
 39 |     public let key: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:43:16: warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 41 |     public let weights: [Float]?
 42 |     /// A tuple that contains the namespace identifier, plus a range of coverage for the experiment.
 43 |     public let namespace: [JSON]?
    |                `- warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 44 |     /// What user attribute should be used to assign variations (defaults to id)
 45 |     public let hashAttribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:57:16: warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'BucketRange?'; this is an error in the Swift 6 language mode
 55 |     public let minBucketVersion: Int?
 56 |     /// A more precise version of `coverage`
 57 |     public let range: BucketRange?
    |                `- warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'BucketRange?'; this is an error in the Swift 6 language mode
 58 |     /// Ranges for experiment variations
 59 |     public let ranges: [BucketRange]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 46 |
 47 | /// Double Struct for GrowthBook Ranges
 48 | public struct BucketRange: Codable {
    |               `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 49 |     let number1: Float
 50 |     let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:59:16: warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[BucketRange]?'; this is an error in the Swift 6 language mode
 57 |     public let range: BucketRange?
 58 |     /// Ranges for experiment variations
 59 |     public let ranges: [BucketRange]?
    |                `- warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[BucketRange]?'; this is an error in the Swift 6 language mode
 60 |     /// Meta info about the experiment variations
 61 |     public let meta: [VariationMeta]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 46 |
 47 | /// Double Struct for GrowthBook Ranges
 48 | public struct BucketRange: Codable {
    |               `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 49 |     let number1: Float
 50 |     let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:61:16: warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[VariationMeta]?'; this is an error in the Swift 6 language mode
 59 |     public let ranges: [BucketRange]?
 60 |     /// Meta info about the experiment variations
 61 |     public let meta: [VariationMeta]?
    |                `- warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[VariationMeta]?'; this is an error in the Swift 6 language mode
 62 |     /// Array of filters to apply to the rule
 63 |     public let filters: [Filter]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:114:15: note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
112 |
113 | /// Meta info about the variations
114 | public struct VariationMeta: Codable {
    |               `- note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
115 |     /// Used to implement holdout groups
116 |     let passthrough: Bool?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:63:16: warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Filter]?'; this is an error in the Swift 6 language mode
 61 |     public let meta: [VariationMeta]?
 62 |     /// Array of filters to apply to the rule
 63 |     public let filters: [Filter]?
    |                `- warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Filter]?'; this is an error in the Swift 6 language mode
 64 |     /// Seed to use for hashing
 65 |     public let seed: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:152:20: note: class 'Filter' does not conform to the 'Sendable' protocol
150 |
151 | /// Object used for mutual exclusion and filtering users out of experiments based on random hashes.
152 | @objc public class Filter: NSObject, Codable {
    |                    `- note: class 'Filter' does not conform to the 'Sendable' protocol
153 |     /// The attribute to use (default to `"id"`)
154 |     var attribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:71:16: warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Track]?'; this is an error in the Swift 6 language mode
 69 |     public let phase: String?
 70 |     /// Array of tracking calls to fire
 71 |     public let tracks: [Track]?
    |                `- warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Track]?'; this is an error in the Swift 6 language mode
 72 |
 73 |     init(id: String? = "", condition: Condition? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:129:15: note: consider making struct 'Track' conform to the 'Sendable' protocol
127 | }
128 |
129 | public struct Track: Codable {
    |               `- note: consider making struct 'Track' conform to the 'Sendable' protocol
130 |     public let experiment: Experiment?
131 |     public let result: ExperimentResult?
[25/40] Compiling GrowthBook GlobalConfig.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:4:20: warning: non-final class 'Feature' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
  2 |
  3 | /// A Feature object consists of possible values plus rules for how to assign values to users.
  4 | @objc public class Feature: NSObject, Codable, Sendable {
    |                    `- warning: non-final class 'Feature' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
  5 |     /// The default value (should use null if not specified)
  6 |     public let defaultValue: JSON?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:6:16: warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
  4 | @objc public class Feature: NSObject, Codable, Sendable {
  5 |     /// The default value (should use null if not specified)
  6 |     public let defaultValue: JSON?
    |                `- warning: stored property 'defaultValue' of 'Sendable'-conforming class 'Feature' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
  7 |     /// Array of Rule objects that determine when and how the defaultValue gets overridden
  8 |     public let rules: [FeatureRule]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:29:16: warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 27 |     public let id: String?
 28 |     /// Optional targeting condition
 29 |     public let condition: JSON?
    |                `- warning: stored property 'condition' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 30 |     /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
 31 |     public let parentConditions: [ParentConditionInterface]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:31:16: warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[ParentConditionInterface]?'; this is an error in the Swift 6 language mode
 29 |     public let condition: JSON?
 30 |     /// Each item defines a prerequisite where a `condition` must evaluate against a parent feature's value (identified by `id`). If `gate` is true, then this is a blocking feature-level prerequisite; otherwise it applies to the current rule only.
 31 |     public let parentConditions: [ParentConditionInterface]?
    |                `- warning: stored property 'parentConditions' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[ParentConditionInterface]?'; this is an error in the Swift 6 language mode
 32 |     /// What percent of users should be included in the experiment (between 0 and 1, inclusive)
 33 |     public let coverage: Float?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:19:15: note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
 17 | typealias Condition = JSON
 18 |
 19 | public struct ParentConditionInterface: Codable {
    |               `- note: consider making struct 'ParentConditionInterface' conform to the 'Sendable' protocol
 20 |     public let id: String
 21 |     public let condition: JSON
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:35:16: warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 33 |     public let coverage: Float?
 34 |     /// Immediately force a specific value (ignore every other option besides condition and coverage)
 35 |     public let force: JSON?
    |                `- warning: stored property 'force' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'JSON?'; this is an error in the Swift 6 language mode
 36 |     /// Run an experiment (A/B test) and randomly choose between these variations
 37 |     public let variations: [JSON]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:37:16: warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 35 |     public let force: JSON?
 36 |     /// Run an experiment (A/B test) and randomly choose between these variations
 37 |     public let variations: [JSON]?
    |                `- warning: stored property 'variations' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 38 |     /// The globally unique tracking key for the experiment (default to the feature key)
 39 |     public let key: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:43:16: warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 41 |     public let weights: [Float]?
 42 |     /// A tuple that contains the namespace identifier, plus a range of coverage for the experiment.
 43 |     public let namespace: [JSON]?
    |                `- warning: stored property 'namespace' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[JSON]?'; this is an error in the Swift 6 language mode
 44 |     /// What user attribute should be used to assign variations (defaults to id)
 45 |     public let hashAttribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/JsonManager/JsonManager.swift:53:15: note: consider making struct 'JSON' conform to the 'Sendable' protocol
  51 | // MARK: - JSON Base
  52 |
  53 | public struct JSON {
     |               `- note: consider making struct 'JSON' conform to the 'Sendable' protocol
  54 |
  55 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:57:16: warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'BucketRange?'; this is an error in the Swift 6 language mode
 55 |     public let minBucketVersion: Int?
 56 |     /// A more precise version of `coverage`
 57 |     public let range: BucketRange?
    |                `- warning: stored property 'range' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type 'BucketRange?'; this is an error in the Swift 6 language mode
 58 |     /// Ranges for experiment variations
 59 |     public let ranges: [BucketRange]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 46 |
 47 | /// Double Struct for GrowthBook Ranges
 48 | public struct BucketRange: Codable {
    |               `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 49 |     let number1: Float
 50 |     let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:59:16: warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[BucketRange]?'; this is an error in the Swift 6 language mode
 57 |     public let range: BucketRange?
 58 |     /// Ranges for experiment variations
 59 |     public let ranges: [BucketRange]?
    |                `- warning: stored property 'ranges' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[BucketRange]?'; this is an error in the Swift 6 language mode
 60 |     /// Meta info about the experiment variations
 61 |     public let meta: [VariationMeta]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:48:15: note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 46 |
 47 | /// Double Struct for GrowthBook Ranges
 48 | public struct BucketRange: Codable {
    |               `- note: consider making struct 'BucketRange' conform to the 'Sendable' protocol
 49 |     let number1: Float
 50 |     let number2: Float
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:61:16: warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[VariationMeta]?'; this is an error in the Swift 6 language mode
 59 |     public let ranges: [BucketRange]?
 60 |     /// Meta info about the experiment variations
 61 |     public let meta: [VariationMeta]?
    |                `- warning: stored property 'meta' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[VariationMeta]?'; this is an error in the Swift 6 language mode
 62 |     /// Array of filters to apply to the rule
 63 |     public let filters: [Filter]?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:114:15: note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
112 |
113 | /// Meta info about the variations
114 | public struct VariationMeta: Codable {
    |               `- note: consider making struct 'VariationMeta' conform to the 'Sendable' protocol
115 |     /// Used to implement holdout groups
116 |     let passthrough: Bool?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:63:16: warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Filter]?'; this is an error in the Swift 6 language mode
 61 |     public let meta: [VariationMeta]?
 62 |     /// Array of filters to apply to the rule
 63 |     public let filters: [Filter]?
    |                `- warning: stored property 'filters' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Filter]?'; this is an error in the Swift 6 language mode
 64 |     /// Seed to use for hashing
 65 |     public let seed: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:152:20: note: class 'Filter' does not conform to the 'Sendable' protocol
150 |
151 | /// Object used for mutual exclusion and filtering users out of experiments based on random hashes.
152 | @objc public class Filter: NSObject, Codable {
    |                    `- note: class 'Filter' does not conform to the 'Sendable' protocol
153 |     /// The attribute to use (default to `"id"`)
154 |     var attribute: String?
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Model/Feature.swift:71:16: warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Track]?'; this is an error in the Swift 6 language mode
 69 |     public let phase: String?
 70 |     /// Array of tracking calls to fire
 71 |     public let tracks: [Track]?
    |                `- warning: stored property 'tracks' of 'Sendable'-conforming struct 'FeatureRule' has non-sendable type '[Track]?'; this is an error in the Swift 6 language mode
 72 |
 73 |     init(id: String? = "", condition: Condition? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/Utils/Constants.swift:129:15: note: consider making struct 'Track' conform to the 'Sendable' protocol
127 | }
128 |
129 | public struct Track: Codable {
    |               `- note: consider making struct 'Track' conform to the 'Sendable' protocol
130 |     public let experiment: Experiment?
131 |     public let result: ExperimentResult?
[26/40] Compiling GrowthBook CachingManager.swift
[27/40] Compiling GrowthBook ContextManager.swift
[28/40] Compiling GrowthBook ConditionEvaluator.swift
[29/40] Compiling GrowthBook ExperimentEvaluator.swift
[30/40] Compiling GrowthBook Constants.swift
[31/40] Compiling GrowthBook Crypto.swift
[32/40] Compiling GrowthBook DecryptionUtils.swift
[33/40] Compiling GrowthBook EventModel.swift
[34/40] Compiling GrowthBook LruETagCache.swift
[35/40] Compiling GrowthBook NetworkClient.swift
[36/40] Compiling GrowthBook NetworkRetryHandler.swift
[37/40] Compiling GrowthBook Formatter.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/LoggingManager/Theme.swift:56:17: warning: 'scanHexInt32' was deprecated in macOS 10.15
 54 |
 55 |         scanner.charactersToBeSkipped = CharacterSet(charactersIn: "#")
 56 |         scanner.scanHexInt32(&hex)
    |                 `- warning: 'scanHexInt32' was deprecated in macOS 10.15
 57 |
 58 |         let r = (hex & 0xFF0000) >> 16
[38/40] Compiling GrowthBook LoggingManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/LoggingManager/Theme.swift:56:17: warning: 'scanHexInt32' was deprecated in macOS 10.15
 54 |
 55 |         scanner.charactersToBeSkipped = CharacterSet(charactersIn: "#")
 56 |         scanner.scanHexInt32(&hex)
    |                 `- warning: 'scanHexInt32' was deprecated in macOS 10.15
 57 |
 58 |         let r = (hex & 0xFF0000) >> 16
[39/40] Compiling GrowthBook Theme.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/LoggingManager/Theme.swift:56:17: warning: 'scanHexInt32' was deprecated in macOS 10.15
 54 |
 55 |         scanner.charactersToBeSkipped = CharacterSet(charactersIn: "#")
 56 |         scanner.scanHexInt32(&hex)
    |                 `- warning: 'scanHexInt32' was deprecated in macOS 10.15
 57 |
 58 |         let r = (hex & 0xFF0000) >> 16
[40/40] Compiling GrowthBook Context.swift
/Users/admin/builder/spi-builder-workspace/Sources/CommonMain/LoggingManager/Theme.swift:56:17: warning: 'scanHexInt32' was deprecated in macOS 10.15
 54 |
 55 |         scanner.charactersToBeSkipped = CharacterSet(charactersIn: "#")
 56 |         scanner.scanHexInt32(&hex)
    |                 `- warning: 'scanHexInt32' was deprecated in macOS 10.15
 57 |
 58 |         let r = (hex & 0xFF0000) >> 16
Build complete! (6.50s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "GrowthBook-IOS",
  "name" : "GrowthBook-IOS",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "5.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "GrowthBook-IOS",
      "targets" : [
        "GrowthBook"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "GrowthBookTests",
      "module_type" : "SwiftTarget",
      "name" : "GrowthBookTests",
      "path" : "GrowthBookTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/GrowthBookTests/Source/json.json",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "BackgroundSyncTest.swift",
        "CachingManagerTest.swift",
        "ConditionTests.swift",
        "ContextManagerTests.swift",
        "CryptoTests.swift",
        "ExperimentRunTests.swift",
        "FeatureValueTests.swift",
        "FeaturesViewModelTests.swift",
        "GrowthBookSDKBuilderTests.swift",
        "LruETagCacheTests.swift",
        "MockNetworkClient.swift",
        "ModelTests.swift",
        "StickyBucketingTests.swift",
        "TestHelper.swift",
        "UtilsTests.swift"
      ],
      "target_dependencies" : [
        "GrowthBook"
      ],
      "type" : "test"
    },
    {
      "c99name" : "GrowthBook",
      "module_type" : "SwiftTarget",
      "name" : "GrowthBook",
      "path" : "Sources/CommonMain",
      "product_memberships" : [
        "GrowthBook-IOS"
      ],
      "sources" : [
        "Caching/CachingManager.swift",
        "ContextManager.swift",
        "Evaluators/ConditionEvaluator.swift",
        "Evaluators/ExperimentEvaluator.swift",
        "Evaluators/ExperimentHelper.swift",
        "Evaluators/FeatureEvaluator.swift",
        "Features/FeaturesDataModel.swift",
        "Features/FeaturesDataSource.swift",
        "Features/FeaturesViewModel.swift",
        "GrowthBookModel.swift",
        "GrowthBookSDK.swift",
        "JsonManager/JsonManager.swift",
        "LoggingManager/Formatter.swift",
        "LoggingManager/LoggingManager.swift",
        "LoggingManager/Theme.swift",
        "Model/Context.swift",
        "Model/EvaluationData.swift",
        "Model/Experiment.swift",
        "Model/Feature.swift",
        "Model/GlobalConfig.swift",
        "Model/GlobalContext.swift",
        "Model/RemoteEvalModel.swift",
        "Model/StickyAssignmentsDocument.swift",
        "Network/EventHandler.swift",
        "Network/EventModel.swift",
        "Network/LruETagCache.swift",
        "Network/NetworkClient.swift",
        "Network/NetworkRetryHandler.swift",
        "Network/SSEHandler.swift",
        "StickyBucket/StickyBucketService.swift",
        "Utils/Common.swift",
        "Utils/Constants.swift",
        "Utils/Crypto.swift",
        "Utils/DecryptionUtils.swift",
        "Utils/Extensions.swift",
        "Utils/Logger.swift",
        "Utils/Utils.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.