The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of MetricsReporter, reference master (0cee17), with Swift 6.1 for macOS (SPM) on 7 Nov 2025 01:34:09 UTC.

Swift 6 data race errors: 1

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.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.68.0
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 0cee170 chore: apply security best practices from step security (#53)
Cloned https://github.com/rudderlabs/metrics-reporter-ios.git
Revision (git rev-parse @):
0cee1709c76e08840dc1686198fcf852f51dbc19
SUCCESS checkout https://github.com/rudderlabs/metrics-reporter-ios.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/rudderlabs/metrics-reporter-ios.git
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.3.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-2F0A5646E1D333AE.txt
[2/83] Compiling RSCrashReporter RSCrashReporterFeatureFlag.m
[3/83] Compiling RSCFileLocations.m
[4/83] Compiling RSCrashReporter RSCrashReporter.m
[5/88] Compiling RSCStorageMigratorV0V1.m
[6/88] Compiling RSCrashReporterUser.m
[7/88] Compiling RSCrashReporterThread.m
[8/88] Compiling RSCrashReporterStacktrace.m
[9/88] Compiling RSCrashReporter RSCrashReporterLastRunInfo.m
[10/88] Compiling RSCrashReporterStackframe.m
[11/88] Compiling RSCrashReporterSession.m
[12/88] Compiling RSCrashReporterNotifier.m
[13/88] Compiling RSCrashReporter RSCCrashSentry.m
[14/88] Compiling RSCrashReporterHandledState.m
[15/88] Compiling RSCrashReporterBreadcrumbs.m
[16/88] Compiling RSCrashReporterError.m
[17/88] Compiling RSCrashReporterEvent.m
[18/88] Compiling RSCrashReporterDevice.m
[19/88] Compiling RSCrashReporterDeviceWithState.m
[20/88] Compiling RSCrashReporterBreadcrumb.m
[21/88] Compiling RSCrashReporterAppWithState.m
[22/88] Compiling RSCrashReporterApp.m
[23/88] Compiling RSC_KSMach_x86_64.c
[24/88] Compiling RSCrashReporterMetadata.m
[25/88] Compiling RSC_KSMach_x86_32.c
[26/88] Compiling RSC_KSMach_Arm.c
[27/88] Compiling RSC_KSString.c
[28/88] Compiling RSC_KSSignalInfo.c
[29/88] Compiling RSC_KSLogger.c
[30/88] Compiling RSC_KSJSONCodec.c
[31/88] Compiling RSC_KSMach_Arm64.c
[32/88] Compiling RSC_KSSysCtl.c
[33/88] Compiling RSC_KSFileUtils.c
[34/88] Compiling RSC_KSCrashStringConversion.c
[35/88] Compiling RSC_KSBacktrace.c
[36/88] Compiling RSC_KSCrashSentry_NSException.m
[37/88] Compiling RSC_KSCrashSentry_MachException.c
[38/88] Compiling RSC_KSCrashSentry_Signal.c
[39/88] Compiling RSC_KSCrashSentry.c
[40/88] Compiling RSC_Symbolicate.c
[41/88] Compiling RSC_KSFile.c
[42/88] Compiling RSC_KSMach.c
[43/88] Compiling RSC_KSCrashState.m
[44/88] Compiling RSC_KSMachHeaders.c
[45/88] Compiling RSC_KSCrashNames.c
[46/88] Compiling RSC_KSCrashReport.c
[47/88] Compiling RSC_KSCrashIdentifier.m
[48/88] Compiling RSC_KSCrashC.c
[49/88] Compiling RSC_KSSystemInfo.m
[50/88] Compiling RSC_KSCrashDoctor.m
[51/88] Compiling RSCrashReporterClient.m
[52/88] Compiling RSC_KSCrash.m
[52/88] Compiling RSC_RFC3339DateTool.m
[52/88] Compiling RSCUtils.m
[52/88] Compiling RSCrashReporterCollections.m
[56/88] Compiling RSCTelemetry.m
[57/88] Compiling RSCrashReporter RSCrashReporterSessionTracker.m
[58/88] Compiling RSCSerialization.m
[59/88] Compiling RSCJSONSerialization.m
[60/88] Compiling RSCrashReporter RSCrashReporterSystemState.m
[61/88] Compiling RSCGlobals.m
[62/88] Compiling RSCRunContext.m
[63/88] Compiling RSCInternalErrorReporter.m
[64/88] Compiling RSCFeatureFlagStore.m
[65/88] Compiling MRCCanary.m
[66/88] Compiling RSCAppHangDetector.m
[67/88] Compiling RSCrashReporterApiClient.m
[68/88] Compiling RSCSessionUploader.m
[69/88] Compiling RSC_KSCrashSentry_CPPException.mm
[70/88] Compiling RSCEventUploadObjectOperation.m
[71/88] Compiling RSCEventUploader.m
[72/88] Compiling RSCEventUploadOperation.m
[73/88] Compiling RSCEventUploadFileOperation.m
[74/88] Write sources
[75/88] Compiling RSCEventUploadKSCrashReportOperation.m
[76/88] Compiling RSCrashReporterErrorTypes.m
[77/88] Compiling RSCConnectivity.m
[78/88] Compiling RSCrashReporterEndpointConfiguration.m
[79/88] Compiling RSCConfigurationBuilder.m
[80/88] Compiling RSCNetworkBreadcrumb.m
[81/88] Compiling RSCrashReporterConfiguration.m
[82/88] Compiling RSCNotificationBreadcrumbs.m
[84/88] Compiling RudderKit RepeatingTimer.swift
[85/88] Compiling RudderKit Logger.swift
[86/88] Emitting module RudderKit
[87/88] Compiling RudderKit JSON.swift
[88/88] Compiling RudderKit Data+Ext.swift
[89/108] 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: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
   |                `- 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
[90/110] 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
 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
    |                 `- 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
 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
 69 |                     completion(.failure(NSError(code: errorCode)))
 70 |                 }
