This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

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 TimelaneCore with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 10

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/icanzilb/TimelaneCore.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/icanzilb/TimelaneCore
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at c554d6d Merge pull request #34 from jandamm/Remove-unsafeFlags
Cloned https://github.com/icanzilb/TimelaneCore.git
Revision (git rev-parse @):
c554d6d61be14bd7acb8b10161fe5d9dc20d7fbc
SUCCESS checkout https://github.com/icanzilb/TimelaneCore.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/icanzilb/TimelaneCore.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-6F35C1178C84523A.txt
[4/7] Emitting module TimelaneCore
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:23:16: warning: static property 'log' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 21 |
 22 |     /// A shared log to use for logging data to the instrument.
 23 |     static var log: OSLog = {
    |                |- warning: static property 'log' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'log' 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
 24 |         if #available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) {
 25 |             return OSLog(subsystem: "tools.timelane.subscriptions", category: OSLog.Category.dynamicStackTracing)
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:47:27: warning: static property 'subscription' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 39 |
 40 |     /// An option set representing one or more lane types to log data to.
 41 |     public struct LaneTypeOptions: OptionSet {
    |                   `- note: consider making struct 'LaneTypeOptions' conform to the 'Sendable' protocol
 42 |         public let rawValue: Int
 43 |         public init(rawValue: Int) {
    :
 45 |         }
 46 |         /// Log to a subscription lane.
 47 |         public static let subscription: LaneTypeOptions = .init(rawValue: 1 << 0)
    |                           |- warning: static property 'subscription' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'subscription' 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
 48 |         /// Log to events lane.
 49 |         public static let event: LaneTypeOptions        = .init(rawValue: 1 << 1)
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:49:27: warning: static property 'event' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 39 |
 40 |     /// An option set representing one or more lane types to log data to.
 41 |     public struct LaneTypeOptions: OptionSet {
    |                   `- note: consider making struct 'LaneTypeOptions' conform to the 'Sendable' protocol
 42 |         public let rawValue: Int
 43 |         public init(rawValue: Int) {
    :
 47 |         public static let subscription: LaneTypeOptions = .init(rawValue: 1 << 0)
 48 |         /// Log to events lane.
 49 |         public static let event: LaneTypeOptions        = .init(rawValue: 1 << 1)
    |                           |- warning: static property 'event' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'event' 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
 50 |         /// Log to both subscriptions and events lanes.
 51 |         public static let all: LaneTypeOptions          = [.subscription, .event]
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:51:27: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 39 |
 40 |     /// An option set representing one or more lane types to log data to.
 41 |     public struct LaneTypeOptions: OptionSet {
    |                   `- note: consider making struct 'LaneTypeOptions' conform to the 'Sendable' protocol
 42 |         public let rawValue: Int
 43 |         public init(rawValue: Int) {
    :
 49 |         public static let event: LaneTypeOptions        = .init(rawValue: 1 << 1)
 50 |         /// Log to both subscriptions and events lanes.
 51 |         public static let all: LaneTypeOptions          = [.subscription, .event]
    |                           |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'all' 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
 52 |     }
 53 |
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:57:23: warning: static property 'defaultLogger' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 55 |     public typealias Logger = (_ type: OSSignpostType, _ dso: UnsafeRawPointer, _ log: OSLog, _ name: StaticString, _ signpostID: OSSignpostID, _ format: StaticString, _ arguments: CVarArg...) -> Void
 56 |     /// A logger to use when no logger is specified. By default it's the Timelane Instrument logger.
 57 |     public static var defaultLogger = Loggers.timelaneInstrument
    |                       |- warning: static property 'defaultLogger' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultLogger' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'defaultLogger' 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
 58 |
 59 |     /// Commonly used Timelane loggers.
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:62:27: warning: static property 'timelaneInstrument' is not concurrency-safe because non-'Sendable' type 'Timelane.Logger' (aka '(OSSignpostType, UnsafeRawPointer, OSLog, StaticString, OSSignpostID, StaticString, any CVarArg...) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
 60 |     public enum Loggers {
 61 |         /// The logger that pipes values & events to Timelane running in Instruments.
 62 |         public static let timelaneInstrument: Logger = os_signpost
    |                           |- warning: static property 'timelaneInstrument' is not concurrency-safe because non-'Sendable' type 'Timelane.Logger' (aka '(OSSignpostType, UnsafeRawPointer, OSLog, StaticString, OSSignpostID, StaticString, any CVarArg...) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'timelaneInstrument' 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
 63 |         /// A logger that does not log anything.
 64 |         public static let disabled: Logger = devnull
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:64:27: warning: static property 'disabled' is not concurrency-safe because non-'Sendable' type 'Timelane.Logger' (aka '(OSSignpostType, UnsafeRawPointer, OSLog, StaticString, OSSignpostID, StaticString, any CVarArg...) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
 62 |         public static let timelaneInstrument: Logger = os_signpost
 63 |         /// A logger that does not log anything.
 64 |         public static let disabled: Logger = devnull
    |                           |- warning: static property 'disabled' is not concurrency-safe because non-'Sendable' type 'Timelane.Logger' (aka '(OSSignpostType, UnsafeRawPointer, OSLog, StaticString, OSSignpostID, StaticString, any CVarArg...) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'disabled' 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
 65 |         /// A logger that proxies values & events to another object.
 66 |         public static func proxy(to proxy: ProxyLogger) -> Logger { proxy.log }
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:79:20: warning: static property 'subscriptionCounter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 77 |     public class Subscription {
 78 |         /// A counter to keep track of subscriptions.
 79 |         static var subscriptionCounter: UInt64 = 0
    |                    |- warning: static property 'subscriptionCounter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: convert 'subscriptionCounter' to a 'let' constant to make 'Sendable' shared state immutable
    |                    |- note: annotate 'subscriptionCounter' 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
 80 |         private static var lock = NSRecursiveLock()
 81 |
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:80:28: warning: static property 'lock' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 78 |         /// A counter to keep track of subscriptions.
 79 |         static var subscriptionCounter: UInt64 = 0
 80 |         private static var lock = NSRecursiveLock()
    |                            |- warning: static property 'lock' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                            |- note: convert 'lock' to a 'let' constant to make 'Sendable' shared state immutable
    |                            |- note: annotate 'lock' 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
 81 |
 82 |         private let subscriptionID: UInt64
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:146:20: warning: static property 'didEmitVersion' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
144 |
145 |         /// If `true`, the subscription already sent the protocol version it uses to Instruments.
146 |         static var didEmitVersion = false
    |                    |- warning: static property 'didEmitVersion' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: convert 'didEmitVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                    |- note: annotate 'didEmitVersion' 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
147 |
148 |         private lazy var emitVersionIfNeeded: Void = {
[5/7] Compiling TimelaneCore TimelaneCore.swift
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:23:16: warning: static property 'log' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 21 |
 22 |     /// A shared log to use for logging data to the instrument.
 23 |     static var log: OSLog = {
    |                |- warning: static property 'log' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'log' 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
 24 |         if #available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) {
 25 |             return OSLog(subsystem: "tools.timelane.subscriptions", category: OSLog.Category.dynamicStackTracing)
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:47:27: warning: static property 'subscription' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 39 |
 40 |     /// An option set representing one or more lane types to log data to.
 41 |     public struct LaneTypeOptions: OptionSet {
    |                   `- note: consider making struct 'LaneTypeOptions' conform to the 'Sendable' protocol
 42 |         public let rawValue: Int
 43 |         public init(rawValue: Int) {
    :
 45 |         }
 46 |         /// Log to a subscription lane.
 47 |         public static let subscription: LaneTypeOptions = .init(rawValue: 1 << 0)
    |                           |- warning: static property 'subscription' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'subscription' 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
 48 |         /// Log to events lane.
 49 |         public static let event: LaneTypeOptions        = .init(rawValue: 1 << 1)
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:49:27: warning: static property 'event' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 39 |
 40 |     /// An option set representing one or more lane types to log data to.
 41 |     public struct LaneTypeOptions: OptionSet {
    |                   `- note: consider making struct 'LaneTypeOptions' conform to the 'Sendable' protocol
 42 |         public let rawValue: Int
 43 |         public init(rawValue: Int) {
    :
 47 |         public static let subscription: LaneTypeOptions = .init(rawValue: 1 << 0)
 48 |         /// Log to events lane.
 49 |         public static let event: LaneTypeOptions        = .init(rawValue: 1 << 1)
    |                           |- warning: static property 'event' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'event' 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
 50 |         /// Log to both subscriptions and events lanes.
 51 |         public static let all: LaneTypeOptions          = [.subscription, .event]
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:51:27: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 39 |
 40 |     /// An option set representing one or more lane types to log data to.
 41 |     public struct LaneTypeOptions: OptionSet {
    |                   `- note: consider making struct 'LaneTypeOptions' conform to the 'Sendable' protocol
 42 |         public let rawValue: Int
 43 |         public init(rawValue: Int) {
    :
 49 |         public static let event: LaneTypeOptions        = .init(rawValue: 1 << 1)
 50 |         /// Log to both subscriptions and events lanes.
 51 |         public static let all: LaneTypeOptions          = [.subscription, .event]
    |                           |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Timelane.LaneTypeOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'all' 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
 52 |     }
 53 |
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:57:23: warning: static property 'defaultLogger' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 55 |     public typealias Logger = (_ type: OSSignpostType, _ dso: UnsafeRawPointer, _ log: OSLog, _ name: StaticString, _ signpostID: OSSignpostID, _ format: StaticString, _ arguments: CVarArg...) -> Void
 56 |     /// A logger to use when no logger is specified. By default it's the Timelane Instrument logger.
 57 |     public static var defaultLogger = Loggers.timelaneInstrument
    |                       |- warning: static property 'defaultLogger' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultLogger' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'defaultLogger' 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
 58 |
 59 |     /// Commonly used Timelane loggers.
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:62:27: warning: static property 'timelaneInstrument' is not concurrency-safe because non-'Sendable' type 'Timelane.Logger' (aka '(OSSignpostType, UnsafeRawPointer, OSLog, StaticString, OSSignpostID, StaticString, any CVarArg...) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
 60 |     public enum Loggers {
 61 |         /// The logger that pipes values & events to Timelane running in Instruments.
 62 |         public static let timelaneInstrument: Logger = os_signpost
    |                           |- warning: static property 'timelaneInstrument' is not concurrency-safe because non-'Sendable' type 'Timelane.Logger' (aka '(OSSignpostType, UnsafeRawPointer, OSLog, StaticString, OSSignpostID, StaticString, any CVarArg...) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'timelaneInstrument' 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
 63 |         /// A logger that does not log anything.
 64 |         public static let disabled: Logger = devnull
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:64:27: warning: static property 'disabled' is not concurrency-safe because non-'Sendable' type 'Timelane.Logger' (aka '(OSSignpostType, UnsafeRawPointer, OSLog, StaticString, OSSignpostID, StaticString, any CVarArg...) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
 62 |         public static let timelaneInstrument: Logger = os_signpost
 63 |         /// A logger that does not log anything.
 64 |         public static let disabled: Logger = devnull
    |                           |- warning: static property 'disabled' is not concurrency-safe because non-'Sendable' type 'Timelane.Logger' (aka '(OSSignpostType, UnsafeRawPointer, OSLog, StaticString, OSSignpostID, StaticString, any CVarArg...) -> ()') may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'disabled' 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
 65 |         /// A logger that proxies values & events to another object.
 66 |         public static func proxy(to proxy: ProxyLogger) -> Logger { proxy.log }
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:79:20: warning: static property 'subscriptionCounter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 77 |     public class Subscription {
 78 |         /// A counter to keep track of subscriptions.
 79 |         static var subscriptionCounter: UInt64 = 0
    |                    |- warning: static property 'subscriptionCounter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: convert 'subscriptionCounter' to a 'let' constant to make 'Sendable' shared state immutable
    |                    |- note: annotate 'subscriptionCounter' 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
 80 |         private static var lock = NSRecursiveLock()
 81 |
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:80:28: warning: static property 'lock' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 78 |         /// A counter to keep track of subscriptions.
 79 |         static var subscriptionCounter: UInt64 = 0
 80 |         private static var lock = NSRecursiveLock()
    |                            |- warning: static property 'lock' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                            |- note: convert 'lock' to a 'let' constant to make 'Sendable' shared state immutable
    |                            |- note: annotate 'lock' 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
 81 |
 82 |         private let subscriptionID: UInt64
/Users/admin/builder/spi-builder-workspace/Sources/TimelaneCore/TimelaneCore.swift:146:20: warning: static property 'didEmitVersion' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
144 |
145 |         /// If `true`, the subscription already sent the protocol version it uses to Instruments.
146 |         static var didEmitVersion = false
    |                    |- warning: static property 'didEmitVersion' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: convert 'didEmitVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                    |- note: annotate 'didEmitVersion' 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
147 |
148 |         private lazy var emitVersionIfNeeded: Void = {
[6/7] Emitting module TimelaneCoreTestUtils
[7/7] Compiling TimelaneCoreTestUtils TestLog.swift
Build complete! (20.43s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "TimelaneCore",
  "name" : "TimelaneCore",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.10"
    },
    {
      "name" : "ios",
      "version" : "9.0"
    },
    {
      "name" : "tvos",
      "version" : "9.0"
    },
    {
      "name" : "watchos",
      "version" : "2.0"
    }
  ],
  "products" : [
    {
      "name" : "TimelaneCore",
      "targets" : [
        "TimelaneCore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "TimelaneCoreTestUtils",
      "targets" : [
        "TimelaneCoreTestUtils"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "TimelaneCoreTests",
      "module_type" : "SwiftTarget",
      "name" : "TimelaneCoreTests",
      "path" : "Tests/TimelaneCoreTests",
      "sources" : [
        "TimelaneCoreTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "TimelaneCore",
        "TimelaneCoreTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TimelaneCoreTestUtils",
      "module_type" : "SwiftTarget",
      "name" : "TimelaneCoreTestUtils",
      "path" : "Tests/TimelaneCoreTestUtils",
      "product_memberships" : [
        "TimelaneCoreTestUtils"
      ],
      "sources" : [
        "TestLog.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TimelaneCore",
      "module_type" : "SwiftTarget",
      "name" : "TimelaneCore",
      "path" : "Sources/TimelaneCore",
      "product_memberships" : [
        "TimelaneCore"
      ],
      "sources" : [
        "TimelaneCore.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.