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 (b5298f), with Swift 6.1 for macOS (SPM) on 28 Apr 2025 08:49:49 UTC.

Swift 6 data race errors: 1

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/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 b5298ff docs: fix the word `positive`
Cloned https://github.com/lachlanbell/SwiftOTP.git
Revision (git rev-parse @):
b5298ff2e7ba51eade091405baa4fd7c7be335e2
SUCCESS checkout https://github.com/lachlanbell/SwiftOTP.git at master
Fetching https://github.com/apple/swift-crypto.git from cache
Fetched https://github.com/apple/swift-crypto.git from cache (0.73s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 3.12.3 (1.76s)
Fetching https://github.com/apple/swift-asn1.git from cache
Fetched https://github.com/apple/swift-asn1.git from cache (0.47s)
Computing version for https://github.com/apple/swift-asn1.git
Computed https://github.com/apple/swift-asn1.git at 1.3.2 (1.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.12.3
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.2
========================================
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.12.3",
          "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.2",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-asn1",
              "dependencies": [
              ]
            }
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/lachlanbell/SwiftOTP.git
[1/720] Fetching swiftotp
Fetched https://github.com/lachlanbell/SwiftOTP.git from cache (0.74s)
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.12.3 (0.60s)
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.2 (0.54s)
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.2
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 3.12.3
Creating working copy for https://github.com/lachlanbell/SwiftOTP.git
Working copy of https://github.com/lachlanbell/SwiftOTP.git resolved at master (b5298ff)
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.1
Building package at path:  $PWD
https://github.com/lachlanbell/SwiftOTP.git
https://github.com/lachlanbell/SwiftOTP.git
{
  "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"
}
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/6] Write sources
[2/6] Copying PrivacyInfo.xcprivacy
[3/6] Write swift-version-2F0A5646E1D333AE.txt
[5/79] Compiling Crypto Digest_boring.swift
[6/79] Compiling Crypto Digest.swift
[7/79] Compiling Crypto Digests.swift
[8/79] Compiling Crypto HashFunctions.swift
[9/79] Compiling Crypto HashFunctions_SHA2.swift
[10/79] Compiling Crypto HPKE-AEAD.swift
[11/79] Compiling Crypto HPKE-Ciphersuite.swift
[12/79] Compiling Crypto HPKE-KDF.swift
[13/87] Compiling Crypto DH.swift
[14/87] Compiling Crypto ECDH.swift
[15/87] Compiling Crypto HKDF.swift
[16/87] Compiling Crypto AESWrap.swift
[17/87] Compiling Crypto AESWrap_boring.swift
[18/87] Compiling Crypto Ed25519_boring.swift
[19/87] Compiling Crypto NISTCurvesKeys_boring.swift
[20/87] Compiling Crypto X25519Keys_boring.swift
[21/87] Compiling Crypto HPKE-KexKeyDerivation.swift
[22/87] Compiling Crypto HPKE-LabeledExtract.swift
[23/87] Compiling Crypto HPKE-Utils.swift
[24/87] Compiling Crypto DHKEM.swift
[25/87] Compiling Crypto HPKE-KEM-Curve25519.swift
[26/87] Compiling Crypto HPKE-NIST-EC-KEMs.swift
[27/87] Compiling Crypto HPKE-KEM.swift
[28/87] Compiling Crypto HPKE-Errors.swift
[29/87] Emitting module Crypto
[30/87] Compiling Crypto ASN1BitString.swift
[31/87] Compiling Crypto ASN1Boolean.swift
[32/87] Compiling Crypto ASN1Identifier.swift
[33/87] Compiling Crypto ASN1Integer.swift
[34/87] Compiling Crypto ASN1Null.swift
[35/87] Compiling Crypto ASN1OctetString.swift
[36/87] Compiling Crypto ASN1Strings.swift
[37/87] Compiling Crypto ArraySliceBigint.swift
[38/87] Compiling Crypto AES-GCM.swift
[39/87] Compiling Crypto AES-GCM_boring.swift
[40/87] Compiling Crypto ChaChaPoly_boring.swift
[41/87] Compiling Crypto ChaChaPoly.swift
[42/87] Compiling Crypto Cipher.swift
[43/87] Compiling Crypto Nonces.swift
[44/87] Compiling Crypto ASN1.swift
[45/87] Compiling Crypto ASN1Any.swift
[46/87] Compiling Crypto HPKE.swift
[47/87] Compiling Crypto HPKE-Context.swift
[48/87] Compiling Crypto HPKE-KeySchedule.swift
[49/87] Compiling Crypto HPKE-Modes.swift
[50/87] Compiling Crypto Insecure.swift
[51/87] Compiling Crypto Insecure_HashFunctions.swift
[52/87] Compiling Crypto KEM.swift
[53/87] Compiling Crypto ECDH_boring.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 Curve25519.swift
[63/87] Compiling Crypto Ed25519Keys.swift
[64/87] Compiling Crypto NISTCurvesKeys.swift
[65/87] Compiling Crypto X25519Keys.swift
[66/87] Compiling Crypto SymmetricKeys.swift
[67/87] Compiling Crypto HMAC.swift
[68/87] Compiling Crypto MACFunctions.swift
[69/87] Compiling Crypto MessageAuthenticationCode.swift
[70/87] Compiling Crypto AES.swift
[71/87] Compiling Crypto ECDSASignature_boring.swift
[72/87] Compiling Crypto ECDSA_boring.swift
[73/87] Compiling Crypto EdDSA_boring.swift
[74/87] Compiling Crypto ECDSA.swift
[75/87] Compiling Crypto Ed25519.swift
[76/87] Compiling Crypto Signature.swift
[77/87] Compiling Crypto CryptoKitErrors_boring.swift
[78/87] Compiling Crypto RNG_boring.swift
[79/87] Compiling Crypto SafeCompare_boring.swift
[80/87] Compiling Crypto Zeroization_boring.swift
[81/87] Compiling Crypto PrettyBytes.swift
[82/87] Compiling Crypto SafeCompare.swift
[83/87] Compiling Crypto SecureBytes.swift
[84/87] Compiling Crypto Zeroization.swift
[85/87] Compiling Crypto resource_bundle_accessor.swift
[86/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: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 48 |
 49 | 	/// Generates a one time password string
[87/96] Compiling SwiftOTP OTPAlgorithm.swift
[88/96] Compiling SwiftOTP UInt64+Data.swift
[89/96] Compiling SwiftOTP Data+Utilities.swift
[90/96] Compiling SwiftOTP TOTP.swift
[91/96] Compiling SwiftOTP HOTP.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: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |             `- 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! (13.23s)
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.