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 SwiftCustomLogger, reference master (5eea14), with Swift 6.0 for Linux on 18 Apr 2025 19:19:03 UTC.

Swift 6 data race errors: 7

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.60.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/nerzh/swift-custom-logger.git
Reference: master
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/nerzh/swift-custom-logger
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 5eea143 Merge pull request #1 from makoni/master
Cloned https://github.com/nerzh/swift-custom-logger.git
Revision (git rev-parse @):
5eea143e6674a7a263b96cdf51e4db8bad07820c
SUCCESS checkout https://github.com/nerzh/swift-custom-logger.git at master
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/nerzh/swift-custom-logger.git
https://github.com/nerzh/swift-custom-logger.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.4",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log"
    }
  ],
  "manifest_display_name" : "SwiftCustomLogger",
  "name" : "SwiftCustomLogger",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "SwiftCustomLogger",
      "targets" : [
        "SwiftCustomLogger"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftCustomLogger",
      "module_type" : "SwiftTarget",
      "name" : "SwiftCustomLogger",
      "path" : "Sources/SwiftCustomLogger",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "SwiftCustomLogger"
      ],
      "sources" : [
        "BasicFormatter.swift",
        "CustomHandler.swift",
        "LogFormatter.swift",
        "Printer.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:9029076bb687edc160a3d5201c89e92dd9fa7309f33f090c4234365c83366c31
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Fetching https://github.com/apple/swift-log
[1/3832] Fetching swift-log
Fetched https://github.com/apple/swift-log from cache (0.38s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.6.3 (0.48s)
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.6.3
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-24593BA9C3E375BF.txt
[4/8] Compiling Logging Locks.swift
[5/8] Emitting module Logging
[6/8] Compiling Logging LogHandler.swift
[7/8] Compiling Logging Logging.swift
[8/8] Compiling Logging MetadataProvider.swift
[10/14] Emitting module SwiftCustomLogger
/host/spi-builder-workspace/Sources/SwiftCustomLogger/BasicFormatter.swift:56:23: warning: static property 'appleDefault' is not concurrency-safe because non-'Sendable' type 'BasicFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
 2 | import Logging
 3 |
 4 | public struct BasicFormatter: LogFormatter {
   |               `- note: consider making struct 'BasicFormatter' conform to the 'Sendable' protocol
 5 |
 6 |     public let timestampFormatter: DateFormatter
   :
54 |     /// [apple/swift-log](https://github.com/apple/swift-log)'s log format
55 |     /// `2024-04-12T10:00:07-0310 error: Test error message`
56 |     public static let appleDefault = BasicFormatter(
   |                       |- warning: static property 'appleDefault' is not concurrency-safe because non-'Sendable' type 'BasicFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'appleDefault' 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
57 |         [
58 |             .timestamp,
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:6:16: warning: stored property 'formatter' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any LogFormatter'; this is an error in the Swift 6 language mode
 4 | public struct CustomHandler: LogHandler {
 5 |
 6 |     public let formatter: LogFormatter
   |                `- warning: stored property 'formatter' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any LogFormatter'; this is an error in the Swift 6 language mode
 7 |     public let printer: Printer
 8 |     public var logLevel: Logger.Level = .info
/host/spi-builder-workspace/Sources/SwiftCustomLogger/LogFormatter.swift:28:17: note: protocol 'LogFormatter' does not conform to the 'Sendable' protocol
26 | }
27 |
28 | public protocol LogFormatter {
   |                 `- note: protocol 'LogFormatter' does not conform to the 'Sendable' protocol
29 |     var timestampFormatter: DateFormatter { get }
30 |
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:7:16: warning: stored property 'printer' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any Printer'; this is an error in the Swift 6 language mode
 5 |
 6 |     public let formatter: LogFormatter
 7 |     public let printer: Printer
   |                `- warning: stored property 'printer' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any Printer'; this is an error in the Swift 6 language mode
 8 |     public var logLevel: Logger.Level = .info
 9 |     private var prettyMetadata: String?
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:23:17: note: protocol 'Printer' does not conform to the 'Sendable' protocol
21 | #endif
22 |
23 | public protocol Printer {
   |                 `- note: protocol 'Printer' does not conform to the 'Sendable' protocol
24 |     func handle(_ formattedLogLine: String)
25 | }
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:4:15: warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
 2 | import Logging
 3 |
 4 | public struct CustomHandler: LogHandler {
   |               `- warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
 5 |
 6 |     public let formatter: LogFormatter
/host/spi-builder-workspace/.build/checkouts/swift-log/Sources/Logging/LogHandler.swift:209:17: note: 'log(level:message:metadata:source:file:function:line:)' declared here
133 |     ///     - function: The function the log line was emitted from.
134 |     ///     - line: The line the log message was emitted from.
135 |     func log(
    |          `- note: requirement 'log(level:message:metadata:source:file:function:line:)' declared here
136 |         level: Logger.Level,
137 |         message: Logger.Message,
    :
207 | extension LogHandler {
208 |     @available(*, deprecated, message: "You should implement this method instead of using the default implementation")
209 |     public func log(
    |                 `- note: 'log(level:message:metadata:source:file:function:line:)' declared here
210 |         level: Logger.Level,
211 |         message: Logger.Message,
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:74:16: warning: static property 'stderr' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | private struct OutputStream: TextOutputStream {
   |                `- note: consider making struct 'OutputStream' conform to the 'Sendable' protocol
50 |
51 |     public let file: UnsafeMutablePointer<FILE>
   :
72 |
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
   |                |- warning: static property 'stderr' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'stderr' 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
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
76 |
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:74:50: warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
72 |
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
   |                                                  `- warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
76 |
SwiftGlibc.stderr:1:12: note: var declared here
1 | public var stderr: UnsafeMutablePointer<FILE>!
  |            `- note: var declared here
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:75:16: warning: static property 'stdout' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | private struct OutputStream: TextOutputStream {
   |                `- note: consider making struct 'OutputStream' conform to the 'Sendable' protocol
50 |
51 |     public let file: UnsafeMutablePointer<FILE>
   :
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
   |                |- warning: static property 'stdout' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'stdout' 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
76 |
77 |     #elseif canImport(Musl)
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:75:50: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
   |                                                  `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
76 |
77 |     #elseif canImport(Musl)
SwiftGlibc.stdout:1:12: note: var declared here
1 | public var stdout: UnsafeMutablePointer<FILE>!
  |            `- note: var declared here
[11/14] Compiling SwiftCustomLogger Printer.swift
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:74:16: warning: static property 'stderr' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | private struct OutputStream: TextOutputStream {
   |                `- note: consider making struct 'OutputStream' conform to the 'Sendable' protocol
50 |
51 |     public let file: UnsafeMutablePointer<FILE>
   :
72 |
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
   |                |- warning: static property 'stderr' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'stderr' 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
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
76 |
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:74:50: warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
72 |
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
   |                                                  `- warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
76 |
SwiftGlibc.stderr:1:12: note: var declared here
1 | public var stderr: UnsafeMutablePointer<FILE>!
  |            `- note: var declared here
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:75:16: warning: static property 'stdout' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | private struct OutputStream: TextOutputStream {
   |                `- note: consider making struct 'OutputStream' conform to the 'Sendable' protocol
50 |
51 |     public let file: UnsafeMutablePointer<FILE>
   :
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
   |                |- warning: static property 'stdout' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'stdout' 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
76 |
77 |     #elseif canImport(Musl)
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:75:50: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
   |                                                  `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
76 |
77 |     #elseif canImport(Musl)
SwiftGlibc.stdout:1:12: note: var declared here
1 | public var stdout: UnsafeMutablePointer<FILE>!
  |            `- note: var declared here
[12/14] Compiling SwiftCustomLogger LogFormatter.swift
[13/14] Compiling SwiftCustomLogger BasicFormatter.swift
/host/spi-builder-workspace/Sources/SwiftCustomLogger/BasicFormatter.swift:56:23: warning: static property 'appleDefault' is not concurrency-safe because non-'Sendable' type 'BasicFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
 2 | import Logging
 3 |
 4 | public struct BasicFormatter: LogFormatter {
   |               `- note: consider making struct 'BasicFormatter' conform to the 'Sendable' protocol
 5 |
 6 |     public let timestampFormatter: DateFormatter
   :
54 |     /// [apple/swift-log](https://github.com/apple/swift-log)'s log format
55 |     /// `2024-04-12T10:00:07-0310 error: Test error message`
56 |     public static let appleDefault = BasicFormatter(
   |                       |- warning: static property 'appleDefault' is not concurrency-safe because non-'Sendable' type 'BasicFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'appleDefault' 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
57 |         [
58 |             .timestamp,
[14/14] Compiling SwiftCustomLogger CustomHandler.swift
/host/spi-builder-workspace/Sources/SwiftCustomLogger/BasicFormatter.swift:56:23: warning: static property 'appleDefault' is not concurrency-safe because non-'Sendable' type 'BasicFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
 2 | import Logging
 3 |
 4 | public struct BasicFormatter: LogFormatter {
   |               `- note: consider making struct 'BasicFormatter' conform to the 'Sendable' protocol
 5 |
 6 |     public let timestampFormatter: DateFormatter
   :
54 |     /// [apple/swift-log](https://github.com/apple/swift-log)'s log format
55 |     /// `2024-04-12T10:00:07-0310 error: Test error message`
56 |     public static let appleDefault = BasicFormatter(
   |                       |- warning: static property 'appleDefault' is not concurrency-safe because non-'Sendable' type 'BasicFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'appleDefault' 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
57 |         [
58 |             .timestamp,
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:6:16: warning: stored property 'formatter' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any LogFormatter'; this is an error in the Swift 6 language mode
 4 | public struct CustomHandler: LogHandler {
 5 |
 6 |     public let formatter: LogFormatter
   |                `- warning: stored property 'formatter' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any LogFormatter'; this is an error in the Swift 6 language mode
 7 |     public let printer: Printer
 8 |     public var logLevel: Logger.Level = .info
/host/spi-builder-workspace/Sources/SwiftCustomLogger/LogFormatter.swift:28:17: note: protocol 'LogFormatter' does not conform to the 'Sendable' protocol
26 | }
27 |
28 | public protocol LogFormatter {
   |                 `- note: protocol 'LogFormatter' does not conform to the 'Sendable' protocol
29 |     var timestampFormatter: DateFormatter { get }
30 |
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:7:16: warning: stored property 'printer' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any Printer'; this is an error in the Swift 6 language mode
 5 |
 6 |     public let formatter: LogFormatter
 7 |     public let printer: Printer
   |                `- warning: stored property 'printer' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any Printer'; this is an error in the Swift 6 language mode
 8 |     public var logLevel: Logger.Level = .info
 9 |     private var prettyMetadata: String?
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:23:17: note: protocol 'Printer' does not conform to the 'Sendable' protocol
21 | #endif
22 |
23 | public protocol Printer {
   |                 `- note: protocol 'Printer' does not conform to the 'Sendable' protocol
24 |     func handle(_ formattedLogLine: String)
25 | }
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:4:15: warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
 2 | import Logging
 3 |
 4 | public struct CustomHandler: LogHandler {
   |               `- warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
 5 |
 6 |     public let formatter: LogFormatter
/host/spi-builder-workspace/.build/checkouts/swift-log/Sources/Logging/LogHandler.swift:209:17: note: 'log(level:message:metadata:source:file:function:line:)' declared here
133 |     ///     - function: The function the log line was emitted from.
134 |     ///     - line: The line the log message was emitted from.
135 |     func log(
    |          `- note: requirement 'log(level:message:metadata:source:file:function:line:)' declared here
136 |         level: Logger.Level,
137 |         message: Logger.Message,
    :
207 | extension LogHandler {
208 |     @available(*, deprecated, message: "You should implement this method instead of using the default implementation")
209 |     public func log(
    |                 `- note: 'log(level:message:metadata:source:file:function:line:)' declared here
210 |         level: Logger.Level,
211 |         message: Logger.Message,
Build complete! (12.70s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.4",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log"
    }
  ],
  "manifest_display_name" : "SwiftCustomLogger",
  "name" : "SwiftCustomLogger",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "SwiftCustomLogger",
      "targets" : [
        "SwiftCustomLogger"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftCustomLogger",
      "module_type" : "SwiftTarget",
      "name" : "SwiftCustomLogger",
      "path" : "Sources/SwiftCustomLogger",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "SwiftCustomLogger"
      ],
      "sources" : [
        "BasicFormatter.swift",
        "CustomHandler.swift",
        "LogFormatter.swift",
        "Printer.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:9029076bb687edc160a3d5201c89e92dd9fa7309f33f090c4234365c83366c31
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.