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 InternetProtocols, reference 2.2.4 (2829d7), with Swift 6.0 for macOS (SPM) on 5 Nov 2024 15:02:37 UTC.

Swift 6 data race errors: 2

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/OperatorFoundation/InternetProtocols.git
Reference: 2.2.4
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/OperatorFoundation/InternetProtocols
 * tag               2.2.4      -> FETCH_HEAD
HEAD is now at 2829d78 Merge branch 'main' into release
Cloned https://github.com/OperatorFoundation/InternetProtocols.git
Revision (git rev-parse @):
2829d78866ae5fa9b62b3317c0eea4531ce0b01e
SUCCESS checkout https://github.com/OperatorFoundation/InternetProtocols.git at 2.2.4
Fetching https://github.com/OperatorFoundation/Net
Fetching https://github.com/OperatorFoundation/SwiftHexTools
Fetching https://github.com/OperatorFoundation/Datable
Fetching https://github.com/OperatorFoundation/Bits
[1/96] Fetching swifthextools
[97/218] Fetching swifthextools, bits
[219/617] Fetching swifthextools, bits, datable
[411/722] Fetching swifthextools, bits, datable, net
Fetched https://github.com/OperatorFoundation/Bits from cache (0.90s)
Fetched https://github.com/OperatorFoundation/Net from cache (0.90s)
Fetched https://github.com/OperatorFoundation/Datable from cache (0.90s)
Fetched https://github.com/OperatorFoundation/SwiftHexTools from cache (0.90s)
Computing version for https://github.com/OperatorFoundation/SwiftHexTools
Computed https://github.com/OperatorFoundation/SwiftHexTools at 1.2.6 (3.25s)
Computing version for https://github.com/OperatorFoundation/Datable
Computed https://github.com/OperatorFoundation/Datable at 4.0.1 (0.47s)
Computing version for https://github.com/OperatorFoundation/Bits
Computed https://github.com/OperatorFoundation/Bits at 2.0.4 (0.51s)
Computing version for https://github.com/OperatorFoundation/Net
Computed https://github.com/OperatorFoundation/Net at 0.0.11 (0.52s)
Creating working copy for https://github.com/OperatorFoundation/SwiftHexTools
Working copy of https://github.com/OperatorFoundation/SwiftHexTools resolved at 1.2.6
Creating working copy for https://github.com/OperatorFoundation/Bits
Working copy of https://github.com/OperatorFoundation/Bits resolved at 2.0.4
Creating working copy for https://github.com/OperatorFoundation/Datable
Working copy of https://github.com/OperatorFoundation/Datable resolved at 4.0.1
Creating working copy for https://github.com/OperatorFoundation/Net
Working copy of https://github.com/OperatorFoundation/Net resolved at 0.0.11
========================================
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": "internetprotocols",
      "name": "InternetProtocols",
      "url": "https://github.com/OperatorFoundation/InternetProtocols.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/InternetProtocols",
      "dependencies": [
        {
          "identity": "bits",
          "name": "Bits",
          "url": "https://github.com/OperatorFoundation/Bits",
          "version": "2.0.4",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Bits",
          "dependencies": [
            {
              "identity": "datable",
              "name": "Datable",
              "url": "https://github.com/OperatorFoundation/Datable",
              "version": "4.0.1",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Datable",
              "dependencies": [
              ]
            }
          ]
        },
        {
          "identity": "datable",
          "name": "Datable",
          "url": "https://github.com/OperatorFoundation/Datable",
          "version": "4.0.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Datable",
          "dependencies": [
          ]
        },
        {
          "identity": "net",
          "name": "Net",
          "url": "https://github.com/OperatorFoundation/Net",
          "version": "0.0.11",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Net",
          "dependencies": [
            {
              "identity": "datable",
              "name": "Datable",
              "url": "https://github.com/OperatorFoundation/Datable",
              "version": "4.0.1",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Datable",
              "dependencies": [
              ]
            }
          ]
        },
        {
          "identity": "swifthextools",
          "name": "SwiftHexTools",
          "url": "https://github.com/OperatorFoundation/SwiftHexTools",
          "version": "1.2.6",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftHexTools",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/OperatorFoundation/InternetProtocols.git
[1/467] Fetching internetprotocols
Fetched https://github.com/OperatorFoundation/InternetProtocols.git from cache (1.19s)
Fetching https://github.com/OperatorFoundation/SwiftHexTools from cache
Fetching https://github.com/OperatorFoundation/Bits from cache
Fetching https://github.com/OperatorFoundation/Net from cache
Fetching https://github.com/OperatorFoundation/Datable from cache
Fetched https://github.com/OperatorFoundation/Bits from cache (0.51s)
Fetched https://github.com/OperatorFoundation/SwiftHexTools from cache (0.51s)
Fetched https://github.com/OperatorFoundation/Datable from cache (0.51s)
Fetched https://github.com/OperatorFoundation/Net from cache (0.51s)
Computing version for https://github.com/OperatorFoundation/SwiftHexTools
Computed https://github.com/OperatorFoundation/SwiftHexTools at 1.2.6 (0.02s)
Computing version for https://github.com/OperatorFoundation/Datable
Computed https://github.com/OperatorFoundation/Datable at 4.0.1 (0.02s)
Computing version for https://github.com/OperatorFoundation/Bits
Computed https://github.com/OperatorFoundation/Bits at 2.0.4 (0.02s)
Computing version for https://github.com/OperatorFoundation/Net
Computed https://github.com/OperatorFoundation/Net at 0.0.11 (0.02s)
Creating working copy for https://github.com/OperatorFoundation/SwiftHexTools
Working copy of https://github.com/OperatorFoundation/SwiftHexTools resolved at 1.2.6
Creating working copy for https://github.com/OperatorFoundation/Datable
Working copy of https://github.com/OperatorFoundation/Datable resolved at 4.0.1
Creating working copy for https://github.com/OperatorFoundation/Bits
Working copy of https://github.com/OperatorFoundation/Bits resolved at 2.0.4
Creating working copy for https://github.com/OperatorFoundation/InternetProtocols.git
Working copy of https://github.com/OperatorFoundation/InternetProtocols.git resolved at 2.2.4 (2829d78)
Creating working copy for https://github.com/OperatorFoundation/Net
Working copy of https://github.com/OperatorFoundation/Net resolved at 0.0.11
warning: '.resolve-product-dependencies': dependency 'internetprotocols' is not used by any target
Found 4 product dependencies
  - Bits
  - Datable
  - Net
  - SwiftHexTools
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/OperatorFoundation/InternetProtocols.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/6] Write sources
[5/6] Write swift-version--7754E27361AE5C74.txt
[7/43] Emitting module Datable
[8/46] Compiling SwiftHexTools SwiftHexTools.swift
[9/46] Emitting module SwiftHexTools
[10/46] Compiling Datable String+Intable.swift
[11/46] Compiling Datable Stringable.swift
[12/46] Compiling Datable StringableArray+CSVable.swift
[13/46] Compiling Datable NetworkIntable.swift
[14/46] Compiling Datable String+Arrayable.swift
[15/46] Compiling Datable String+Datable.swift
[16/46] Compiling Datable Data+Datable.swift
[17/46] Compiling Datable Data+ExpressibleByStringLiteral.swift
[18/46] Compiling Datable Data+Floatable.swift
[19/46] Compiling Datable Data+MaybeIntable.swift
[20/46] Compiling Datable MaybeDatable.swift
[21/46] Compiling Datable MaybeIntable.swift
[22/46] Compiling Datable MaybeNetworkIntable.swift
[23/46] Compiling Datable NetworkDatable.swift
[24/46] Compiling Datable UInt+Datable.swift
[25/46] Compiling Datable UInt+MaybeNetworkDatable.swift
[26/46] Compiling Datable UInt+Stringable.swift
[27/46] Compiling Datable Int+MaybeDatable.swift
[28/46] Compiling Datable Int+MaybeIntable.swift
[29/46] Compiling Datable Int+Stringable.swift
[30/46] Compiling Datable Intable.swift
[31/46] Compiling Datable Data+MaybeNetworkIntable.swift
[32/46] Compiling Datable Data+Stringable.swift
[33/46] Compiling Datable Datable.swift
[34/46] Compiling Datable DatableConfig.swift
[35/46] Compiling Datable Arrayable.swift
[36/46] Compiling Datable CSVable.swift
[37/46] Compiling Datable Data+Arrayable.swift
[38/46] Compiling Datable Data+Base64.swift
[39/46] Compiling Datable Double+MaybeDatable.swift
[40/46] Compiling Datable Double+Stringable.swift
[41/46] Compiling Datable File.swift
[42/46] Compiling Datable Float+Floatable.swift
[43/46] Compiling Datable Float+MaybeDatable.swift
[44/46] Compiling Datable Float+MaybeIntable.swift
[45/46] Compiling Datable Floatable.swift
[46/46] Compiling Datable Int+Floatable.swift
[47/56] Compiling Net Network+Stringable.swift
[48/56] Compiling Net Network+MaybeDatable.swift
[49/56] Compiling Net Network+Codable.swift
[50/56] Compiling Bits SimpleBits+MaybeIntable.swift
[51/56] Emitting module Bits
[52/56] Compiling Bits Bits.swift
[53/56] Compiling Bits Bits+MaybeIntable.swift
[54/56] Compiling Net Ipify.swift
[55/56] Emitting module Net
[56/56] Compiling Net Net.swift
[57/65] Compiling InternetProtocols UDP.swift
[58/65] Compiling InternetProtocols SequenceNumber.swift
/Users/admin/builder/spi-builder-workspace/Sources/InternetProtocols/SequenceNumber.swift:13:23: warning: static property 'max' is not concurrency-safe because non-'Sendable' type 'SequenceNumber' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | public struct SequenceNumber: Equatable, Comparable, Datable, CustomStringConvertible, CustomDebugStringConvertible
    |               `- note: consider making struct 'SequenceNumber' conform to the 'Sendable' protocol
 12 | {
 13 |     static public let max: SequenceNumber = SequenceNumber(UInt32.max - 1)
    |                       |- warning: static property 'max' is not concurrency-safe because non-'Sendable' type 'SequenceNumber' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'max' 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
 14 |
 15 |     static public func ==(_ x: SequenceNumber, _ y: SequenceNumber) -> Bool
[59/65] Compiling InternetProtocols TCP.swift
/Users/admin/builder/spi-builder-workspace/Sources/InternetProtocols/TCP.swift:14:16: warning: static property 'tcpDataOffsetNoOptions' is not concurrency-safe because non-'Sendable' type 'Bits?' may have shared mutable state; this is an error in the Swift 6 language mode
 12 | public struct TCP: Codable
 13 | {
 14 |     static let tcpDataOffsetNoOptions: Bits! = Bits(byte: 5, droppingFromLeft: 4)
    |                `- warning: static property 'tcpDataOffsetNoOptions' is not concurrency-safe because non-'Sendable' type 'Bits?' may have shared mutable state; this is an error in the Swift 6 language mode
 15 |
 16 |     public let sourcePort: UInt16 //2 bytes
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Bits/Sources/Bits/Bits.swift:250:15: note: struct 'Bits' does not conform to the 'Sendable' protocol
248 |
249 | // Bits allows for packing and unpacking of both bytes and bits in relation to an array of bytes of arbitrary length
250 | public struct Bits: MaybeDatable, Codable
    |               `- note: struct 'Bits' does not conform to the 'Sendable' protocol
251 | {
252 |     public var buffer: Data
/Users/admin/builder/spi-builder-workspace/Sources/InternetProtocols/TCP.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Bits'
  6 | //
  7 |
  8 | import Bits
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Bits'
  9 | import Datable
 10 | import Foundation
    :
 12 | public struct TCP: Codable
 13 | {
 14 |     static let tcpDataOffsetNoOptions: Bits! = Bits(byte: 5, droppingFromLeft: 4)
    |                |- note: annotate 'tcpDataOffsetNoOptions' 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
 15 |
 16 |     public let sourcePort: UInt16 //2 bytes
[60/65] Compiling InternetProtocols ICMP.swift
[61/65] Compiling InternetProtocols IPv4.swift
[62/65] Emitting module InternetProtocols
/Users/admin/builder/spi-builder-workspace/Sources/InternetProtocols/SequenceNumber.swift:13:23: warning: static property 'max' is not concurrency-safe because non-'Sendable' type 'SequenceNumber' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | public struct SequenceNumber: Equatable, Comparable, Datable, CustomStringConvertible, CustomDebugStringConvertible
    |               `- note: consider making struct 'SequenceNumber' conform to the 'Sendable' protocol
 12 | {
 13 |     static public let max: SequenceNumber = SequenceNumber(UInt32.max - 1)
    |                       |- warning: static property 'max' is not concurrency-safe because non-'Sendable' type 'SequenceNumber' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'max' 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
 14 |
 15 |     static public func ==(_ x: SequenceNumber, _ y: SequenceNumber) -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/InternetProtocols/TCP.swift:14:16: warning: static property 'tcpDataOffsetNoOptions' is not concurrency-safe because non-'Sendable' type 'Bits?' may have shared mutable state; this is an error in the Swift 6 language mode
 12 | public struct TCP: Codable
 13 | {
 14 |     static let tcpDataOffsetNoOptions: Bits! = Bits(byte: 5, droppingFromLeft: 4)
    |                `- warning: static property 'tcpDataOffsetNoOptions' is not concurrency-safe because non-'Sendable' type 'Bits?' may have shared mutable state; this is an error in the Swift 6 language mode
 15 |
 16 |     public let sourcePort: UInt16 //2 bytes
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Bits/Sources/Bits/Bits.swift:250:15: note: struct 'Bits' does not conform to the 'Sendable' protocol
248 |
249 | // Bits allows for packing and unpacking of both bytes and bits in relation to an array of bytes of arbitrary length
250 | public struct Bits: MaybeDatable, Codable
    |               `- note: struct 'Bits' does not conform to the 'Sendable' protocol
251 | {
252 |     public var buffer: Data
/Users/admin/builder/spi-builder-workspace/Sources/InternetProtocols/TCP.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Bits'
  6 | //
  7 |
  8 | import Bits
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Bits'
  9 | import Datable
 10 | import Foundation
    :
 12 | public struct TCP: Codable
 13 | {
 14 |     static let tcpDataOffsetNoOptions: Bits! = Bits(byte: 5, droppingFromLeft: 4)
    |                |- note: annotate 'tcpDataOffsetNoOptions' 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
 15 |
 16 |     public let sourcePort: UInt16 //2 bytes
[63/65] Compiling InternetProtocols InternetProtocols.swift
[64/65] Compiling InternetProtocols IPv6.swift
[65/65] Compiling InternetProtocols Ethernet.swift
Build complete! (26.33s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "bits",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.0.4",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/OperatorFoundation/Bits"
    },
    {
      "identity" : "datable",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.0.1",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/OperatorFoundation/Datable"
    },
    {
      "identity" : "net",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.0.10",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/OperatorFoundation/Net"
    },
    {
      "identity" : "swifthextools",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.6",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/OperatorFoundation/SwiftHexTools"
    }
  ],
  "manifest_display_name" : "InternetProtocols",
  "name" : "InternetProtocols",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "ios",
      "version" : "15.0"
    }
  ],
  "products" : [
    {
      "name" : "InternetProtocols",
      "targets" : [
        "InternetProtocols"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "InternetProtocolsTests",
      "module_type" : "SwiftTarget",
      "name" : "InternetProtocolsTests",
      "path" : "Tests/InternetProtocolsTests",
      "product_dependencies" : [
        "SwiftHexTools"
      ],
      "sources" : [
        "InternetProtocolsTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "InternetProtocols"
      ],
      "type" : "test"
    },
    {
      "c99name" : "InternetProtocols",
      "module_type" : "SwiftTarget",
      "name" : "InternetProtocols",
      "path" : "Sources/InternetProtocols",
      "product_dependencies" : [
        "Bits",
        "Datable",
        "Net",
        "SwiftHexTools"
      ],
      "product_memberships" : [
        "InternetProtocols"
      ],
      "sources" : [
        "Ethernet.swift",
        "ICMP.swift",
        "IPv4.swift",
        "IPv6.swift",
        "InternetProtocols.swift",
        "SequenceNumber.swift",
        "TCP.swift",
        "UDP.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
Done.