Build Information
Successful build of SemVer, reference 2.0.0 (087d41), with Swift 6.4 for macOS (SPM) on 17 Sep 2026 15:58:32 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/RougeWare/Swift-SemVer.git
Reference: 2.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/RougeWare/Swift-SemVer
* tag 2.0.0 -> FETCH_HEAD
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 2.0.0
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/RougeWare/Swift-SemVer.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Planning deferred tasks]
[19 / 28]
[20 / 29] SemVer
[30 / 66]
[35 / 66]
[38 / 66]
[39 / 66]
[43 / 66]
[45 / 66]
[48 / 66]
[51 / 66]
[53 / 66]
[54 / 66]
[57 / 66] SemVer
[63 / 66] SemVer
Build complete! (6.89 sec)
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Conveniences.swift:160:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m158 |[0;0m public extension NSRange {
[0;36m159 |[0;0m /// If this represents a null or unfound range, this returns `nil`; else, this returns the range itself
[0;36m160 |[0;0m public var orNil: NSRange? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m161 |[0;0m if location == NSNotFound {
[0;36m162 |[0;0m return nil
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:156:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m154 |[0;0m ///
[0;36m155 |[0;0m /// https://semver.org/spec/v2.0.0.html#spec-item-4
[0;36m156 |[0;0m public var isInitialDevelopment: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m157 |[0;0m return major == 0
[0;36m158 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:165:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m163 |[0;0m ///
[0;36m164 |[0;0m /// https://semver.org/spec/v2.0.0.html#spec-item-5
[0;36m165 |[0;0m public var isPublic: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m166 |[0;0m return major > 0
[0;36m167 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:331:5: [1;33mwarning: [1;39m'public' modifier is redundant for type alias declared in a public extension[0;0m
[0;36m329 |[0;0m public extension SemanticVersion.Extension {
[0;36m330 |[0;0m
[0;36m331 |[0;0m public typealias PreRelease = SemanticVersionPreRelease
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for type alias declared in a public extension[0;0m
[0;36m332 |[0;0m public typealias Build = SemanticVersionBuild
[0;36m333 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:332:5: [1;33mwarning: [1;39m'public' modifier is redundant for type alias declared in a public extension[0;0m
[0;36m330 |[0;0m
[0;36m331 |[0;0m public typealias PreRelease = SemanticVersionPreRelease
[0;36m332 |[0;0m public typealias Build = SemanticVersionBuild
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for type alias declared in a public extension[0;0m
[0;36m333 |[0;0m
[0;36m334 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:337:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m335 |[0;0m
[0;36m336 |[0;0m /// Creates a string of period-separated identifiers, so `["public", "RC", "1"]` would become `"public.RC.1"`
[0;36m337 |[0;0m public var description: String {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m338 |[0;0m return identifiers.joined(separator: ".")
[0;36m339 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:345:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m343 |[0;0m /// For example, a pre-release extension like `["RC", "1"]` would become `"-RC.1"`, and a build like
[0;36m344 |[0;0m /// `["2018", "01", "15"]` would become `"+2018.01.15"`.
[0;36m345 |[0;0m public var descriptionWithPrefix: String {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m346 |[0;0m return "\(type(of: self).prefix)\(description)"
[0;36m347 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:353:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m351 |[0;0m ///
[0;36m352 |[0;0m /// - Parameter identifiers: Soon-to-be identifiers
[0;36m353 |[0;0m public init(identifiers: [CustomStringConvertible]) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m354 |[0;0m self.init(identifiers: identifiers.map { $0.description })
[0;36m355 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:363:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m361 |[0;0m /// - Parameter rawString: A raw representation of a semantic version string.
[0;36m362 |[0;0m /// This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
[0;36m363 |[0;0m public init(_ rawString: Substring) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m364 |[0;0m self.init(identifiers: rawString.split(separator: ".").map { String($0) })
[0;36m365 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:373:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m371 |[0;0m /// - Parameter rawString: A raw representation of a semantic version string.
[0;36m372 |[0;0m /// This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
[0;36m373 |[0;0m public init(_ rawString: String) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m374 |[0;0m self.init(identifiers: rawString.split(separator: ".").map { String($0) })
[0;36m375 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:381:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m379 |[0;0m ///
[0;36m380 |[0;0m /// - Parameter identifiers: Soon-to-be identifiers
[0;36m381 |[0;0m public init(_ identifiers: CustomStringConvertible...) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m382 |[0;0m self.init(identifiers: identifiers)
[0;36m383 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:389:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m387 |[0;0m ///
[0;36m388 |[0;0m /// - Parameter identifiers: Soon-to-be identifiers
[0;36m389 |[0;0m public init(arrayLiteral elements: CustomStringConvertible...) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m390 |[0;0m self.init(identifiers: elements)
[0;36m391 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:397:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m395 |[0;0m ///
[0;36m396 |[0;0m /// - Parameter value: The only identifier, to become a string
[0;36m397 |[0;0m public init(integerLiteral value: UInt) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m398 |[0;0m self.init(identifiers: [value])
[0;36m399 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:406:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m404 |[0;0m /// - Parameter rawString: A raw representation of a semantic version string.
[0;36m405 |[0;0m /// This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
[0;36m406 |[0;0m public init(stringLiteral value: String) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m407 |[0;0m self.init(value)
[0;36m408 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:424:5: [1;33mwarning: [1;39m'public' modifier is redundant for operator function declared in a public extension[0;0m
[0;36m422 |[0;0m /// precedence, this will still return `false`.
[0;36m423 |[0;0m /// - Note: To determine the exact order, use `compare(lhs:rhs:)`
[0;36m424 |[0;0m public static func <(lhs: Self, rhs: Self) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for operator function declared in a public extension[0;0m
[0;36m425 |[0;0m return compare(lhs: lhs, rhs: rhs) == .orderedAscending
[0;36m426 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:436:5: [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m434 |[0;0m /// - rhs: The second extension to compare
[0;36m435 |[0;0m /// - Returns: The order of the extensions
[0;36m436 |[0;0m public static func compare(lhs: Self, rhs: Self) -> ComparisonResult {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m437 |[0;0m
[0;36m438 |[0;0m if lhs == rhs {
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:492:5: [1;33mwarning: [1;39m'public' modifier is redundant for operator function declared in a public extension[0;0m
[0;36m490 |[0;0m /// - rhs: Another extension
[0;36m491 |[0;0m /// - Returns: `true` iff the given two extensions are equal
[0;36m492 |[0;0m public static func ==(lhs: Self, rhs: Self) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for operator function declared in a public extension[0;0m
[0;36m493 |[0;0m let (lhsIds, rhsIds) = (lhs.identifiers, rhs.identifiers)
[0;36m494 |[0;0m return lhsIds.count == rhsIds.count && !lhsIds.zip(with: rhsIds).contains(where: { $0.0 != $0.1 })
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Conveniences.swift:160:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m158 |[0;0m public extension NSRange {
[0;36m159 |[0;0m /// If this represents a null or unfound range, this returns `nil`; else, this returns the range itself
[0;36m160 |[0;0m public var orNil: NSRange? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m161 |[0;0m if location == NSNotFound {
[0;36m162 |[0;0m return nil
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:156:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m154 |[0;0m ///
[0;36m155 |[0;0m /// https://semver.org/spec/v2.0.0.html#spec-item-4
[0;36m156 |[0;0m public var isInitialDevelopment: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m157 |[0;0m return major == 0
[0;36m158 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:165:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m163 |[0;0m ///
[0;36m164 |[0;0m /// https://semver.org/spec/v2.0.0.html#spec-item-5
[0;36m165 |[0;0m public var isPublic: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m166 |[0;0m return major > 0
[0;36m167 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:331:5: [1;33mwarning: [1;39m'public' modifier is redundant for type alias declared in a public extension[0;0m
[0;36m329 |[0;0m public extension SemanticVersion.Extension {
[0;36m330 |[0;0m
[0;36m331 |[0;0m public typealias PreRelease = SemanticVersionPreRelease
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for type alias declared in a public extension[0;0m
[0;36m332 |[0;0m public typealias Build = SemanticVersionBuild
[0;36m333 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:332:5: [1;33mwarning: [1;39m'public' modifier is redundant for type alias declared in a public extension[0;0m
[0;36m330 |[0;0m
[0;36m331 |[0;0m public typealias PreRelease = SemanticVersionPreRelease
[0;36m332 |[0;0m public typealias Build = SemanticVersionBuild
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for type alias declared in a public extension[0;0m
[0;36m333 |[0;0m
[0;36m334 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:337:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m335 |[0;0m
[0;36m336 |[0;0m /// Creates a string of period-separated identifiers, so `["public", "RC", "1"]` would become `"public.RC.1"`
[0;36m337 |[0;0m public var description: String {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m338 |[0;0m return identifiers.joined(separator: ".")
[0;36m339 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:345:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m343 |[0;0m /// For example, a pre-release extension like `["RC", "1"]` would become `"-RC.1"`, and a build like
[0;36m344 |[0;0m /// `["2018", "01", "15"]` would become `"+2018.01.15"`.
[0;36m345 |[0;0m public var descriptionWithPrefix: String {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m346 |[0;0m return "\(type(of: self).prefix)\(description)"
[0;36m347 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:353:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m351 |[0;0m ///
[0;36m352 |[0;0m /// - Parameter identifiers: Soon-to-be identifiers
[0;36m353 |[0;0m public init(identifiers: [CustomStringConvertible]) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m354 |[0;0m self.init(identifiers: identifiers.map { $0.description })
[0;36m355 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:363:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m361 |[0;0m /// - Parameter rawString: A raw representation of a semantic version string.
[0;36m362 |[0;0m /// This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
[0;36m363 |[0;0m public init(_ rawString: Substring) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m364 |[0;0m self.init(identifiers: rawString.split(separator: ".").map { String($0) })
[0;36m365 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:373:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m371 |[0;0m /// - Parameter rawString: A raw representation of a semantic version string.
[0;36m372 |[0;0m /// This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
[0;36m373 |[0;0m public init(_ rawString: String) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m374 |[0;0m self.init(identifiers: rawString.split(separator: ".").map { String($0) })
[0;36m375 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:381:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m379 |[0;0m ///
[0;36m380 |[0;0m /// - Parameter identifiers: Soon-to-be identifiers
[0;36m381 |[0;0m public init(_ identifiers: CustomStringConvertible...) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m382 |[0;0m self.init(identifiers: identifiers)
[0;36m383 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:389:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m387 |[0;0m ///
[0;36m388 |[0;0m /// - Parameter identifiers: Soon-to-be identifiers
[0;36m389 |[0;0m public init(arrayLiteral elements: CustomStringConvertible...) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m390 |[0;0m self.init(identifiers: elements)
[0;36m391 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:397:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m395 |[0;0m ///
[0;36m396 |[0;0m /// - Parameter value: The only identifier, to become a string
[0;36m397 |[0;0m public init(integerLiteral value: UInt) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m398 |[0;0m self.init(identifiers: [value])
[0;36m399 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:406:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m404 |[0;0m /// - Parameter rawString: A raw representation of a semantic version string.
[0;36m405 |[0;0m /// This should match the regex `/^[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$/`.
[0;36m406 |[0;0m public init(stringLiteral value: String) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m407 |[0;0m self.init(value)
[0;36m408 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:424:5: [1;33mwarning: [1;39m'public' modifier is redundant for operator function declared in a public extension[0;0m
[0;36m422 |[0;0m /// precedence, this will still return `false`.
[0;36m423 |[0;0m /// - Note: To determine the exact order, use `compare(lhs:rhs:)`
[0;36m424 |[0;0m public static func <(lhs: Self, rhs: Self) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for operator function declared in a public extension[0;0m
[0;36m425 |[0;0m return compare(lhs: lhs, rhs: rhs) == .orderedAscending
[0;36m426 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:436:5: [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m434 |[0;0m /// - rhs: The second extension to compare
[0;36m435 |[0;0m /// - Returns: The order of the extensions
[0;36m436 |[0;0m public static func compare(lhs: Self, rhs: Self) -> ComparisonResult {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m437 |[0;0m
[0;36m438 |[0;0m if lhs == rhs {
/Users/admin/builder/spi-builder-workspace/Sources/SemVer/Semantic Version.swift:492:5: [1;33mwarning: [1;39m'public' modifier is redundant for operator function declared in a public extension[0;0m
[0;36m490 |[0;0m /// - rhs: Another extension
[0;36m491 |[0;0m /// - Returns: `true` iff the given two extensions are equal
[0;36m492 |[0;0m public static func ==(lhs: Self, rhs: Self) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for operator function declared in a public extension[0;0m
[0;36m493 |[0;0m let (lhsIds, rhsIds) = (lhs.identifiers, rhs.identifiers)
[0;36m494 |[0;0m return lhsIds.count == rhsIds.count && !lhsIds.zip(with: rhsIds).contains(where: { $0.0 != $0.1 })
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SemVer",
"name" : "SemVer",
"path" : "/Users/admin/builder/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.