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 (e307fa), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 00:02:41 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.61.1
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
========================================
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 swift-version-2F0A5646E1D333AE.txt
[1/83] Write sources
[2/83] Compiling RSCrashReporterEndpointConfiguration.m
[3/83] Compiling RSCrashReporterBreadcrumbs.m
[4/83] Compiling RSCNetworkBreadcrumb.m
[5/88] Compiling RSCrashReporterDeviceWithState.m
[6/88] Compiling RSCrashReporterDevice.m
[7/88] Compiling RSCStorageMigratorV0V1.m
[8/88] Compiling RSCConfigurationBuilder.m
[9/88] Compiling RSCFileLocations.m
[10/88] Compiling RSCrashReporter RSCrashReporterLastRunInfo.m
[11/88] Compiling RSCrashReporter RSCrashReporterFeatureFlag.m
[12/88] Compiling RSCrashReporter RSCrashReporter.m
[13/88] Compiling RSCrashReporterConfiguration.m
[14/88] Compiling RSCrashReporter RSCCrashSentry.m
[15/88] Compiling RSCrashReporterUser.m
[16/88] Compiling RSCrashReporterThread.m
[17/88] Compiling RSCrashReporterStacktrace.m
[18/88] Compiling RSCrashReporterSession.m
[19/88] Compiling RSCrashReporterStackframe.m
[20/88] Compiling RSCrashReporterNotifier.m
[21/88] Compiling RSCrashReporterHandledState.m
[22/88] Compiling RSCrashReporterError.m
[23/88] Compiling RSCrashReporterBreadcrumb.m
[24/88] Compiling RSCrashReporterAppWithState.m
[25/88] Compiling RSCrashReporterEvent.m
[26/88] Compiling RSCrashReporterApp.m
[27/88] Compiling RSCrashReporterMetadata.m
[28/88] Compiling RSC_KSMach_x86_64.c
[29/88] Compiling RSC_KSMach_x86_32.c
[30/88] Compiling RSC_KSString.c
[31/88] Compiling RSC_KSMach_Arm.c
[32/88] Compiling RSC_KSSignalInfo.c
[33/88] Compiling RSC_KSMach_Arm64.c
[34/88] Compiling RSC_KSLogger.c
[35/88] Compiling RSC_KSJSONCodec.c
[36/88] Compiling RSC_KSFileUtils.c
[37/88] Compiling RSC_KSSysCtl.c
[38/88] Compiling RSC_KSCrashStringConversion.c
[39/88] Compiling RSC_KSBacktrace.c
[40/88] Compiling RSC_KSCrashSentry_NSException.m
[41/88] Compiling RSC_KSCrashSentry_Signal.c
[42/88] Compiling RSC_KSCrashSentry_MachException.c
[43/88] Compiling RSC_KSCrashSentry.c
[44/88] Compiling RSCrashReporter RSCrashReporterSystemState.m
[45/88] Compiling RSCNotificationBreadcrumbs.m
[46/88] Compiling RSC_KSFile.c
[47/88] Compiling RSC_Symbolicate.c
[48/88] Compiling RSC_KSCrashState.m
[49/88] Compiling RSC_KSCrashReport.c
[49/88] Compiling RSC_KSSystemInfo.m
[51/88] Compiling RSC_KSCrashNames.c
[52/88] Compiling RSCrashReporter RSCrashReporterSessionTracker.m
[53/88] Compiling RSC_KSCrashC.c
[54/88] Compiling RSC_KSCrashIdentifier.m
[55/88] Compiling RSC_KSCrashDoctor.m
[56/88] Compiling RSCrashReporterCollections.m
[57/88] Compiling RSC_KSCrash.m
[58/88] Compiling RSCUtils.m
[59/88] Compiling RSC_RFC3339DateTool.m
[60/88] Compiling RSCTelemetry.m
[61/88] Compiling RSCSerialization.m
[62/88] Compiling RSCrashReporterClient.m
[63/88] Compiling RSCJSONSerialization.m
[64/88] Compiling RSCRunContext.m
[65/88] Compiling RSC_KSMach.c
[66/88] Compiling RSC_KSMachHeaders.c
[67/88] Compiling RSCInternalErrorReporter.m
[68/88] Compiling RSCGlobals.m
[69/88] Compiling RSCFeatureFlagStore.m
[70/88] Compiling RSCAppHangDetector.m
[71/88] Compiling MRCCanary.m
[72/88] Compiling RSCrashReporterApiClient.m
[73/88] Compiling RSCSessionUploader.m
[73/88] Write sources
[75/88] Compiling RSCEventUploadObjectOperation.m
[76/88] Compiling RSCEventUploader.m
[77/88] Compiling RSCEventUploadOperation.m
[78/88] Compiling RSCEventUploadKSCrashReportOperation.m
[79/88] Compiling RSC_KSCrashSentry_CPPException.mm
[80/88] Compiling RSCrashReporterErrorTypes.m
[81/88] Compiling RSCEventUploadFileOperation.m
[82/88] Compiling RSCConnectivity.m
[84/88] Compiling RudderKit JSON.swift
[85/88] Compiling RudderKit Logger.swift
[86/88] Compiling RudderKit RepeatingTimer.swift
[87/88] Emitting module RudderKit
[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 Metric.swift
[91/110] Compiling MetricsReporter StatsCollection.swift
[92/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 |                 }
[93/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 |                 }
[94/110] Compiling MetricsReporter ObjCMetric.swift
[95/110] Compiling MetricsReporter ObjCMetricsClient.swift
[96/110] Compiling MetricsReporter ServiceType.swift
[97/110] Compiling MetricsReporter ObjCConfiguration.swift
[98/110] Compiling MetricsReporter Plugins.swift
[99/110] Compiling MetricsReporter CrashReporter.swift
[100/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) {
[101/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) {
[102/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()
[103/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()
[104/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 |             }
[105/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 |             }
[106/110] Compiling MetricsReporter ErrorOperator.swift
[107/110] Compiling MetricsReporter LabelOperator.swift
[108/110] Compiling MetricsReporter Constants.swift
[109/110] Compiling MetricsReporter Controller.swift
[110/110] Compiling MetricsReporter Database.swift
Build complete! (11.69s)
Fetching https://github.com/rudderlabs/crash-reporter-ios
Fetching https://github.com/rudderlabs/rudder-ios-kit
[1/248] Fetching rudder-ios-kit
[170/33370] Fetching rudder-ios-kit, crash-reporter-ios
Fetched https://github.com/rudderlabs/crash-reporter-ios from cache (1.74s)
Fetched https://github.com/rudderlabs/rudder-ios-kit from cache (1.74s)
Computing version for https://github.com/rudderlabs/crash-reporter-ios
Computed https://github.com/rudderlabs/crash-reporter-ios at 1.0.1 (2.39s)
Computing version for https://github.com/rudderlabs/rudder-ios-kit
Computed https://github.com/rudderlabs/rudder-ios-kit at 1.4.0 (0.57s)
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.