This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

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 SemVer with Swift 6.0 for Linux.

Swift 6 data race errors: 1

Build Command

bash -c docker run --rm -v "checkouts-4609320-0":/host -w "$workDir" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/RougeWare/Swift-SemVer.git
Reference: production
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/RougeWare/Swift-SemVer
 * branch            production -> FETCH_HEAD
 * [new branch]      production -> origin/production
HEAD is now at 087d41c Merge pull request #2 from RougeWare/feature/1-Swift-Package
Cloned https://github.com/RougeWare/Swift-SemVer.git
Revision (git rev-parse @):
087d41c30c38237179e70178ce93895cd7ff0886
SUCCESS checkout https://github.com/RougeWare/Swift-SemVer.git at production
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $workDir
https://github.com/RougeWare/Swift-SemVer.git
Running build ...
bash -c docker run --rm -v "checkouts-4609320-0":/host -w "$workDir" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/5] Compiling SemVer Conveniences.swift
/host/spi-builder-workspace/Sources/SemVer/Conveniences.swift:160:5: warning: 'public' modifier is redundant for property declared in a public extension
158 | public extension NSRange {
159 |     /// If this represents a null or unfound range, this returns `nil`; else, this returns the range itself
160 |     public var orNil: NSRange? {
    |     `- warning: 'public' modifier is redundant for property declared in a public extension
161 |         if location == NSNotFound {
162 |             return nil
[4/5] Emitting module SemVer
/host/spi-builder-workspace/Sources/SemVer/Conveniences.swift:160:5: warning: 'public' modifier is redundant for property declared in a public extension
158 | public extension NSRange {
159 |     /// If this represents a null or unfound range, this returns `nil`; else, this returns the range itself
160 |     public var orNil: NSRange? {
    |     `- warning: 'public' modifier is redundant for property declared in a public extension
161 |         if location == NSNotFound {
162 |             return nil
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:156:5: warning: 'public' modifier is redundant for property declared in a public extension
154 |     ///
155 |     /// https://semver.org/spec/v2.0.0.html#spec-item-4
156 |     public var isInitialDevelopment: Bool {
    |     `- warning: 'public' modifier is redundant for property declared in a public extension
157 |         return major == 0
158 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:165:5: warning: 'public' modifier is redundant for property declared in a public extension
163 |     ///
164 |     /// https://semver.org/spec/v2.0.0.html#spec-item-5
165 |     public var isPublic: Bool {
    |     `- warning: 'public' modifier is redundant for property declared in a public extension
166 |         return major > 0
167 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:175:23: warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'NSRegularExpression' may have shared mutable state; this is an error in the Swift 6 language mode
173 |
174 |     /// A regular expression which matches and convenienctly groups all Semantic Version strings
175 |     public static let regex = try! NSRegularExpression(pattern:
    |                       `- warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'NSRegularExpression' may have shared mutable state; this is an error in the Swift 6 language mode
176 |         "^(?<major>\\d+)\\." +
177 |         "(?<minor>\\d+)" +
Foundation.NSRegularExpression:1:12: note: class 'NSRegularExpression' does not conform to the 'Sendable' protocol
 1 | open class NSRegularExpression : NSObject, NSCopying, NSSecureCoding {
   |            `- note: class 'NSRegularExpression' does not conform to the 'Sendable' protocol
 2 |     override open func copy() -> Any
 3 |     open func copy(with zone: NSZone? = nil) -> Any
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
  7 | //
  8 |
  9 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
 10 |
 11 |
    :
173 |
174 |     /// A regular expression which matches and convenienctly groups all Semantic Version strings
175 |     public static let regex = try! NSRegularExpression(pattern:
    |                       |- note: annotate 'regex' 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
176 |         "^(?<major>\\d+)\\." +
177 |         "(?<minor>\\d+)" +
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:331:5: warning: 'public' modifier is redundant for type alias declared in a public extension
329 | public extension SemanticVersion.Extension {
330 |
331 |     public typealias PreRelease = SemanticVersionPreRelease
    |     `- warning: 'public' modifier is redundant for type alias declared in a public extension
332 |     public typealias Build = SemanticVersionBuild
333 |
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:332:5: warning: 'public' modifier is redundant for type alias declared in a public extension
330 |
331 |     public typealias PreRelease = SemanticVersionPreRelease
332 |     public typealias Build = SemanticVersionBuild
    |     `- warning: 'public' modifier is redundant for type alias declared in a public extension
333 |
334 |
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:337:5: warning: 'public' modifier is redundant for property declared in a public extension
335 |
336 |     /// Creates a string of period-separated identifiers, so `["public", "RC", "1"]` would become `"public.RC.1"`
337 |     public var description: String {
    |     `- warning: 'public' modifier is redundant for property declared in a public extension
338 |         return identifiers.joined(separator: ".")
339 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:345:5: warning: 'public' modifier is redundant for property declared in a public extension
343 |     /// For example, a pre-release extension like `["RC", "1"]` would become `"-RC.1"`, and a build like
344 |     /// `["2018", "01", "15"]` would become `"+2018.01.15"`.
345 |     public var descriptionWithPrefix: String {
    |     `- warning: 'public' modifier is redundant for property declared in a public extension
346 |         return "\(type(of: self).prefix)\(description)"
347 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:353:5: warning: 'public' modifier is redundant for initializer declared in a public extension
351 |     ///
352 |     /// - Parameter identifiers: Soon-to-be identifiers
353 |     public init(identifiers: [CustomStringConvertible]) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
354 |         self.init(identifiers: identifiers.map { $0.description })
355 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:363:5: warning: 'public' modifier is redundant for initializer declared in a public extension
361 |     /// - Parameter rawString: A raw representation of a semantic version string.
362 |     ///                        This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
363 |     public init(_ rawString: Substring) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
364 |         self.init(identifiers: rawString.split(separator: ".").map { String($0) })
365 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:373:5: warning: 'public' modifier is redundant for initializer declared in a public extension
371 |     /// - Parameter rawString: A raw representation of a semantic version string.
372 |     ///                        This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
373 |     public init(_ rawString: String) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
374 |         self.init(identifiers: rawString.split(separator: ".").map { String($0) })
375 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:381:5: warning: 'public' modifier is redundant for initializer declared in a public extension
379 |     ///
380 |     /// - Parameter identifiers: Soon-to-be identifiers
381 |     public init(_ identifiers: CustomStringConvertible...) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
382 |         self.init(identifiers: identifiers)
383 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:389:5: warning: 'public' modifier is redundant for initializer declared in a public extension
387 |     ///
388 |     /// - Parameter identifiers: Soon-to-be identifiers
389 |     public init(arrayLiteral elements: CustomStringConvertible...) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
390 |         self.init(identifiers: elements)
391 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:397:5: warning: 'public' modifier is redundant for initializer declared in a public extension
395 |     ///
396 |     /// - Parameter value: The only identifier, to become a string
397 |     public init(integerLiteral value: UInt) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
398 |         self.init(identifiers: [value])
399 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:406:5: warning: 'public' modifier is redundant for initializer declared in a public extension
404 |     /// - Parameter rawString: A raw representation of a semantic version string.
405 |     ///                        This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
406 |     public init(stringLiteral value: String) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
407 |         self.init(value)
408 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:424:5: warning: 'public' modifier is redundant for operator function declared in a public extension
422 |     ///            precedence, this will still return `false`.
423 |     /// - Note:  To determine the exact order, use `compare(lhs:rhs:)`
424 |     public static func <(lhs: Self, rhs: Self) -> Bool {
    |     `- warning: 'public' modifier is redundant for operator function declared in a public extension
425 |         return compare(lhs: lhs, rhs: rhs) == .orderedAscending
426 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:436:5: warning: 'public' modifier is redundant for static method declared in a public extension
434 |     ///   - rhs: The second extension to compare
435 |     /// - Returns: The order of the extensions
436 |     public static func compare(lhs: Self, rhs: Self) -> ComparisonResult {
    |     `- warning: 'public' modifier is redundant for static method declared in a public extension
437 |
438 |         if lhs == rhs {
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:492:5: warning: 'public' modifier is redundant for operator function declared in a public extension
490 |     ///   - rhs: Another extension
491 |     /// - Returns: `true` iff the given two extensions are equal
492 |     public static func ==(lhs: Self, rhs: Self) -> Bool {
    |     `- warning: 'public' modifier is redundant for operator function declared in a public extension
493 |         let (lhsIds, rhsIds) = (lhs.identifiers, rhs.identifiers)
494 |         return lhsIds.count == rhsIds.count && !lhsIds.zip(with: rhsIds).contains(where: { $0.0 != $0.1 })
[5/5] Compiling SemVer Semantic Version.swift
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:156:5: warning: 'public' modifier is redundant for property declared in a public extension
154 |     ///
155 |     /// https://semver.org/spec/v2.0.0.html#spec-item-4
156 |     public var isInitialDevelopment: Bool {
    |     `- warning: 'public' modifier is redundant for property declared in a public extension
157 |         return major == 0
158 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:165:5: warning: 'public' modifier is redundant for property declared in a public extension
163 |     ///
164 |     /// https://semver.org/spec/v2.0.0.html#spec-item-5
165 |     public var isPublic: Bool {
    |     `- warning: 'public' modifier is redundant for property declared in a public extension
166 |         return major > 0
167 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:175:23: warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'NSRegularExpression' may have shared mutable state; this is an error in the Swift 6 language mode
173 |
174 |     /// A regular expression which matches and convenienctly groups all Semantic Version strings
175 |     public static let regex = try! NSRegularExpression(pattern:
    |                       `- warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'NSRegularExpression' may have shared mutable state; this is an error in the Swift 6 language mode
176 |         "^(?<major>\\d+)\\." +
177 |         "(?<minor>\\d+)" +
Foundation.NSRegularExpression:1:12: note: class 'NSRegularExpression' does not conform to the 'Sendable' protocol
 1 | open class NSRegularExpression : NSObject, NSCopying, NSSecureCoding {
   |            `- note: class 'NSRegularExpression' does not conform to the 'Sendable' protocol
 2 |     override open func copy() -> Any
 3 |     open func copy(with zone: NSZone? = nil) -> Any
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
  7 | //
  8 |
  9 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
 10 |
 11 |
    :
173 |
174 |     /// A regular expression which matches and convenienctly groups all Semantic Version strings
175 |     public static let regex = try! NSRegularExpression(pattern:
    |                       |- note: annotate 'regex' 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
176 |         "^(?<major>\\d+)\\." +
177 |         "(?<minor>\\d+)" +
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:331:5: warning: 'public' modifier is redundant for type alias declared in a public extension
329 | public extension SemanticVersion.Extension {
330 |
331 |     public typealias PreRelease = SemanticVersionPreRelease
    |     `- warning: 'public' modifier is redundant for type alias declared in a public extension
332 |     public typealias Build = SemanticVersionBuild
333 |
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:332:5: warning: 'public' modifier is redundant for type alias declared in a public extension
330 |
331 |     public typealias PreRelease = SemanticVersionPreRelease
332 |     public typealias Build = SemanticVersionBuild
    |     `- warning: 'public' modifier is redundant for type alias declared in a public extension
333 |
334 |
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:337:5: warning: 'public' modifier is redundant for property declared in a public extension
335 |
336 |     /// Creates a string of period-separated identifiers, so `["public", "RC", "1"]` would become `"public.RC.1"`
337 |     public var description: String {
    |     `- warning: 'public' modifier is redundant for property declared in a public extension
338 |         return identifiers.joined(separator: ".")
339 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:345:5: warning: 'public' modifier is redundant for property declared in a public extension
343 |     /// For example, a pre-release extension like `["RC", "1"]` would become `"-RC.1"`, and a build like
344 |     /// `["2018", "01", "15"]` would become `"+2018.01.15"`.
345 |     public var descriptionWithPrefix: String {
    |     `- warning: 'public' modifier is redundant for property declared in a public extension
346 |         return "\(type(of: self).prefix)\(description)"
347 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:353:5: warning: 'public' modifier is redundant for initializer declared in a public extension
351 |     ///
352 |     /// - Parameter identifiers: Soon-to-be identifiers
353 |     public init(identifiers: [CustomStringConvertible]) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
354 |         self.init(identifiers: identifiers.map { $0.description })
355 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:363:5: warning: 'public' modifier is redundant for initializer declared in a public extension
361 |     /// - Parameter rawString: A raw representation of a semantic version string.
362 |     ///                        This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
363 |     public init(_ rawString: Substring) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
364 |         self.init(identifiers: rawString.split(separator: ".").map { String($0) })
365 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:373:5: warning: 'public' modifier is redundant for initializer declared in a public extension
371 |     /// - Parameter rawString: A raw representation of a semantic version string.
372 |     ///                        This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
373 |     public init(_ rawString: String) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
374 |         self.init(identifiers: rawString.split(separator: ".").map { String($0) })
375 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:381:5: warning: 'public' modifier is redundant for initializer declared in a public extension
379 |     ///
380 |     /// - Parameter identifiers: Soon-to-be identifiers
381 |     public init(_ identifiers: CustomStringConvertible...) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
382 |         self.init(identifiers: identifiers)
383 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:389:5: warning: 'public' modifier is redundant for initializer declared in a public extension
387 |     ///
388 |     /// - Parameter identifiers: Soon-to-be identifiers
389 |     public init(arrayLiteral elements: CustomStringConvertible...) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
390 |         self.init(identifiers: elements)
391 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:397:5: warning: 'public' modifier is redundant for initializer declared in a public extension
395 |     ///
396 |     /// - Parameter value: The only identifier, to become a string
397 |     public init(integerLiteral value: UInt) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
398 |         self.init(identifiers: [value])
399 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:406:5: warning: 'public' modifier is redundant for initializer declared in a public extension
404 |     /// - Parameter rawString: A raw representation of a semantic version string.
405 |     ///                        This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
406 |     public init(stringLiteral value: String) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
407 |         self.init(value)
408 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:424:5: warning: 'public' modifier is redundant for operator function declared in a public extension
422 |     ///            precedence, this will still return `false`.
423 |     /// - Note:  To determine the exact order, use `compare(lhs:rhs:)`
424 |     public static func <(lhs: Self, rhs: Self) -> Bool {
    |     `- warning: 'public' modifier is redundant for operator function declared in a public extension
425 |         return compare(lhs: lhs, rhs: rhs) == .orderedAscending
426 |     }
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:436:5: warning: 'public' modifier is redundant for static method declared in a public extension
434 |     ///   - rhs: The second extension to compare
435 |     /// - Returns: The order of the extensions
436 |     public static func compare(lhs: Self, rhs: Self) -> ComparisonResult {
    |     `- warning: 'public' modifier is redundant for static method declared in a public extension
437 |
438 |         if lhs == rhs {
/host/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:492:5: warning: 'public' modifier is redundant for operator function declared in a public extension
490 |     ///   - rhs: Another extension
491 |     /// - Returns: `true` iff the given two extensions are equal
492 |     public static func ==(lhs: Self, rhs: Self) -> Bool {
    |     `- warning: 'public' modifier is redundant for operator function declared in a public extension
493 |         let (lhsIds, rhsIds) = (lhs.identifiers, rhs.identifiers)
494 |         return lhsIds.count == rhsIds.count && !lhsIds.zip(with: rhsIds).contains(where: { $0.0 != $0.1 })
Build complete! (10.36s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SemVer",
  "name" : "SemVer",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "SemVer",
      "targets" : [
        "SemVer"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SemVerTests",
      "module_type" : "SwiftTarget",
      "name" : "SemVerTests",
      "path" : "Tests/SemVerTests",
      "sources" : [
        "SemVerTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "SemVer"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SemVer",
      "module_type" : "SwiftTarget",
      "name" : "SemVer",
      "path" : "Sources/SemVer",
      "product_memberships" : [
        "SemVer"
      ],
      "sources" : [
        "Conveniences.swift",
        "Semantic Version.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.