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 SwiftOTP, reference master (966055), with Swift 6.0 for macOS (SPM) on 4 Nov 2024 11:44:41 UTC.

Swift 6 data race errors: 1

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/lachlanbell/SwiftOTP.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/lachlanbell/SwiftOTP
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 9660551 SwiftOTP 3.0.2 release
Cloned https://github.com/lachlanbell/SwiftOTP.git
Revision (git rev-parse @):
9660551ea3df153c3cbacfa34ac3abbec73a8b84
SUCCESS checkout https://github.com/lachlanbell/SwiftOTP.git at master
Fetching https://github.com/apple/swift-crypto.git
[1/10416] Fetching swift-crypto
Fetched https://github.com/apple/swift-crypto.git from cache (1.82s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 3.9.1 (1.02s)
Fetching https://github.com/apple/swift-asn1.git
[1/1397] Fetching swift-asn1
Fetched https://github.com/apple/swift-asn1.git from cache (1.01s)
Computing version for https://github.com/apple/swift-asn1.git
Computed https://github.com/apple/swift-asn1.git at 1.3.0 (0.65s)
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 3.9.1
Creating working copy for https://github.com/apple/swift-asn1.git
Working copy of https://github.com/apple/swift-asn1.git resolved at 1.3.0
========================================
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": "swiftotp",
      "name": "SwiftOTP",
      "url": "https://github.com/lachlanbell/SwiftOTP.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftOTP",
      "dependencies": [
        {
          "identity": "swift-crypto",
          "name": "swift-crypto",
          "url": "https://github.com/apple/swift-crypto.git",
          "version": "3.9.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-crypto",
          "dependencies": [
            {
              "identity": "swift-asn1",
              "name": "swift-asn1",
              "url": "https://github.com/apple/swift-asn1.git",
              "version": "1.3.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-asn1",
              "dependencies": [
              ]
            }
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/lachlanbell/SwiftOTP.git
[1/703] Fetching swiftotp
Fetched https://github.com/lachlanbell/SwiftOTP.git from cache (0.86s)
Fetching https://github.com/apple/swift-crypto.git from cache
Fetched https://github.com/apple/swift-crypto.git from cache (0.55s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 3.9.1 (0.03s)
Fetching https://github.com/apple/swift-asn1.git from cache
Fetched https://github.com/apple/swift-asn1.git from cache (0.48s)
Computing version for https://github.com/apple/swift-asn1.git
Computed https://github.com/apple/swift-asn1.git at 1.3.0 (0.03s)
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 3.9.1
Creating working copy for https://github.com/lachlanbell/SwiftOTP.git
Working copy of https://github.com/lachlanbell/SwiftOTP.git resolved at master (9660551)
Creating working copy for https://github.com/apple/swift-asn1.git
Working copy of https://github.com/apple/swift-asn1.git resolved at 1.3.0
warning: '.resolve-product-dependencies': dependency 'swiftotp' is not used by any target
Found 1 product dependencies
  - swift-crypto
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/lachlanbell/SwiftOTP.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
[1/6] Copying PrivacyInfo.xcprivacy
[2/6] Write sources
[3/6] Write swift-version--7754E27361AE5C74.txt
[5/79] Emitting module Crypto
[6/87] Compiling Crypto HPKE.swift
[7/87] Compiling Crypto HPKE-Context.swift
[8/87] Compiling Crypto HPKE-KeySchedule.swift
[9/87] Compiling Crypto HPKE-Modes.swift
[10/87] Compiling Crypto Insecure.swift
[11/87] Compiling Crypto Insecure_HashFunctions.swift
[12/87] Compiling Crypto KEM.swift
[13/87] Compiling Crypto ECDH_boring.swift
[14/87] Compiling Crypto DH.swift
[15/87] Compiling Crypto ECDH.swift
[16/87] Compiling Crypto HKDF.swift
[17/87] Compiling Crypto AESWrap.swift
[18/87] Compiling Crypto AESWrap_boring.swift
[19/87] Compiling Crypto Ed25519_boring.swift
[20/87] Compiling Crypto NISTCurvesKeys_boring.swift
[21/87] Compiling Crypto X25519Keys_boring.swift
[22/87] Compiling Crypto AES.swift
[23/87] Compiling Crypto ECDSASignature_boring.swift
[24/87] Compiling Crypto ECDSA_boring.swift
[25/87] Compiling Crypto EdDSA_boring.swift
[26/87] Compiling Crypto ECDSA.swift
[27/87] Compiling Crypto Ed25519.swift
[28/87] Compiling Crypto Signature.swift
[29/87] Compiling Crypto CryptoKitErrors_boring.swift
[30/87] Compiling Crypto RNG_boring.swift
[31/87] Compiling Crypto SafeCompare_boring.swift
[32/87] Compiling Crypto Zeroization_boring.swift
[33/87] Compiling Crypto PrettyBytes.swift
[34/87] Compiling Crypto SafeCompare.swift
[35/87] Compiling Crypto SecureBytes.swift
[36/87] Compiling Crypto Zeroization.swift
[37/87] Compiling Crypto resource_bundle_accessor.swift
[38/87] Compiling Crypto Curve25519.swift
[39/87] Compiling Crypto Ed25519Keys.swift
[40/87] Compiling Crypto NISTCurvesKeys.swift
[41/87] Compiling Crypto X25519Keys.swift
[42/87] Compiling Crypto SymmetricKeys.swift
[43/87] Compiling Crypto HMAC.swift
[44/87] Compiling Crypto MACFunctions.swift
[45/87] Compiling Crypto MessageAuthenticationCode.swift
[46/87] Compiling Crypto AES-GCM.swift
[47/87] Compiling Crypto AES-GCM_boring.swift
[48/87] Compiling Crypto ChaChaPoly_boring.swift
[49/87] Compiling Crypto ChaChaPoly.swift
[50/87] Compiling Crypto Cipher.swift
[51/87] Compiling Crypto Nonces.swift
[52/87] Compiling Crypto ASN1.swift
[53/87] Compiling Crypto ASN1Any.swift
[54/87] Compiling Crypto GeneralizedTime.swift
[55/87] Compiling Crypto ObjectIdentifier.swift
[56/87] Compiling Crypto ECDSASignature.swift
[57/87] Compiling Crypto PEMDocument.swift
[58/87] Compiling Crypto PKCS8PrivateKey.swift
[59/87] Compiling Crypto SEC1PrivateKey.swift
[60/87] Compiling Crypto SubjectPublicKeyInfo.swift
[61/87] Compiling Crypto CryptoKitErrors.swift
[62/87] Compiling Crypto ASN1BitString.swift
[63/87] Compiling Crypto ASN1Boolean.swift
[64/87] Compiling Crypto ASN1Identifier.swift
[65/87] Compiling Crypto ASN1Integer.swift
[66/87] Compiling Crypto ASN1Null.swift
[67/87] Compiling Crypto ASN1OctetString.swift
[68/87] Compiling Crypto ASN1Strings.swift
[69/87] Compiling Crypto ArraySliceBigint.swift
[70/87] Compiling Crypto Digest_boring.swift
[71/87] Compiling Crypto Digest.swift
[72/87] Compiling Crypto Digests.swift
[73/87] Compiling Crypto HashFunctions.swift
[74/87] Compiling Crypto HashFunctions_SHA2.swift
[75/87] Compiling Crypto HPKE-AEAD.swift
[76/87] Compiling Crypto HPKE-Ciphersuite.swift
[77/87] Compiling Crypto HPKE-KDF.swift
[78/87] Compiling Crypto HPKE-KexKeyDerivation.swift
[79/87] Compiling Crypto HPKE-LabeledExtract.swift
[80/87] Compiling Crypto HPKE-Utils.swift
[81/87] Compiling Crypto DHKEM.swift
[82/87] Compiling Crypto HPKE-KEM-Curve25519.swift
[83/87] Compiling Crypto HPKE-NIST-EC-KEMs.swift
[84/87] Compiling Crypto HPKE-KEM.swift
[85/87] Compiling Crypto HPKE-Errors.swift
[86/96] Compiling SwiftOTP UInt64+Data.swift
[87/96] Compiling SwiftOTP TOTP.swift
/Users/admin/builder/spi-builder-workspace/SwiftOTP/Generator.swift:47:13: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Generator' may have shared mutable state; this is an error in the Swift 6 language mode
 42 | #endif
 43 |
 44 | internal class Generator {
    |                `- note: class 'Generator' does not conform to the 'Sendable' protocol
 45 |
 46 | 	// Generator singleton
 47 | 	static let shared = Generator()
    |             |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Generator' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 48 |
 49 | 	/// Generates a one time password string
[88/96] Compiling SwiftOTP OTPAlgorithm.swift
[89/96] Compiling SwiftOTP HOTP.swift
/Users/admin/builder/spi-builder-workspace/SwiftOTP/Generator.swift:47:13: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Generator' may have shared mutable state; this is an error in the Swift 6 language mode
 42 | #endif
 43 |
 44 | internal class Generator {
    |                `- note: class 'Generator' does not conform to the 'Sendable' protocol
 45 |
 46 | 	// Generator singleton
 47 | 	static let shared = Generator()
    |             |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Generator' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 48 |
 49 | 	/// Generates a one time password string
[90/96] Compiling SwiftOTP Generator.swift
/Users/admin/builder/spi-builder-workspace/SwiftOTP/Generator.swift:47:13: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Generator' may have shared mutable state; this is an error in the Swift 6 language mode
 42 | #endif
 43 |
 44 | internal class Generator {
    |                `- note: class 'Generator' does not conform to the 'Sendable' protocol
 45 |
 46 | 	// Generator singleton
 47 | 	static let shared = Generator()
    |             |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Generator' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 48 |
 49 | 	/// Generates a one time password string
[91/96] Compiling SwiftOTP Data+Utilities.swift
[92/96] Compiling SwiftOTP StringExtension.swift
[93/96] Emitting module SwiftOTP
/Users/admin/builder/spi-builder-workspace/SwiftOTP/Generator.swift:47:13: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Generator' may have shared mutable state; this is an error in the Swift 6 language mode
 42 | #endif
 43 |
 44 | internal class Generator {
    |                `- note: class 'Generator' does not conform to the 'Sendable' protocol
 45 |
 46 | 	// Generator singleton
 47 | 	static let shared = Generator()
    |             |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Generator' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 48 |
 49 | 	/// Generates a one time password string
[94/96] Compiling SwiftOTP Base32.swift
[94/96] Write Objects.LinkFileList
[95/96] Linking libSwiftOTP-Dynamic.dylib
Build complete! (24.78s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-crypto",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-crypto.git"
    }
  ],
  "manifest_display_name" : "SwiftOTP",
  "name" : "SwiftOTP",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftOTP",
      "targets" : [
        "SwiftOTP"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "SwiftOTP-Dynamic",
      "targets" : [
        "SwiftOTP"
      ],
      "type" : {
        "library" : [
          "dynamic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftOTPTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftOTPTests",
      "path" : "Tests/SwiftOTPTests",
      "sources" : [
        "GeneratorTests.swift",
        "HOTPTests.swift",
        "TOTPTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "SwiftOTP"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftOTP",
      "module_type" : "SwiftTarget",
      "name" : "SwiftOTP",
      "path" : "SwiftOTP",
      "product_dependencies" : [
        "Crypto"
      ],
      "product_memberships" : [
        "SwiftOTP",
        "SwiftOTP-Dynamic"
      ],
      "sources" : [
        "Base32/Base32.swift",
        "Base32/StringExtension.swift",
        "Data+Utilities.swift",
        "Generator.swift",
        "HOTP.swift",
        "OTPAlgorithm.swift",
        "TOTP.swift",
        "UInt64+Data.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Done.