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 Tentacle, reference master (fe0afe), with Swift 6.0 for macOS (SPM) on 1 Nov 2024 04:57:21 UTC.

Swift 6 data race errors: 3

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/mdiep/Tentacle.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/mdiep/Tentacle
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at fe0afec Merge pull request #115 from mdiep/ep/remove-deprecated-scanner
Submodule path 'Carthage/Checkouts/ReactiveSwift': checked out '40c465af19b993344e84355c00669ba2022ca3cd'
Submodule path 'Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/Nimble': checked out 'c93f16c25af5770f0d3e6af27c9634640946b068'
Submodule path 'Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/Quick': checked out 'bd86ca0141e3cfb333546de5a11ede63f0c4a0e6'
Submodule path 'Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/Quick/Externals/Nimble': checked out 'd258c638d9ef214723a857a23f4113773aad28fb'
Submodule path 'Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/xcconfigs': checked out '4ced0ad5a971220917994a4edfa6abf9702e3818'
Submodule 'Carthage/Checkouts/ReactiveSwift' (https://github.com/ReactiveCocoa/ReactiveSwift.git) registered for path 'Carthage/Checkouts/ReactiveSwift'
Cloning into '/Users/admin/builder/spi-builder-workspace/Carthage/Checkouts/ReactiveSwift'...
Submodule 'Carthage/Checkouts/Nimble' (https://github.com/Quick/Nimble.git) registered for path 'Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/Nimble'
Submodule 'Carthage/Checkouts/Quick' (https://github.com/Quick/Quick.git) registered for path 'Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/Quick'
Submodule 'Carthage/Checkouts/xcconfigs' (https://github.com/xcconfigs/xcconfigs.git) registered for path 'Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/xcconfigs'
Cloning into '/Users/admin/builder/spi-builder-workspace/Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/Nimble'...
Cloning into '/Users/admin/builder/spi-builder-workspace/Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/Quick'...
Cloning into '/Users/admin/builder/spi-builder-workspace/Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/xcconfigs'...
Submodule 'Externals/Nimble' (https://github.com/Quick/Nimble.git) registered for path 'Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/Quick/Externals/Nimble'
Cloning into '/Users/admin/builder/spi-builder-workspace/Carthage/Checkouts/ReactiveSwift/Carthage/Checkouts/Quick/Externals/Nimble'...
Cloned https://github.com/mdiep/Tentacle.git
Revision (git rev-parse @):
fe0afec960dc86d9fcbc8233ea0d66b54176cffa
SUCCESS checkout https://github.com/mdiep/Tentacle.git at master
Fetching https://github.com/ReactiveCocoa/ReactiveSwift.git
[1/52438] Fetching reactiveswift
Fetched https://github.com/ReactiveCocoa/ReactiveSwift.git from cache (2.45s)
Computing version for https://github.com/ReactiveCocoa/ReactiveSwift.git
Computed https://github.com/ReactiveCocoa/ReactiveSwift.git at 7.1.1 (0.71s)
Creating working copy for https://github.com/ReactiveCocoa/ReactiveSwift.git
Working copy of https://github.com/ReactiveCocoa/ReactiveSwift.git resolved at 7.1.1
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "tentacle",
      "name": "Tentacle",
      "url": "https://github.com/mdiep/Tentacle.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Tentacle",
      "dependencies": [
        {
          "identity": "reactiveswift",
          "name": "ReactiveSwift",
          "url": "https://github.com/ReactiveCocoa/ReactiveSwift.git",
          "version": "7.1.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/ReactiveSwift",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/mdiep/Tentacle.git
[1/3733] Fetching tentacle
Fetched https://github.com/mdiep/Tentacle.git from cache (1.31s)
Fetching https://github.com/ReactiveCocoa/ReactiveSwift.git from cache
Fetched https://github.com/ReactiveCocoa/ReactiveSwift.git from cache (0.61s)
Computing version for https://github.com/ReactiveCocoa/ReactiveSwift.git
Computed https://github.com/ReactiveCocoa/ReactiveSwift.git at 7.1.1 (0.02s)
Creating working copy for https://github.com/mdiep/Tentacle.git
Working copy of https://github.com/mdiep/Tentacle.git resolved at master (fe0afec)
Creating working copy for https://github.com/ReactiveCocoa/ReactiveSwift.git
Working copy of https://github.com/ReactiveCocoa/ReactiveSwift.git resolved at 7.1.1
warning: '.resolve-product-dependencies': dependency 'tentacle' is not used by any target
Found 1 product dependencies
  - ReactiveSwift
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/mdiep/Tentacle.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun 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--7754E27361AE5C74.txt
[4/50] Emitting module ReactiveSwift
[5/55] Compiling ReactiveSwift Map.swift
[6/55] Compiling ReactiveSwift MapError.swift
[7/55] Compiling ReactiveSwift Materialize.swift
[8/55] Compiling ReactiveSwift MaterializeAsResult.swift
[9/55] Compiling ReactiveSwift ObserveOn.swift
[10/55] Compiling ReactiveSwift SkipRepeats.swift
[11/55] Compiling ReactiveSwift SkipWhile.swift
[12/55] Compiling ReactiveSwift TakeFirst.swift
[13/55] Compiling ReactiveSwift TakeLast.swift
[14/55] Compiling ReactiveSwift TakeUntil.swift
[15/55] Compiling ReactiveSwift TakeWhile.swift
[16/55] Compiling ReactiveSwift Throttle.swift
[17/55] Compiling ReactiveSwift UnaryAsyncOperator.swift
[18/55] Compiling ReactiveSwift UniqueValues.swift
[19/55] Compiling ReactiveSwift Optional.swift
[20/55] Compiling ReactiveSwift Delay.swift
[21/55] Compiling ReactiveSwift Dematerialize.swift
[22/55] Compiling ReactiveSwift DematerializeResults.swift
[23/55] Compiling ReactiveSwift Filter.swift
[24/55] Compiling ReactiveSwift LazyMap.swift
[25/55] Compiling ReactiveSwift Observer.swift
[26/55] Compiling ReactiveSwift Operators.swift
[27/55] Compiling ReactiveSwift Reduce.swift
[28/55] Compiling ReactiveSwift ScanMap.swift
[29/55] Compiling ReactiveSwift SkipFirst.swift
[30/55] Compiling ReactiveSwift Property.swift
[31/55] Compiling ReactiveSwift Reactive.swift
[32/55] Compiling ReactiveSwift ResultExtensions.swift
[33/55] Compiling ReactiveSwift Scheduler.swift
[34/55] Compiling ReactiveSwift Signal.Observer.swift
[35/55] Compiling ReactiveSwift Collect.swift
[36/55] Compiling ReactiveSwift CollectEvery.swift
[37/55] Compiling ReactiveSwift CombinePrevious.swift
[38/55] Compiling ReactiveSwift CompactMap.swift
[39/55] Compiling ReactiveSwift Debounce.swift
[40/55] Compiling ReactiveSwift EventLogger.swift
[41/55] Compiling ReactiveSwift Flatten.swift
[42/55] Compiling ReactiveSwift FoundationExtensions.swift
[43/55] Compiling ReactiveSwift Lifetime.swift
[44/55] Compiling ReactiveSwift AttemptMap.swift
[45/55] Compiling ReactiveSwift Action.swift
[46/55] Compiling ReactiveSwift Atomic.swift
[47/55] Compiling ReactiveSwift Bag.swift
[48/55] Compiling ReactiveSwift Deprecations+Removals.swift
[49/55] Compiling ReactiveSwift Disposable.swift
[50/55] Compiling ReactiveSwift Event.swift
[51/55] Compiling ReactiveSwift Signal.swift
[52/55] Compiling ReactiveSwift SignalProducer.swift
[53/55] Compiling ReactiveSwift UnidirectionalBinding.swift
[54/55] Compiling ReactiveSwift UninhabitedTypeGuards.swift
[55/55] Compiling ReactiveSwift ValidatingProperty.swift
[56/83] Compiling Tentacle Response.swift
[57/83] Compiling Tentacle Server.swift
[58/83] Compiling Tentacle Sha.swift
[59/85] Compiling Tentacle Label.swift
[60/85] Compiling Tentacle Milestone.swift
[61/85] Compiling Tentacle Organization.swift
[62/85] Compiling Tentacle FileResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/FoundationExtensions.swift:12:32: warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension DateFormatter {
12 |     @nonobjc public static var iso8601: DateFormatter = {
   |                                |- warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                                |- note: convert 'iso8601' to a 'let' constant to make 'Sendable' shared state immutable
   |                                |- note: annotate 'iso8601' 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
13 |         let formatter = DateFormatter()
14 |         formatter.locale = Locale(identifier:"en_US_POSIX")
[63/85] Compiling Tentacle FoundationExtensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/FoundationExtensions.swift:12:32: warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension DateFormatter {
12 |     @nonobjc public static var iso8601: DateFormatter = {
   |                                |- warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                                |- note: convert 'iso8601' to a 'let' constant to make 'Sendable' shared state immutable
   |                                |- note: annotate 'iso8601' 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
13 |         let formatter = DateFormatter()
14 |         formatter.locale = Locale(identifier:"en_US_POSIX")
[64/85] Compiling Tentacle GitHubError.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/FoundationExtensions.swift:12:32: warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension DateFormatter {
12 |     @nonobjc public static var iso8601: DateFormatter = {
   |                                |- warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                                |- note: convert 'iso8601' to a 'let' constant to make 'Sendable' shared state immutable
   |                                |- note: annotate 'iso8601' 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
13 |         let formatter = DateFormatter()
14 |         formatter.locale = Locale(identifier:"en_US_POSIX")
[65/85] Compiling Tentacle Identifiable.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/JSONExtensions.swift:27:1: warning: extension declares a conformance of imported type 'Context' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
25 | }
26 |
27 | extension DecodingError.Context: Equatable {
   | |- warning: extension declares a conformance of imported type 'Context' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
28 |     public static func ==(lhs: DecodingError.Context, rhs: DecodingError.Context) -> Bool {
29 |         return lhs.debugDescription == rhs.debugDescription
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/JSONExtensions.swift:33:1: warning: extension declares a conformance of imported type 'DecodingError' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
31 | }
32 |
33 | extension DecodingError: Equatable {
   | |- warning: extension declares a conformance of imported type 'DecodingError' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
34 |     public static func ==(lhs: DecodingError, rhs: DecodingError) -> Bool {
35 |         switch (lhs, rhs) {
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/FoundationExtensions.swift:12:32: warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension DateFormatter {
12 |     @nonobjc public static var iso8601: DateFormatter = {
   |                                |- warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                                |- note: convert 'iso8601' to a 'let' constant to make 'Sendable' shared state immutable
   |                                |- note: annotate 'iso8601' 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
13 |         let formatter = DateFormatter()
14 |         formatter.locale = Locale(identifier:"en_US_POSIX")
[66/85] Compiling Tentacle Issue.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/JSONExtensions.swift:27:1: warning: extension declares a conformance of imported type 'Context' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
25 | }
26 |
27 | extension DecodingError.Context: Equatable {
   | |- warning: extension declares a conformance of imported type 'Context' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
28 |     public static func ==(lhs: DecodingError.Context, rhs: DecodingError.Context) -> Bool {
29 |         return lhs.debugDescription == rhs.debugDescription
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/JSONExtensions.swift:33:1: warning: extension declares a conformance of imported type 'DecodingError' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
31 | }
32 |
33 | extension DecodingError: Equatable {
   | |- warning: extension declares a conformance of imported type 'DecodingError' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
34 |     public static func ==(lhs: DecodingError, rhs: DecodingError) -> Bool {
35 |         switch (lhs, rhs) {
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/FoundationExtensions.swift:12:32: warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension DateFormatter {
12 |     @nonobjc public static var iso8601: DateFormatter = {
   |                                |- warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                                |- note: convert 'iso8601' to a 'let' constant to make 'Sendable' shared state immutable
   |                                |- note: annotate 'iso8601' 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
13 |         let formatter = DateFormatter()
14 |         formatter.locale = Locale(identifier:"en_US_POSIX")
[67/85] Compiling Tentacle JSONExtensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/JSONExtensions.swift:27:1: warning: extension declares a conformance of imported type 'Context' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
25 | }
26 |
27 | extension DecodingError.Context: Equatable {
   | |- warning: extension declares a conformance of imported type 'Context' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
28 |     public static func ==(lhs: DecodingError.Context, rhs: DecodingError.Context) -> Bool {
29 |         return lhs.debugDescription == rhs.debugDescription
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/JSONExtensions.swift:33:1: warning: extension declares a conformance of imported type 'DecodingError' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
31 | }
32 |
33 | extension DecodingError: Equatable {
   | |- warning: extension declares a conformance of imported type 'DecodingError' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
34 |     public static func ==(lhs: DecodingError, rhs: DecodingError) -> Bool {
35 |         switch (lhs, rhs) {
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/FoundationExtensions.swift:12:32: warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension DateFormatter {
12 |     @nonobjc public static var iso8601: DateFormatter = {
   |                                |- warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                                |- note: convert 'iso8601' to a 'let' constant to make 'Sendable' shared state immutable
   |                                |- note: annotate 'iso8601' 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
13 |         let formatter = DateFormatter()
14 |         formatter.locale = Locale(identifier:"en_US_POSIX")
[68/85] Compiling Tentacle Commit.swift
[69/85] Compiling Tentacle Content.swift
[70/85] Compiling Tentacle File.swift
[71/85] Compiling Tentacle RepositoryInfo.swift
[72/85] Compiling Tentacle Request.swift
[73/85] Compiling Tentacle ResourceType.swift
[74/85] Emitting module Tentacle
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:85:14: warning: associated value 'apiError' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Response'; this is an error in the Swift 6 language mode
 83 |
 84 |         /// A status code, response, and error that was returned from the API.
 85 |         case apiError(Int, Response, GitHubError)
    |              `- warning: associated value 'apiError' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Response'; this is an error in the Swift 6 language mode
 86 |
 87 |         /// The requested object does not exist.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Response.swift:38:15: note: consider making struct 'Response' conform to the 'Sendable' protocol
36 |
37 | /// A response from the GitHub API.
38 | public struct Response: Hashable {
   |               `- note: consider making struct 'Response' conform to the 'Sendable' protocol
39 |     /// The number of requests remaining in the current rate limit window, or nil if the server
40 |     /// isn't rate-limited.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:109:23: warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
107 |
108 |     /// The user-agent to use for API requests.
109 |     public static var userAgent: String?
    |                       |- warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'userAgent' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'userAgent' 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
110 |
111 |     /// The Server that the Client connects to.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/FoundationExtensions.swift:12:32: warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension DateFormatter {
12 |     @nonobjc public static var iso8601: DateFormatter = {
   |                                |- warning: static property 'iso8601' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                                |- note: convert 'iso8601' to a 'let' constant to make 'Sendable' shared state immutable
   |                                |- note: annotate 'iso8601' 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
13 |         let formatter = DateFormatter()
14 |         formatter.locale = Locale(identifier:"en_US_POSIX")
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/JSONExtensions.swift:27:1: warning: extension declares a conformance of imported type 'Context' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
25 | }
26 |
27 | extension DecodingError.Context: Equatable {
   | |- warning: extension declares a conformance of imported type 'Context' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
28 |     public static func ==(lhs: DecodingError.Context, rhs: DecodingError.Context) -> Bool {
29 |         return lhs.debugDescription == rhs.debugDescription
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/JSONExtensions.swift:33:1: warning: extension declares a conformance of imported type 'DecodingError' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
31 | }
32 |
33 | extension DecodingError: Equatable {
   | |- warning: extension declares a conformance of imported type 'DecodingError' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
34 |     public static func ==(lhs: DecodingError, rhs: DecodingError) -> Bool {
35 |         switch (lhs, rhs) {
[75/85] Compiling Tentacle Tree.swift
[76/85] Compiling Tentacle User.swift
[77/85] Compiling Tentacle PullRequest.swift
[78/85] Compiling Tentacle Release.swift
[79/85] Compiling Tentacle Repository.swift
[80/85] Compiling Tentacle Author.swift
[81/85] Compiling Tentacle Availability.swift
[82/85] Compiling Tentacle Branch.swift
[83/85] Compiling Tentacle Client.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:85:14: warning: associated value 'apiError' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Response'; this is an error in the Swift 6 language mode
 83 |
 84 |         /// A status code, response, and error that was returned from the API.
 85 |         case apiError(Int, Response, GitHubError)
    |              `- warning: associated value 'apiError' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Response'; this is an error in the Swift 6 language mode
 86 |
 87 |         /// The requested object does not exist.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Response.swift:38:15: note: consider making struct 'Response' conform to the 'Sendable' protocol
36 |
37 | /// A response from the GitHub API.
38 | public struct Response: Hashable {
   |               `- note: consider making struct 'Response' conform to the 'Sendable' protocol
39 |     /// The number of requests remaining in the current rate limit window, or nil if the server
40 |     /// isn't rate-limited.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:109:23: warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
107 |
108 |     /// The user-agent to use for API requests.
109 |     public static var userAgent: String?
    |                       |- warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'userAgent' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'userAgent' 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
110 |
111 |     /// The Server that the Client connects to.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:43:5: warning: capture of 'handle' with non-sendable type '(any Disposable)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 41 | 			let task = self.downloadTask(with: request) { (url, response, error) in
 42 | 				// Avoid invoking cancel(), or the download may be deleted.
 43 | 				handle?.dispose()
    |     `- warning: capture of 'handle' with non-sendable type '(any Disposable)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 44 |
 45 | 				if let url = url {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/ReactiveSwift/Sources/Disposable.swift:11:17: note: protocol 'Disposable' does not conform to the 'Sendable' protocol
  9 | /// Represents something that can be “disposed”, usually associated with freeing
 10 | /// resources or canceling work.
 11 | public protocol Disposable: AnyObject {
    |                 `- note: protocol 'Disposable' does not conform to the 'Sendable' protocol
 12 | 	/// Whether this disposable has been disposed already.
 13 | 	var isDisposed: Bool { get }
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ReactiveSwift'
  8 |
  9 | import Foundation
 10 | import ReactiveSwift
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ReactiveSwift'
 11 |
 12 | extension URL {
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:46:6: warning: capture of 'observer' with non-sendable type 'Signal<URL, any Error>.Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 44 |
 45 | 				if let url = url {
 46 | 					observer.send(value: url)
    |      `- warning: capture of 'observer' with non-sendable type 'Signal<URL, any Error>.Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 47 | 					observer.sendCompleted()
 48 | 				} else if let error = error {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/ReactiveSwift/Sources/Signal.Observer.swift:12:21: note: class 'Observer' does not conform to the 'Sendable' protocol
 10 | 	/// An Observer is a simple wrapper around a function which can receive Events
 11 | 	/// (typically from a Signal).
 12 | 	public final class Observer: ReactiveSwift.Observer<Value, Error> {
    |                     `- note: class 'Observer' does not conform to the 'Sendable' protocol
 13 | 		public typealias Action = (Event) -> Void
 14 | 		private let _send: Action
[84/85] Compiling Tentacle Color.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:85:14: warning: associated value 'apiError' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Response'; this is an error in the Swift 6 language mode
 83 |
 84 |         /// A status code, response, and error that was returned from the API.
 85 |         case apiError(Int, Response, GitHubError)
    |              `- warning: associated value 'apiError' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Response'; this is an error in the Swift 6 language mode
 86 |
 87 |         /// The requested object does not exist.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Response.swift:38:15: note: consider making struct 'Response' conform to the 'Sendable' protocol
36 |
37 | /// A response from the GitHub API.
38 | public struct Response: Hashable {
   |               `- note: consider making struct 'Response' conform to the 'Sendable' protocol
39 |     /// The number of requests remaining in the current rate limit window, or nil if the server
40 |     /// isn't rate-limited.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:109:23: warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
107 |
108 |     /// The user-agent to use for API requests.
109 |     public static var userAgent: String?
    |                       |- warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'userAgent' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'userAgent' 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
110 |
111 |     /// The Server that the Client connects to.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:43:5: warning: capture of 'handle' with non-sendable type '(any Disposable)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 41 | 			let task = self.downloadTask(with: request) { (url, response, error) in
 42 | 				// Avoid invoking cancel(), or the download may be deleted.
 43 | 				handle?.dispose()
    |     `- warning: capture of 'handle' with non-sendable type '(any Disposable)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 44 |
 45 | 				if let url = url {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/ReactiveSwift/Sources/Disposable.swift:11:17: note: protocol 'Disposable' does not conform to the 'Sendable' protocol
  9 | /// Represents something that can be “disposed”, usually associated with freeing
 10 | /// resources or canceling work.
 11 | public protocol Disposable: AnyObject {
    |                 `- note: protocol 'Disposable' does not conform to the 'Sendable' protocol
 12 | 	/// Whether this disposable has been disposed already.
 13 | 	var isDisposed: Bool { get }
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ReactiveSwift'
  8 |
  9 | import Foundation
 10 | import ReactiveSwift
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ReactiveSwift'
 11 |
 12 | extension URL {
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:46:6: warning: capture of 'observer' with non-sendable type 'Signal<URL, any Error>.Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 44 |
 45 | 				if let url = url {
 46 | 					observer.send(value: url)
    |      `- warning: capture of 'observer' with non-sendable type 'Signal<URL, any Error>.Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 47 | 					observer.sendCompleted()
 48 | 				} else if let error = error {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/ReactiveSwift/Sources/Signal.Observer.swift:12:21: note: class 'Observer' does not conform to the 'Sendable' protocol
 10 | 	/// An Observer is a simple wrapper around a function which can receive Events
 11 | 	/// (typically from a Signal).
 12 | 	public final class Observer: ReactiveSwift.Observer<Value, Error> {
    |                     `- note: class 'Observer' does not conform to the 'Sendable' protocol
 13 | 		public typealias Action = (Event) -> Void
 14 | 		private let _send: Action
[85/85] Compiling Tentacle Comment.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:85:14: warning: associated value 'apiError' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Response'; this is an error in the Swift 6 language mode
 83 |
 84 |         /// A status code, response, and error that was returned from the API.
 85 |         case apiError(Int, Response, GitHubError)
    |              `- warning: associated value 'apiError' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Response'; this is an error in the Swift 6 language mode
 86 |
 87 |         /// The requested object does not exist.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Response.swift:38:15: note: consider making struct 'Response' conform to the 'Sendable' protocol
36 |
37 | /// A response from the GitHub API.
38 | public struct Response: Hashable {
   |               `- note: consider making struct 'Response' conform to the 'Sendable' protocol
39 |     /// The number of requests remaining in the current rate limit window, or nil if the server
40 |     /// isn't rate-limited.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:109:23: warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
107 |
108 |     /// The user-agent to use for API requests.
109 |     public static var userAgent: String?
    |                       |- warning: static property 'userAgent' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'userAgent' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'userAgent' 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
110 |
111 |     /// The Server that the Client connects to.
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:43:5: warning: capture of 'handle' with non-sendable type '(any Disposable)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 41 | 			let task = self.downloadTask(with: request) { (url, response, error) in
 42 | 				// Avoid invoking cancel(), or the download may be deleted.
 43 | 				handle?.dispose()
    |     `- warning: capture of 'handle' with non-sendable type '(any Disposable)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 44 |
 45 | 				if let url = url {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/ReactiveSwift/Sources/Disposable.swift:11:17: note: protocol 'Disposable' does not conform to the 'Sendable' protocol
  9 | /// Represents something that can be “disposed”, usually associated with freeing
 10 | /// resources or canceling work.
 11 | public protocol Disposable: AnyObject {
    |                 `- note: protocol 'Disposable' does not conform to the 'Sendable' protocol
 12 | 	/// Whether this disposable has been disposed already.
 13 | 	var isDisposed: Bool { get }
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ReactiveSwift'
  8 |
  9 | import Foundation
 10 | import ReactiveSwift
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ReactiveSwift'
 11 |
 12 | extension URL {
/Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Client.swift:46:6: warning: capture of 'observer' with non-sendable type 'Signal<URL, any Error>.Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 44 |
 45 | 				if let url = url {
 46 | 					observer.send(value: url)
    |      `- warning: capture of 'observer' with non-sendable type 'Signal<URL, any Error>.Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 47 | 					observer.sendCompleted()
 48 | 				} else if let error = error {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/ReactiveSwift/Sources/Signal.Observer.swift:12:21: note: class 'Observer' does not conform to the 'Sendable' protocol
 10 | 	/// An Observer is a simple wrapper around a function which can receive Events
 11 | 	/// (typically from a Signal).
 12 | 	public final class Observer: ReactiveSwift.Observer<Value, Error> {
    |                     `- note: class 'Observer' does not conform to the 'Sendable' protocol
 13 | 		public typealias Action = (Event) -> Void
 14 | 		private let _send: Action
Build complete! (17.64s)
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/Sources/Tentacle/Info.plist
Build complete.
{
  "dependencies" : [
    {
      "identity" : "reactiveswift",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "7.1.1",
            "upper_bound" : "8.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/ReactiveCocoa/ReactiveSwift.git"
    }
  ],
  "manifest_display_name" : "Tentacle",
  "name" : "Tentacle",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Tentacle",
      "targets" : [
        "Tentacle"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "TentacleTests",
      "module_type" : "SwiftTarget",
      "name" : "TentacleTests",
      "path" : "Tests/TentacleTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/TentacleTests/Fixtures",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "BranchTests.swift",
        "ClientTests.swift",
        "ColorTests.swift",
        "CommentsTests.swift",
        "ContentTests.swift",
        "EndpointTests.swift",
        "FileResponseTests.swift",
        "FileTests.swift",
        "Fixture.swift",
        "GitHubErrorTests.swift",
        "HTTPStub.swift",
        "IssuesTests.swift",
        "ReleaseTests.swift",
        "RepositoryInfoTests.swift",
        "RepositoryTests.swift",
        "ResponseTests.swift",
        "ServerTests.swift",
        "TreeTests.swift",
        "UserTests.swift"
      ],
      "target_dependencies" : [
        "Tentacle"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Tentacle",
      "module_type" : "SwiftTarget",
      "name" : "Tentacle",
      "path" : "Sources/Tentacle",
      "product_dependencies" : [
        "ReactiveSwift"
      ],
      "product_memberships" : [
        "Tentacle"
      ],
      "sources" : [
        "Author.swift",
        "Availability.swift",
        "Branch.swift",
        "Client.swift",
        "Color.swift",
        "Comment.swift",
        "Commit.swift",
        "Content.swift",
        "File.swift",
        "FileResponse.swift",
        "FoundationExtensions.swift",
        "GitHubError.swift",
        "Identifiable.swift",
        "Issue.swift",
        "JSONExtensions.swift",
        "Label.swift",
        "Milestone.swift",
        "Organization.swift",
        "PullRequest.swift",
        "Release.swift",
        "Repository.swift",
        "RepositoryInfo.swift",
        "Request.swift",
        "ResourceType.swift",
        "Response.swift",
        "Server.swift",
        "Sha.swift",
        "Tree.swift",
        "User.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7.1"
}
Done.