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 MetricsReporter, reference master (e307fa), with Swift 6.0 for macOS (SPM) on 3 Dec 2024 05:28:53 UTC.

Swift 6 data race errors: 1

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.58.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/rudderlabs/metrics-reporter-ios.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/rudderlabs/metrics-reporter-ios
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at e307fa3 Merge pull request #48 from rudderlabs/release/2.0.0
Cloned https://github.com/rudderlabs/metrics-reporter-ios.git
Revision (git rev-parse @):
e307fa37c6c2d2cccf787d73b5b4b5bc3f650435
SUCCESS checkout https://github.com/rudderlabs/metrics-reporter-ios.git at master
Fetching https://github.com/rudderlabs/rudder-ios-kit
Fetching https://github.com/rudderlabs/crash-reporter-ios
[1/248] Fetching rudder-ios-kit
[150/33370] Fetching rudder-ios-kit, crash-reporter-ios
Fetched https://github.com/rudderlabs/rudder-ios-kit from cache (1.80s)
Fetched https://github.com/rudderlabs/crash-reporter-ios from cache (1.80s)
Computing version for https://github.com/rudderlabs/crash-reporter-ios
Computed https://github.com/rudderlabs/crash-reporter-ios at 1.0.1 (0.52s)
Computing version for https://github.com/rudderlabs/rudder-ios-kit
Computed https://github.com/rudderlabs/rudder-ios-kit at 1.4.0 (0.50s)
Creating working copy for https://github.com/rudderlabs/rudder-ios-kit
Working copy of https://github.com/rudderlabs/rudder-ios-kit resolved at 1.4.0
Creating working copy for https://github.com/rudderlabs/crash-reporter-ios
Working copy of https://github.com/rudderlabs/crash-reporter-ios resolved at 1.0.1
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "metrics-reporter-ios",
      "name": "MetricsReporter",
      "url": "https://github.com/rudderlabs/metrics-reporter-ios.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/metrics-reporter-ios",
      "dependencies": [
        {
          "identity": "rudder-ios-kit",
          "name": "RudderKit",
          "url": "https://github.com/rudderlabs/rudder-ios-kit",
          "version": "1.4.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/rudder-ios-kit",
          "dependencies": [
          ]
        },
        {
          "identity": "crash-reporter-ios",
          "name": "RSCrashReporter",
          "url": "https://github.com/rudderlabs/crash-reporter-ios",
          "version": "1.0.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/crash-reporter-ios",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/rudderlabs/metrics-reporter-ios.git
[1/1984] Fetching metrics-reporter-ios
Fetched https://github.com/rudderlabs/metrics-reporter-ios.git from cache (1.10s)
Fetching https://github.com/rudderlabs/rudder-ios-kit from cache
Fetching https://github.com/rudderlabs/crash-reporter-ios from cache
Fetched https://github.com/rudderlabs/rudder-ios-kit from cache (0.47s)
Fetched https://github.com/rudderlabs/crash-reporter-ios from cache (0.47s)
Computing version for https://github.com/rudderlabs/crash-reporter-ios
Computed https://github.com/rudderlabs/crash-reporter-ios at 1.0.1 (0.02s)
Computing version for https://github.com/rudderlabs/rudder-ios-kit
Computed https://github.com/rudderlabs/rudder-ios-kit at 1.4.0 (0.02s)
Creating working copy for https://github.com/rudderlabs/crash-reporter-ios
Working copy of https://github.com/rudderlabs/crash-reporter-ios resolved at 1.0.1
Creating working copy for https://github.com/rudderlabs/metrics-reporter-ios.git
Working copy of https://github.com/rudderlabs/metrics-reporter-ios.git resolved at master (e307fa3)
Creating working copy for https://github.com/rudderlabs/rudder-ios-kit
Working copy of https://github.com/rudderlabs/rudder-ios-kit resolved at 1.4.0
warning: '.resolve-product-dependencies': dependency 'metrics-reporter-ios' is not used by any target
Found 2 product dependencies
  - RudderKit
  - RSCrashReporter
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/rudderlabs/metrics-reporter-ios.git
{
  "dependencies" : [
    {
      "identity" : "rudder-ios-kit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.4.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/rudderlabs/rudder-ios-kit"
    },
    {
      "identity" : "crash-reporter-ios",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/rudderlabs/crash-reporter-ios"
    }
  ],
  "manifest_display_name" : "MetricsReporter",
  "name" : "MetricsReporter",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "watchos",
      "version" : "7.0"
    }
  ],
  "products" : [
    {
      "name" : "MetricsReporter",
      "targets" : [
        "MetricsReporter"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MetricsReporterTests",
      "module_type" : "SwiftTarget",
      "name" : "MetricsReporterTests",
      "path" : "MetricsReporterTests",
      "product_dependencies" : [
        "RudderKit",
        "RSCrashReporter"
      ],
      "sources" : [
        "CrashReporterTests.swift",
        "DatabaseTests.swift",
        "ErrorOperatorTests.swift",
        "Helpers/JSON.swift",
        "Helpers/MockURLProtocol.swift",
        "Helpers/Utilities.swift",
        "LabelOperatorTests.swift",
        "MetricOperatorTests.swift",
        "MetricsClientTests.swift",
        "MetricsUploaderTests.swift",
        "ModelTests.swift",
        "ObjCTests.swift",
        "ServiceManagerTests.swift",
        "VendorTests.swift"
      ],
      "target_dependencies" : [
        "MetricsReporter"
      ],
      "type" : "test"
    },
    {
      "c99name" : "MetricsReporter",
      "module_type" : "SwiftTarget",
      "name" : "MetricsReporter",
      "path" : "Sources",
      "product_dependencies" : [
        "RudderKit",
        "RSCrashReporter"
      ],
      "product_memberships" : [
        "MetricsReporter"
      ],
      "sources" : [
        "Classes/Constants.swift",
        "Classes/Controller.swift",
        "Classes/Database/Database.swift",
        "Classes/Database/ErrorOperator.swift",
        "Classes/Database/LabelOperator.swift",
        "Classes/Database/MetricOperator.swift",
        "Classes/Helpers/Vendors/Vendor.swift",
        "Classes/MetricsClient.swift",
        "Classes/Models/Configuration.swift",
        "Classes/Models/Metric.swift",
        "Classes/Models/StatsCollection.swift",
        "Classes/Networking/APIClient/API.swift",
        "Classes/Networking/APIClient/ServiceManager.swift",
        "Classes/Networking/ServiceType.swift",
        "Classes/ObjC/ObjCConfiguration.swift",
        "Classes/ObjC/ObjCMetric.swift",
        "Classes/ObjC/ObjCMetricsClient.swift",
        "Classes/Plugins.swift",
        "Classes/Plugins/CrashReporter.swift",
        "Classes/Plugins/MetricsUploader.swift",
        "Classes/Startup.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/83] Write sources
[1/83] Write swift-version--7754E27361AE5C74.txt
[2/83] Compiling RSC_KSMach_Arm.c
[3/88] Compiling RSC_KSJSONCodec.c
[4/88] Compiling RSC_KSMach_Arm64.c
[5/88] Compiling RSC_KSLogger.c
[6/88] Compiling RSC_KSMach.c
[7/88] Compiling RSC_KSMachHeaders.c
[8/88] Compiling RSCrashReporter RSCrashReporterLastRunInfo.m
[9/88] Compiling RSCrashReporter RSCrashReporterFeatureFlag.m
[10/88] Compiling RSCrashReporter RSCCrashSentry.m
[11/88] Compiling RSCrashReporter RSCrashReporter.m
[12/88] Compiling RSCrashReporterUser.m
[13/88] Compiling RSCFileLocations.m
[14/88] Compiling RSCrashReporterStacktrace.m
[15/88] Compiling RSCrashReporterThread.m
[16/88] Compiling RSCStorageMigratorV0V1.m
[17/88] Compiling RSCrashReporterNotifier.m
[18/88] Compiling RSCrashReporterStackframe.m
[19/88] Compiling RSCrashReporterSession.m
[19/88] Compiling RSCrashReporterHandledState.m
[21/88] Compiling RSCrashReporterError.m
[22/88] Compiling RSCrashReporterDeviceWithState.m
[23/88] Compiling RSCrashReporterDevice.m
[24/88] Compiling RSCrashReporterEvent.m
[25/88] Compiling RSCrashReporterBreadcrumb.m
[26/88] Compiling RSCrashReporterApp.m
[27/88] Compiling RSCrashReporterAppWithState.m
[28/88] Compiling RSC_KSString.c
[29/88] Compiling RSC_Symbolicate.c
[30/88] Compiling RSC_KSSysCtl.c
[31/88] Compiling RSC_KSSignalInfo.c
[32/88] Compiling RSC_KSMach_x86_32.c
[33/88] Compiling RSC_KSMach_x86_64.c
[34/88] Compiling RSCrashReporterMetadata.m
[35/88] Compiling RSC_KSCrashStringConversion.c
[36/88] Compiling RSC_KSFileUtils.c
[37/88] Compiling RSC_KSBacktrace.c
[38/88] Compiling RSC_KSFile.c
[39/88] Compiling RSC_KSCrashSentry_NSException.m
[40/88] Compiling RSC_KSCrashSentry_Signal.c
[41/88] Compiling RSC_KSCrashSentry.c
[42/88] Compiling RSC_KSCrashSentry_MachException.c
[43/88] Compiling RSC_KSCrashState.m
[44/88] Compiling RSC_KSCrashReport.c
[45/88] Compiling RSC_KSCrashNames.c
[46/88] Compiling RSC_KSSystemInfo.m
[47/88] Compiling RSC_KSCrashIdentifier.m
[48/88] Compiling RSC_KSCrashC.c
[49/88] Compiling RSC_KSCrashDoctor.m
[50/88] Compiling RSCrashReporterCollections.m
[51/88] Compiling RSC_RFC3339DateTool.m
[52/88] Compiling RSCUtils.m
[53/88] Compiling RSCTelemetry.m
[54/88] Compiling RSCSerialization.m
[55/88] Compiling RSCJSONSerialization.m
[56/88] Compiling RSCGlobals.m
[57/88] Compiling RSCInternalErrorReporter.m
[58/88] Compiling RSCFeatureFlagStore.m
[59/88] Compiling RSCAppHangDetector.m
[60/88] Compiling MRCCanary.m
[61/88] Compiling RSCrashReporterApiClient.m
[62/88] Compiling RSCSessionUploader.m
[63/88] Compiling RSCEventUploader.m
[64/88] Compiling RSC_KSCrashSentry_CPPException.mm
[65/88] Compiling RSCEventUploadOperation.m
[66/88] Compiling RSCEventUploadObjectOperation.m
[67/88] Compiling RSCEventUploadKSCrashReportOperation.m
[68/88] Compiling RSCrashReporterErrorTypes.m
[69/88] Compiling RSCrashReporterEndpointConfiguration.m
[70/88] Compiling RSCEventUploadFileOperation.m
[71/88] Compiling RSCrashReporterConfiguration.m
[72/88] Compiling RSCConfigurationBuilder.m
[73/88] Compiling RSCConnectivity.m
[74/88] Write sources
[75/88] Compiling RSCrashReporterBreadcrumbs.m
[76/88] Compiling RSCNetworkBreadcrumb.m
[77/88] Compiling RSCrashReporter RSCrashReporterSystemState.m
[78/88] Compiling RSCRunContext.m
[79/88] Compiling RSCrashReporterClient.m
[80/88] Compiling RSCrashReporter RSCrashReporterSessionTracker.m
[81/88] Compiling RSC_KSCrash.m
[82/88] Compiling RSCNotificationBreadcrumbs.m
[84/88] Compiling RudderKit Logger.swift
[85/88] Compiling RudderKit Data+Ext.swift
[86/88] Compiling RudderKit JSON.swift
[87/88] Compiling RudderKit RepeatingTimer.swift
[88/88] Emitting module RudderKit
[89/108] Compiling MetricsReporter Plugins.swift
[90/108] Compiling MetricsReporter CrashReporter.swift
[91/108] Compiling MetricsReporter Metric.swift
[92/108] Compiling MetricsReporter StatsCollection.swift
[93/108] Compiling MetricsReporter ObjCMetric.swift
[94/108] Compiling MetricsReporter ObjCMetricsClient.swift
[95/108] Compiling MetricsReporter MetricsClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/MetricsClient.swift:22:16: warning: reference to class property 'logLevel' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
20 |     public init(configuration: Configuration) {
21 |         self.configuration = configuration
22 |         Logger.logLevel = configuration.logLevel
   |                `- warning: reference to class property 'logLevel' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
23 |         database = Database(database: Database.openDatabase())
24 |         platformStartup()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/rudder-ios-kit/Sources/Classes/Logger.swift:38:23: note: class property declared here
36 |
37 | public class Logger {
38 |     public static var logLevel: LogLevel = .error
   |                       `- note: class property declared here
39 |
40 |     public static func logDebug(_ message: String, function: String? = #function, line: Int? = #line) {
[96/108] Compiling MetricsReporter Configuration.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/MetricsClient.swift:22:16: warning: reference to class property 'logLevel' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
20 |     public init(configuration: Configuration) {
21 |         self.configuration = configuration
22 |         Logger.logLevel = configuration.logLevel
   |                `- warning: reference to class property 'logLevel' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
23 |         database = Database(database: Database.openDatabase())
24 |         platformStartup()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/rudder-ios-kit/Sources/Classes/Logger.swift:38:23: note: class property declared here
36 |
37 | public class Logger {
38 |     public static var logLevel: LogLevel = .error
   |                       `- note: class property declared here
39 |
40 |     public static func logDebug(_ message: String, function: String? = #function, line: Int? = #line) {
[97/108] Compiling MetricsReporter ServiceType.swift
[98/108] Compiling MetricsReporter ObjCConfiguration.swift
[99/108] Compiling MetricsReporter API.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:10:1: warning: @frozen has no effect on non-public enums
 8 | import Foundation
 9 |
10 | @frozen enum API {
   | `- warning: @frozen has no effect on non-public enums
11 |     case sdkMetrics(params: String)
12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:14:1: warning: @frozen has no effect on non-public enums
12 | }
13 |
14 | @frozen enum APIClientStatus {
   | `- warning: @frozen has no effect on non-public enums
15 |     case success
16 |     case failure
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/ServiceManager.swift:55:17: warning: capture of 'completion' with non-sendable type 'Handler<T>' (aka '(HandlerResult<T, NSError>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
 53 |         let dataTask = urlSession.dataTask(with: request, completionHandler: { (data, response, error) in
 54 |             if error != nil {
 55 |                 completion(.failure(NSError(code: .SERVER_ERROR)))
    |                 |- warning: capture of 'completion' with non-sendable type 'Handler<T>' (aka '(HandlerResult<T, NSError>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 56 |                 return
 57 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/ServiceManager.swift:68:37: warning: capture of 'self' with non-sendable type 'ServiceManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 23 | }
 24 |
 25 | struct ServiceManager: ServiceType {
    |        `- note: consider making struct 'ServiceManager' conform to the 'Sendable' protocol
 26 |     private let urlSession: URLSession
 27 |     private let configuration: Configuration
    :
 66 |                     }
 67 |                 default:
 68 |                     let errorCode = handleCustomError(data: data ?? Data())
    |                                     `- warning: capture of 'self' with non-sendable type 'ServiceManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 69 |                     completion(.failure(NSError(code: errorCode)))
 70 |                 }
[100/108] Compiling MetricsReporter ServiceManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:10:1: warning: @frozen has no effect on non-public enums
 8 | import Foundation
 9 |
10 | @frozen enum API {
   | `- warning: @frozen has no effect on non-public enums
11 |     case sdkMetrics(params: String)
12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:14:1: warning: @frozen has no effect on non-public enums
12 | }
13 |
14 | @frozen enum APIClientStatus {
   | `- warning: @frozen has no effect on non-public enums
15 |     case success
16 |     case failure
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/ServiceManager.swift:55:17: warning: capture of 'completion' with non-sendable type 'Handler<T>' (aka '(HandlerResult<T, NSError>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
 53 |         let dataTask = urlSession.dataTask(with: request, completionHandler: { (data, response, error) in
 54 |             if error != nil {
 55 |                 completion(.failure(NSError(code: .SERVER_ERROR)))
    |                 |- warning: capture of 'completion' with non-sendable type 'Handler<T>' (aka '(HandlerResult<T, NSError>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 56 |                 return
 57 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/ServiceManager.swift:68:37: warning: capture of 'self' with non-sendable type 'ServiceManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 23 | }
 24 |
 25 | struct ServiceManager: ServiceType {
    |        `- note: consider making struct 'ServiceManager' conform to the 'Sendable' protocol
 26 |     private let urlSession: URLSession
 27 |     private let configuration: Configuration
    :
 66 |                     }
 67 |                 default:
 68 |                     let errorCode = handleCustomError(data: data ?? Data())
    |                                     `- warning: capture of 'self' with non-sendable type 'ServiceManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 69 |                     completion(.failure(NSError(code: errorCode)))
 70 |                 }
[101/110] Compiling MetricsReporter MetricOperator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Helpers/Vendors/Vendor.swift:48:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |     }
47 |
48 |     static var current: Vendor = {
   |                |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |             #if os(iOS) || os(tvOS)
50 |             return PhoneVendor()
[102/110] Compiling MetricsReporter Vendor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Helpers/Vendors/Vendor.swift:48:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |     }
47 |
48 |     static var current: Vendor = {
   |                |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |             #if os(iOS) || os(tvOS)
50 |             return PhoneVendor()
[103/110] Emitting module MetricsReporter
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Helpers/Vendors/Vendor.swift:48:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |     }
47 |
48 |     static var current: Vendor = {
   |                |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |             #if os(iOS) || os(tvOS)
50 |             return PhoneVendor()
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:10:1: warning: @frozen has no effect on non-public enums
 8 | import Foundation
 9 |
10 | @frozen enum API {
   | `- warning: @frozen has no effect on non-public enums
11 |     case sdkMetrics(params: String)
12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:14:1: warning: @frozen has no effect on non-public enums
12 | }
13 |
14 | @frozen enum APIClientStatus {
   | `- warning: @frozen has no effect on non-public enums
15 |     case success
16 |     case failure
[104/110] Compiling MetricsReporter ErrorOperator.swift
[105/110] Compiling MetricsReporter LabelOperator.swift
[106/110] Compiling MetricsReporter Constants.swift
[107/110] Compiling MetricsReporter Controller.swift
[108/110] Compiling MetricsReporter Database.swift
[109/110] Compiling MetricsReporter MetricsUploader.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:50:34: warning: capture of 'database' with non-sendable type 'any DatabaseOperations' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 48 |             guard let self = self else { return }
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
    |                                  `- warning: capture of 'database' with non-sendable type 'any DatabaseOperations' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
 52 |                     self.flushTimer?.suspend()
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Database/Database.swift:64:10: note: protocol 'DatabaseOperations' does not conform to the 'Sendable' protocol
 62 | }
 63 |
 64 | protocol DatabaseOperations {
    |          `- note: protocol 'DatabaseOperations' does not conform to the 'Sendable' protocol
 65 |     @discardableResult func saveMetric<M: Metric>(_ metric: M) -> MetricEntity?
 66 |     func fetchMetrics(from valueFrom: Int, to valueTo: Int) -> MetricList
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:35: warning: capture of 'configuration' with non-sendable type 'Configuration' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                   `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Models/Configuration.swift:11:15: note: consider making struct 'Configuration' conform to the 'Sendable' protocol
 9 | import RudderKit
10 |
11 | public struct Configuration {
   |               `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
12 |     let logLevel: LogLevel
13 |     let writeKey: String
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:52:21: warning: capture of 'self' with non-sendable type 'MetricsUploader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 10 |
 11 |
 12 | class MetricsUploader: Plugin {
    |       `- note: class 'MetricsUploader' does not conform to the 'Sendable' protocol
 13 |     weak var metricsClient: MetricsClient? {
 14 |         didSet {
    :
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
 52 |                     self.flushTimer?.suspend()
    |                     `- warning: capture of 'self' with non-sendable type 'MetricsUploader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:85: warning: implicit capture of 'configuration' requires that 'Configuration' conforms to `Sendable`; this is an error in the Swift 6 language mode
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                                                                     `- warning: implicit capture of 'configuration' requires that 'Configuration' conforms to `Sendable`; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Models/Configuration.swift:11:15: note: consider making struct 'Configuration' conform to the 'Sendable' protocol
 9 | import RudderKit
10 |
11 | public struct Configuration {
   |               `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
12 |     let logLevel: LogLevel
13 |     let writeKey: String
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:71: warning: reference to captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                                                       `- warning: reference to captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:55:25: warning: capture of 'self' with non-sendable type 'MetricsUploader' in an isolated closure; this is an error in the Swift 6 language mode
 10 |
 11 |
 12 | class MetricsUploader: Plugin {
    |       `- note: class 'MetricsUploader' does not conform to the 'Sendable' protocol
 13 |     weak var metricsClient: MetricsClient? {
 14 |         didSet {
    :
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
 55 |                         self.flushTimer?.resume()
    |                         `- warning: capture of 'self' with non-sendable type 'MetricsUploader' in an isolated closure; this is an error in the Swift 6 language mode
 56 |                     }
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:54:25: warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
    |                         `- warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 55 |                         self.flushTimer?.resume()
 56 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:58:21: warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 56 |                     }
 57 |                 } else {
 58 |                     sleepCount += 1
    |                     `- warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 59 |                 }
 60 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Helpers/Vendors/Vendor.swift:48:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |     }
47 |
48 |     static var current: Vendor = {
   |                |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |             #if os(iOS) || os(tvOS)
50 |             return PhoneVendor()
[110/110] Compiling MetricsReporter Startup.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:50:34: warning: capture of 'database' with non-sendable type 'any DatabaseOperations' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 48 |             guard let self = self else { return }
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
    |                                  `- warning: capture of 'database' with non-sendable type 'any DatabaseOperations' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
 52 |                     self.flushTimer?.suspend()
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Database/Database.swift:64:10: note: protocol 'DatabaseOperations' does not conform to the 'Sendable' protocol
 62 | }
 63 |
 64 | protocol DatabaseOperations {
    |          `- note: protocol 'DatabaseOperations' does not conform to the 'Sendable' protocol
 65 |     @discardableResult func saveMetric<M: Metric>(_ metric: M) -> MetricEntity?
 66 |     func fetchMetrics(from valueFrom: Int, to valueTo: Int) -> MetricList
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:35: warning: capture of 'configuration' with non-sendable type 'Configuration' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                   `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Models/Configuration.swift:11:15: note: consider making struct 'Configuration' conform to the 'Sendable' protocol
 9 | import RudderKit
10 |
11 | public struct Configuration {
   |               `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
12 |     let logLevel: LogLevel
13 |     let writeKey: String
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:52:21: warning: capture of 'self' with non-sendable type 'MetricsUploader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 10 |
 11 |
 12 | class MetricsUploader: Plugin {
    |       `- note: class 'MetricsUploader' does not conform to the 'Sendable' protocol
 13 |     weak var metricsClient: MetricsClient? {
 14 |         didSet {
    :
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
 52 |                     self.flushTimer?.suspend()
    |                     `- warning: capture of 'self' with non-sendable type 'MetricsUploader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:85: warning: implicit capture of 'configuration' requires that 'Configuration' conforms to `Sendable`; this is an error in the Swift 6 language mode
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                                                                     `- warning: implicit capture of 'configuration' requires that 'Configuration' conforms to `Sendable`; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Models/Configuration.swift:11:15: note: consider making struct 'Configuration' conform to the 'Sendable' protocol
 9 | import RudderKit
10 |
11 | public struct Configuration {
   |               `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
12 |     let logLevel: LogLevel
13 |     let writeKey: String
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:71: warning: reference to captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                                                       `- warning: reference to captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:55:25: warning: capture of 'self' with non-sendable type 'MetricsUploader' in an isolated closure; this is an error in the Swift 6 language mode
 10 |
 11 |
 12 | class MetricsUploader: Plugin {
    |       `- note: class 'MetricsUploader' does not conform to the 'Sendable' protocol
 13 |     weak var metricsClient: MetricsClient? {
 14 |         didSet {
    :
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
 55 |                         self.flushTimer?.resume()
    |                         `- warning: capture of 'self' with non-sendable type 'MetricsUploader' in an isolated closure; this is an error in the Swift 6 language mode
 56 |                     }
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:54:25: warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
    |                         `- warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 55 |                         self.flushTimer?.resume()
 56 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:58:21: warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 56 |                     }
 57 |                 } else {
 58 |                     sleepCount += 1
    |                     `- warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 59 |                 }
 60 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Helpers/Vendors/Vendor.swift:48:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |     }
47 |
48 |     static var current: Vendor = {
   |                |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |             #if os(iOS) || os(tvOS)
50 |             return PhoneVendor()
Build complete! (9.55s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "rudder-ios-kit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.4.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/rudderlabs/rudder-ios-kit"
    },
    {
      "identity" : "crash-reporter-ios",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/rudderlabs/crash-reporter-ios"
    }
  ],
  "manifest_display_name" : "MetricsReporter",
  "name" : "MetricsReporter",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "watchos",
      "version" : "7.0"
    }
  ],
  "products" : [
    {
      "name" : "MetricsReporter",
      "targets" : [
        "MetricsReporter"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MetricsReporterTests",
      "module_type" : "SwiftTarget",
      "name" : "MetricsReporterTests",
      "path" : "MetricsReporterTests",
      "product_dependencies" : [
        "RudderKit",
        "RSCrashReporter"
      ],
      "sources" : [
        "CrashReporterTests.swift",
        "DatabaseTests.swift",
        "ErrorOperatorTests.swift",
        "Helpers/JSON.swift",
        "Helpers/MockURLProtocol.swift",
        "Helpers/Utilities.swift",
        "LabelOperatorTests.swift",
        "MetricOperatorTests.swift",
        "MetricsClientTests.swift",
        "MetricsUploaderTests.swift",
        "ModelTests.swift",
        "ObjCTests.swift",
        "ServiceManagerTests.swift",
        "VendorTests.swift"
      ],
      "target_dependencies" : [
        "MetricsReporter"
      ],
      "type" : "test"
    },
    {
      "c99name" : "MetricsReporter",
      "module_type" : "SwiftTarget",
      "name" : "MetricsReporter",
      "path" : "Sources",
      "product_dependencies" : [
        "RudderKit",
        "RSCrashReporter"
      ],
      "product_memberships" : [
        "MetricsReporter"
      ],
      "sources" : [
        "Classes/Constants.swift",
        "Classes/Controller.swift",
        "Classes/Database/Database.swift",
        "Classes/Database/ErrorOperator.swift",
        "Classes/Database/LabelOperator.swift",
        "Classes/Database/MetricOperator.swift",
        "Classes/Helpers/Vendors/Vendor.swift",
        "Classes/MetricsClient.swift",
        "Classes/Models/Configuration.swift",
        "Classes/Models/Metric.swift",
        "Classes/Models/StatsCollection.swift",
        "Classes/Networking/APIClient/API.swift",
        "Classes/Networking/APIClient/ServiceManager.swift",
        "Classes/Networking/ServiceType.swift",
        "Classes/ObjC/ObjCConfiguration.swift",
        "Classes/ObjC/ObjCMetric.swift",
        "Classes/ObjC/ObjCMetricsClient.swift",
        "Classes/Plugins.swift",
        "Classes/Plugins/CrashReporter.swift",
        "Classes/Plugins/MetricsUploader.swift",
        "Classes/Startup.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.