The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of ConfigCat, reference master (757182), with Swift 5.9 for macOS (SPM) on 22 Apr 2025 09:49:24 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.60.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/configcat/swift-sdk.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/configcat/swift-sdk
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 757182b Remove keepalive workflow (#48)
Cloned https://github.com/configcat/swift-sdk.git
Revision (git rev-parse @):
757182b68514389c95a2c6706a264e4728c5da8d
SUCCESS checkout https://github.com/configcat/swift-sdk.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             5.9
Building package at path:  $PWD
https://github.com/configcat/swift-sdk.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.2.0.app xcrun swift build --arch arm64
Building for debugging...
[0/1] Copying PrivacyInfo.xcprivacy
[2/3] Emitting module Version
[3/3] Compiling Version Version.swift
[4/28] Emitting module ConfigCat
[5/30] Compiling ConfigCat Utils.swift
[6/30] Compiling ConfigCat resource_bundle_accessor.swift
[7/30] Compiling ConfigCat FlagEvaluator.swift
[8/30] Compiling ConfigCat KeyValue.swift
[9/30] Compiling ConfigCat LocalDictionaryDataSource.swift
[10/30] Compiling ConfigCat ConfigCatUser.swift
[11/30] Compiling ConfigCat ConfigFetcher.swift
[12/30] Compiling ConfigCat ConfigService.swift
[13/30] Compiling ConfigCat PollingMode.swift
[14/30] Compiling ConfigCat PollingModes.swift
[15/30] Compiling ConfigCat Log.swift
[16/30] Compiling ConfigCat MutableQueue.swift
[17/30] Compiling ConfigCat Mutex.swift
[18/30] Compiling ConfigCat EvaluationDetails.swift
[19/30] Compiling ConfigCat EvaluationLogger.swift
[20/30] Compiling ConfigCat Extensions.swift
[21/30] Compiling ConfigCat OverrideBehaviour.swift
[22/30] Compiling ConfigCat OverrideDataSource.swift
[23/30] Compiling ConfigCat ConfigCatClientProtocol.swift
[24/30] Compiling ConfigCat ConfigCatOptions.swift
[25/30] Compiling ConfigCat ConfigCatSnapshot.swift
[26/30] Compiling ConfigCat RolloutEvaluator.swift
[27/30] Compiling ConfigCat Synced.swift
[28/30] Compiling ConfigCat Config.swift
[29/30] Compiling ConfigCat ConfigCache.swift
[30/30] Compiling ConfigCat ConfigCatClient.swift
Build complete! (7.20s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "ConfigCat",
  "name" : "ConfigCat",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "4.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    }
  ],
  "products" : [
    {
      "name" : "ConfigCat",
      "targets" : [
        "ConfigCat"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "Version",
      "module_type" : "SwiftTarget",
      "name" : "Version",
      "path" : "Sources/Version",
      "product_memberships" : [
        "ConfigCat"
      ],
      "sources" : [
        "Version.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ConfigCatTests",
      "module_type" : "SwiftTarget",
      "name" : "ConfigCatTests",
      "path" : "Tests/ConfigCatTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_semantic_2.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/comparators/allinone.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_user_id/options_user_attribute_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/list_truncation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_no_user_needed_by_both.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/off_flag.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/comparison_attribute_conversion.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_prerequisite_flag.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_user_id/options_user_attribute_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_user_multi_conditions.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_no_user_needed_by_prereq.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/test_override_flagdependency_v6.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/and_rules/and_rules_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_no_user_needed_by_dep.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_user_id.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_variationId.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/epoch_date_validation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr/options_custom_attribute_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_matching_targeted_attribute_no_options_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/comparators.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag_multilevel.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/semver_validation/semver_relations_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr/matching_options_custom_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/comparison_attribute_trimming.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/test_circulardependency_v6.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/1_targeting_rule/1_rule_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/number_validation/number_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_semantic.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_matching.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment/segment_matching.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_comparators_v6.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/int_setting.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_and_or.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/prerequisite_flag/prerequisite_flag.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_number.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/epoch_date_validation/date_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_segments_old.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/and_rules.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/on_flag.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/json/comparison_value_trimming.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_unicode.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/_overrides/test_list_truncation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/segment.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/text_setting.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_segments.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/semver_validation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_based_on_custom_attr/no_options_custom_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/list_truncation/list_truncation.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_matching_targeted_attribute_options_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_after_targeting_rule/options_after_targeting_rule_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/number_validation.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/testmatrix_sensitive.csv",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/options_within_targeting_rule/options_within_targeting_rule_no_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value/double_setting.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/simple_value.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/2_targeting_rules/2_rules_not_matching_targeted_attribute.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/semver_validation/semver_error.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/ConfigCatTests/Resources/evaluationlog/and_rules/and_rules_no_user.txt",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "AsyncAwaitTests.swift",
        "AutoPollingTests.swift",
        "CacheTest.swift",
        "ConfigCatClientIntegrationTests.swift",
        "ConfigCatClientTests.swift",
        "ConfigFetcherTests.swift",
        "DataGovernanceTests.swift",
        "EvaluationDetailsExtensionTests.swift",
        "EvaluationLogTests.swift",
        "EvaluationTests.swift",
        "Helpers.swift",
        "LazyLoadingTests.swift",
        "LocalTests.swift",
        "ManualPollingTests.swift",
        "Mock.swift",
        "RolloutIntegrationV1Tests.swift",
        "RolloutIntegrationV2Tests.swift",
        "SnapshotTests.swift",
        "VariationIdTests.swift"
      ],
      "target_dependencies" : [
        "ConfigCat"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ConfigCat",
      "module_type" : "SwiftTarget",
      "name" : "ConfigCat",
      "path" : "Sources/ConfigCat",
      "product_memberships" : [
        "ConfigCat"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ConfigCat/Resources/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Config.swift",
        "ConfigCache.swift",
        "ConfigCatClient.swift",
        "ConfigCatClientProtocol.swift",
        "ConfigCatOptions.swift",
        "ConfigCatSnapshot.swift",
        "ConfigCatUser.swift",
        "ConfigFetcher.swift",
        "ConfigService.swift",
        "EvaluationDetails.swift",
        "EvaluationLogger.swift",
        "Extensions.swift",
        "FlagEvaluator.swift",
        "KeyValue.swift",
        "LocalDictionaryDataSource.swift",
        "Log.swift",
        "MutableQueue.swift",
        "Mutex.swift",
        "OverrideBehaviour.swift",
        "OverrideDataSource.swift",
        "PollingMode.swift",
        "PollingModes.swift",
        "RolloutEvaluator.swift",
        "Synced.swift",
        "Utils.swift"
      ],
      "target_dependencies" : [
        "Version"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.