[91/110] 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
 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
    |                 `- 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
 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
 69 |                     completion(.failure(NSError(code: errorCode)))
 70 |                 }
[92/110] Compiling MetricsReporter ServiceType.swift
[93/110] Compiling MetricsReporter ObjCConfiguration.swift
[94/110] Compiling MetricsReporter ObjCMetric.swift
[95/110] Compiling MetricsReporter ObjCMetricsClient.swift
[96/110] 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) {
[97/110] 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) {
[98/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: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |             #if os(iOS) || os(tvOS)
50 |             return PhoneVendor()
[99/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: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |             #if os(iOS) || os(tvOS)
50 |             return PhoneVendor()
[100/110] Compiling MetricsReporter Constants.swift
[101/110] Compiling MetricsReporter Controller.swift
[102/110] Compiling MetricsReporter Database.swift
[103/110] Compiling MetricsReporter Metric.swift
[104/110] Compiling MetricsReporter StatsCollection.swift
[105/110] Compiling MetricsReporter Plugins.swift
[106/110] Compiling MetricsReporter CrashReporter.swift
[107/110] Compiling MetricsReporter ErrorOperator.swift
[108/110] Compiling MetricsReporter LabelOperator.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
 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
 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
 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
 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
 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
 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
 56 |                     }
 57 |                 } else {
 58 |                     sleepCount += 1
    |                     `- warning: mutation of captured var 'sleepCount' in concurrently-executing code
 59 |                 }
 60 |             }
[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
 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
 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
 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
 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
 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
 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
 56 |                     }
 57 |                 } else {
 58 |                     sleepCount += 1
    |                     `- warning: mutation of captured var 'sleepCount' in concurrently-executing code
 59 |                 }
 60 |             }
Build complete! (12.09s)
Fetching https://github.com/rudderlabs/rudder-ios-kit
Fetching https://github.com/rudderlabs/crash-reporter-ios
[7/309] Fetching rudder-ios-kit
[310/33499] Fetching rudder-ios-kit, crash-reporter-ios
Fetched https://github.com/rudderlabs/crash-reporter-ios from cache (1.68s)
Fetched https://github.com/rudderlabs/rudder-ios-kit from cache (1.68s)
Computing version for https://github.com/rudderlabs/crash-reporter-ios
Computed https://github.com/rudderlabs/crash-reporter-ios at 1.0.1 (2.31s)
Computing version for https://github.com/rudderlabs/rudder-ios-kit
Computed https://github.com/rudderlabs/rudder-ios-kit at 1.4.0 (0.60s)
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/rudder-ios-kit
Working copy of https://github.com/rudderlabs/rudder-ios-kit resolved at 1.4.0
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.