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 SSpec, reference 0.2.3 (2e6842), with Swift 6.1 for macOS (SPM) on 24 Apr 2025 18:53:26 UTC.

Swift 6 data race errors: 4

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.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dimakura/sspec.git
Reference: 0.2.3
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dimakura/sspec
 * tag               0.2.3      -> FETCH_HEAD
HEAD is now at 2e68427 Extensibility fixes (#33)
Cloned https://github.com/dimakura/sspec.git
Revision (git rev-parse @):
2e6842709607cdbfd3013e7df0dbe32b60932656
SUCCESS checkout https://github.com/dimakura/sspec.git at 0.2.3
Fetching https://github.com/onevcat/Rainbow
Fetching https://github.com/jkandzi/Progress.swift
[1/1196] Fetching rainbow
[2/1661] Fetching rainbow, progress.swift
Fetched https://github.com/onevcat/Rainbow from cache (0.90s)
Fetched https://github.com/jkandzi/Progress.swift from cache (0.90s)
Computing version for https://github.com/jkandzi/Progress.swift
error: package 'package.swift' is using Swift tools version 3.1.0 which is no longer supported; consider using '// swift-tools-version: 6.1' to specify the current tools version
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/dimakura/sspec.git
https://github.com/dimakura/sspec.git
{
  "dependencies" : [
    {
      "identity" : "rainbow",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.0.0",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/onevcat/Rainbow"
    },
    {
      "identity" : "progress.swift",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.3.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/jkandzi/Progress.swift"
    }
  ],
  "manifest_display_name" : "SSpec",
  "name" : "SSpec",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "SSpec",
      "targets" : [
        "SSpec"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SSpecTests",
      "module_type" : "SwiftTarget",
      "name" : "SSpecTests",
      "path" : "Tests/SSpecTests",
      "sources" : [
        "Extensions/DummyExtension.swift",
        "General/ArraySpec.swift",
        "General/BeforeAfterSpec.swift",
        "General/BoolSpec.swift",
        "General/EquatableSpec.swift",
        "General/NilableSpec.swift",
        "General/StringSpec.swift",
        "SSpec/ExtensionSpec.swift",
        "SSpec/NodeSpec.swift",
        "SSpec/SessionSpec.swift",
        "SSpec/VersionSpec.swift",
        "SSpecTests.swift"
      ],
      "target_dependencies" : [
        "SSpec"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SSpec",
      "module_type" : "SwiftTarget",
      "name" : "SSpec",
      "path" : "Sources/SSpec",
      "product_dependencies" : [
        "Rainbow",
        "Progress"
      ],
      "product_memberships" : [
        "SSpec"
      ],
      "sources" : [
        "Collectors/DotReporter.swift",
        "Collectors/ProgressReporter.swift",
        "Collectors/Reporter.swift",
        "Collectors/SpecReporter.swift",
        "Collectors/TimeTaken.swift",
        "Collectors/Welcomer.swift",
        "Expectations/Array.swift",
        "Expectations/Bool.swift",
        "Expectations/Change.swift",
        "Expectations/Comparable.swift",
        "Expectations/Equatable.swift",
        "Expectations/Generic.swift",
        "Expectations/String.swift",
        "Expectations/ToString.swift",
        "SSpec.swift",
        "Session/Events.swift",
        "Session/Session.swift",
        "Session/Tree.swift",
        "Tree/After.swift",
        "Tree/Before.swift",
        "Tree/Describe.swift",
        "Tree/Example.swift",
        "Tree/IdGenerator.swift",
        "Tree/Node.swift",
        "Tree/Root.swift",
        "Version.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "4.0"
}
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/4] Write sources
[3/4] Write swift-version-2F0A5646E1D333AE.txt
[5/19] Compiling Progress Progress.swift
[6/19] Compiling Progress ProgressElements.swift
[7/19] Emitting module Progress
[8/19] Compiling Progress Utilities.swift
[9/19] Compiling Rainbow Style.swift
[10/20] Compiling Rainbow XcodeColorsSupport.swift
[11/20] Compiling Rainbow Rainbow.swift
[12/20] Compiling Rainbow StringGenerator.swift
[13/20] Compiling Rainbow String+Rainbow.swift
[14/20] Compiling Rainbow ControlCode.swift
[15/20] Compiling Rainbow Color.swift
[16/20] Compiling Rainbow BackgroundColor.swift
[17/20] Compiling Rainbow CodesParser.swift
[18/20] Compiling Rainbow ModesExtractor.swift
[19/20] Compiling Rainbow OutputTarget.swift
[20/20] Emitting module Rainbow
[21/45] Emitting module SSpec
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Expectations/Array.swift:18:32: warning: use of protocol 'Equatable' as a type must be written 'any Equatable'; this will be an error in a future Swift language mode
16 |
17 | /// Expectations for equatable arrays.
18 | extension SSExpect where T == [Equatable] {
   |                                `- warning: use of protocol 'Equatable' as a type must be written 'any Equatable'; this will be an error in a future Swift language mode
19 |   private func areEqual<X: Equatable>(_ a: T?, _ b: [X]) -> Bool {
20 |     guard let A = a as? [X] else { return false }
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/SSpec.swift:15:22: warning: static property '_currentSession' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |   }
14 |
15 |   private static var _currentSession: SSSession?
   |                      |- warning: static property '_currentSession' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert '_currentSession' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property '_currentSession' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |
17 |   /// Current session.
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/SSpec.swift:21:14: warning: static property 'reporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 |   /// Current reporter.
21 |   static var reporter: Reporter = .Dot
   |              |- warning: static property 'reporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: convert 'reporter' to a 'let' constant to make 'Sendable' shared state immutable
   |              |- note: add '@MainActor' to make static property 'reporter' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |
23 |   /// You use this method only once for running sessions.
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/IdGenerator.swift:3:22: warning: static property 'lastId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 1 | /// Consequtive id generator.
 2 | struct IdGenerator {
 3 |   private static var lastId: Int = 0
   |                      |- warning: static property 'lastId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert 'lastId' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property 'lastId' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 4 |
 5 |   static var nextId: Int {
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:4:14: 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
  2 | class Node: Equatable, Hashable {
  3 |   /// Current node: used for running examples.
  4 |   static var current: Node? = nil
    |              |- 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
  5 |
  6 |   /// Equatable implementation.
[22/47] Compiling SSpec String.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/SSpec.swift:15:22: warning: static property '_currentSession' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |   }
14 |
15 |   private static var _currentSession: SSSession?
   |                      |- warning: static property '_currentSession' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert '_currentSession' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property '_currentSession' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |
17 |   /// Current session.
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/SSpec.swift:21:14: warning: static property 'reporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 |   /// Current reporter.
21 |   static var reporter: Reporter = .Dot
   |              |- warning: static property 'reporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: convert 'reporter' to a 'let' constant to make 'Sendable' shared state immutable
   |              |- note: add '@MainActor' to make static property 'reporter' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |
23 |   /// You use this method only once for running sessions.
[23/47] Compiling SSpec ToString.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/SSpec.swift:15:22: warning: static property '_currentSession' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |   }
14 |
15 |   private static var _currentSession: SSSession?
   |                      |- warning: static property '_currentSession' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert '_currentSession' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property '_currentSession' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |
17 |   /// Current session.
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/SSpec.swift:21:14: warning: static property 'reporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 |   /// Current reporter.
21 |   static var reporter: Reporter = .Dot
   |              |- warning: static property 'reporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: convert 'reporter' to a 'let' constant to make 'Sendable' shared state immutable
   |              |- note: add '@MainActor' to make static property 'reporter' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |
23 |   /// You use this method only once for running sessions.
[24/47] Compiling SSpec SSpec.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/SSpec.swift:15:22: warning: static property '_currentSession' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |   }
14 |
15 |   private static var _currentSession: SSSession?
   |                      |- warning: static property '_currentSession' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert '_currentSession' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property '_currentSession' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |
17 |   /// Current session.
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/SSpec.swift:21:14: warning: static property 'reporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 |   /// Current reporter.
21 |   static var reporter: Reporter = .Dot
   |              |- warning: static property 'reporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: convert 'reporter' to a 'let' constant to make 'Sendable' shared state immutable
   |              |- note: add '@MainActor' to make static property 'reporter' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |
23 |   /// You use this method only once for running sessions.
[25/47] Compiling SSpec SpecReporter.swift
[26/47] Compiling SSpec TimeTaken.swift
[27/47] Compiling SSpec Welcomer.swift
[28/47] Compiling SSpec Events.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
[29/47] Compiling SSpec Session.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
[30/47] Compiling SSpec Tree.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
[31/47] Compiling SSpec Array.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Expectations/Array.swift:18:32: warning: use of protocol 'Equatable' as a type must be written 'any Equatable'; this will be an error in a future Swift language mode
16 |
17 | /// Expectations for equatable arrays.
18 | extension SSExpect where T == [Equatable] {
   |                                `- warning: use of protocol 'Equatable' as a type must be written 'any Equatable'; this will be an error in a future Swift language mode
19 |   private func areEqual<X: Equatable>(_ a: T?, _ b: [X]) -> Bool {
20 |     guard let A = a as? [X] else { return false }
[32/47] Compiling SSpec Bool.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Expectations/Array.swift:18:32: warning: use of protocol 'Equatable' as a type must be written 'any Equatable'; this will be an error in a future Swift language mode
16 |
17 | /// Expectations for equatable arrays.
18 | extension SSExpect where T == [Equatable] {
   |                                `- warning: use of protocol 'Equatable' as a type must be written 'any Equatable'; this will be an error in a future Swift language mode
19 |   private func areEqual<X: Equatable>(_ a: T?, _ b: [X]) -> Bool {
20 |     guard let A = a as? [X] else { return false }
[33/47] Compiling SSpec Change.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Expectations/Array.swift:18:32: warning: use of protocol 'Equatable' as a type must be written 'any Equatable'; this will be an error in a future Swift language mode
16 |
17 | /// Expectations for equatable arrays.
18 | extension SSExpect where T == [Equatable] {
   |                                `- warning: use of protocol 'Equatable' as a type must be written 'any Equatable'; this will be an error in a future Swift language mode
19 |   private func areEqual<X: Equatable>(_ a: T?, _ b: [X]) -> Bool {
20 |     guard let A = a as? [X] else { return false }
[34/47] Compiling SSpec Describe.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
[35/47] Compiling SSpec Example.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
[36/47] Compiling SSpec Comparable.swift
[37/47] Compiling SSpec Equatable.swift
[38/47] Compiling SSpec Generic.swift
[39/47] Compiling SSpec After.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
[40/47] Compiling SSpec Before.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
[41/47] Compiling SSpec IdGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/IdGenerator.swift:3:22: warning: static property 'lastId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 1 | /// Consequtive id generator.
 2 | struct IdGenerator {
 3 |   private static var lastId: Int = 0
   |                      |- warning: static property 'lastId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert 'lastId' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property 'lastId' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 4 |
 5 |   static var nextId: Int {
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:4:14: 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
  2 | class Node: Equatable, Hashable {
  3 |   /// Current node: used for running examples.
  4 |   static var current: Node? = nil
    |              |- 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
  5 |
  6 |   /// Equatable implementation.
[42/47] Compiling SSpec Node.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/IdGenerator.swift:3:22: warning: static property 'lastId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 1 | /// Consequtive id generator.
 2 | struct IdGenerator {
 3 |   private static var lastId: Int = 0
   |                      |- warning: static property 'lastId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert 'lastId' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property 'lastId' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 4 |
 5 |   static var nextId: Int {
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:4:14: 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
  2 | class Node: Equatable, Hashable {
  3 |   /// Current node: used for running examples.
  4 |   static var current: Node? = nil
    |              |- 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
  5 |
  6 |   /// Equatable implementation.
[43/47] Compiling SSpec DotReporter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
[44/47] Compiling SSpec ProgressReporter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
[45/47] Compiling SSpec Reporter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
[46/47] Compiling SSpec Root.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
[47/47] Compiling SSpec Version.swift
/Users/admin/builder/spi-builder-workspace/Sources/SSpec/Tree/Node.swift:52:7: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 50 |   }
 51 |
 52 |   var hashValue: Int {
    |       `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Node' to 'Hashable' by implementing 'hash(into:)' instead
 53 |     return id
 54 |   }
Build complete! (8.60s)
Updating https://github.com/jkandzi/Progress.swift
Updating https://github.com/onevcat/Rainbow
Updated https://github.com/jkandzi/Progress.swift (0.43s)
Updated https://github.com/onevcat/Rainbow (0.43s)
Computing version for https://github.com/jkandzi/Progress.swift
Computed https://github.com/jkandzi/Progress.swift at 0.4.0 (1.05s)
Computing version for https://github.com/onevcat/Rainbow
Computed https://github.com/onevcat/Rainbow at 3.2.0 (0.58s)
Creating working copy for https://github.com/jkandzi/Progress.swift
Working copy of https://github.com/jkandzi/Progress.swift resolved at 0.4.0
Creating working copy for https://github.com/onevcat/Rainbow
Working copy of https://github.com/onevcat/Rainbow resolved at 3.2.0
Build complete.
{
  "dependencies" : [
    {
      "identity" : "rainbow",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.0.0",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/onevcat/Rainbow"
    },
    {
      "identity" : "progress.swift",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.3.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/jkandzi/Progress.swift"
    }
  ],
  "manifest_display_name" : "SSpec",
  "name" : "SSpec",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "SSpec",
      "targets" : [
        "SSpec"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SSpecTests",
      "module_type" : "SwiftTarget",
      "name" : "SSpecTests",
      "path" : "Tests/SSpecTests",
      "sources" : [
        "Extensions/DummyExtension.swift",
        "General/ArraySpec.swift",
        "General/BeforeAfterSpec.swift",
        "General/BoolSpec.swift",
        "General/EquatableSpec.swift",
        "General/NilableSpec.swift",
        "General/StringSpec.swift",
        "SSpec/ExtensionSpec.swift",
        "SSpec/NodeSpec.swift",
        "SSpec/SessionSpec.swift",
        "SSpec/VersionSpec.swift",
        "SSpecTests.swift"
      ],
      "target_dependencies" : [
        "SSpec"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SSpec",
      "module_type" : "SwiftTarget",
      "name" : "SSpec",
      "path" : "Sources/SSpec",
      "product_dependencies" : [
        "Rainbow",
        "Progress"
      ],
      "product_memberships" : [
        "SSpec"
      ],
      "sources" : [
        "Collectors/DotReporter.swift",
        "Collectors/ProgressReporter.swift",
        "Collectors/Reporter.swift",
        "Collectors/SpecReporter.swift",
        "Collectors/TimeTaken.swift",
        "Collectors/Welcomer.swift",
        "Expectations/Array.swift",
        "Expectations/Bool.swift",
        "Expectations/Change.swift",
        "Expectations/Comparable.swift",
        "Expectations/Equatable.swift",
        "Expectations/Generic.swift",
        "Expectations/String.swift",
        "Expectations/ToString.swift",
        "SSpec.swift",
        "Session/Events.swift",
        "Session/Session.swift",
        "Session/Tree.swift",
        "Tree/After.swift",
        "Tree/Before.swift",
        "Tree/Describe.swift",
        "Tree/Example.swift",
        "Tree/IdGenerator.swift",
        "Tree/Node.swift",
        "Tree/Root.swift",
        "Version.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "4.0"
}
Done.