Build Information
Successful build of universal, reference main (50ada3
), with Swift 6.0 for Linux on 6 Nov 2024 07:00:13 UTC.
Swift 6 data race errors: 6
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" 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.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/marcprux/universal.git
Reference: main
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/marcprux/universal
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 50ada3f Test both 5.1 and 6.0 Android toolchain
Cloned https://github.com/marcprux/universal.git
Revision (git rev-parse @):
50ada3fd9d2726b05cc2ff460a92e8b65b1c2414
SUCCESS checkout https://github.com/marcprux/universal.git at main
========================================
Build
========================================
Selected platform: linux
Swift version: 6.0
Building package at path: $PWD
https://github.com/marcprux/universal.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" 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
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/7] Write sources
[6/7] Write swift-version-24593BA9C3E375BF.txt
[8/9] Emitting module Either
/host/spi-builder-workspace/Sources/Either/Either.swift:319:19: warning: conformance of 'Never' to protocol 'Decodable' was already stated in the type's module 'Swift'
317 |
318 | /// Useful extension for when a `OneOfX<A, B, …, Never>` wants to be treated as `Codable`
319 | extension Never : Decodable {
| `- warning: conformance of 'Never' to protocol 'Decodable' was already stated in the type's module 'Swift'
320 | /// Throws an error, since it should never be decodable
321 | public init(from decoder: Decoder) throws {
| `- note: initializer 'init(from:)' will not be used to satisfy the conformance to 'Decodable'
322 | throw NeverCodableError.decodableNever
323 | }
Swift.Never:2:11: note: 'Never' declares conformance to protocol 'Decodable' here
1 | @available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
2 | extension Never : Decodable {
| `- note: 'Never' declares conformance to protocol 'Decodable' here
3 | @available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
4 | public init(from decoder: any Decoder) throws
/host/spi-builder-workspace/Sources/Either/Either.swift:327:19: warning: conformance of 'Never' to protocol 'Encodable' was already stated in the type's module 'Swift'
325 |
326 | /// Useful extension for when a `OneOfX<A, B, …, Never>` wants to be treated as `Codable`
327 | extension Never : Encodable {
| `- warning: conformance of 'Never' to protocol 'Encodable' was already stated in the type's module 'Swift'
328 | /// Throws an error, since it should never be encodable
329 | public func encode(to encoder: Encoder) throws {
| `- note: instance method 'encode(to:)' will not be used to satisfy the conformance to 'Encodable'
330 | throw NeverCodableError.encodableNever
331 | }
Swift.Never:2:11: note: 'Never' declares conformance to protocol 'Encodable' here
1 | @available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
2 | extension Never : Encodable {
| `- note: 'Never' declares conformance to protocol 'Encodable' here
3 | @available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
4 | public func encode(to encoder: any Encoder) throws
[9/9] Compiling Either Either.swift
/host/spi-builder-workspace/Sources/Either/Either.swift:319:19: warning: conformance of 'Never' to protocol 'Decodable' was already stated in the type's module 'Swift'
317 |
318 | /// Useful extension for when a `OneOfX<A, B, …, Never>` wants to be treated as `Codable`
319 | extension Never : Decodable {
| `- warning: conformance of 'Never' to protocol 'Decodable' was already stated in the type's module 'Swift'
320 | /// Throws an error, since it should never be decodable
321 | public init(from decoder: Decoder) throws {
| `- note: initializer 'init(from:)' will not be used to satisfy the conformance to 'Decodable'
322 | throw NeverCodableError.decodableNever
323 | }
Swift.Never:2:11: note: 'Never' declares conformance to protocol 'Decodable' here
1 | @available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
2 | extension Never : Decodable {
| `- note: 'Never' declares conformance to protocol 'Decodable' here
3 | @available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
4 | public init(from decoder: any Decoder) throws
/host/spi-builder-workspace/Sources/Either/Either.swift:327:19: warning: conformance of 'Never' to protocol 'Encodable' was already stated in the type's module 'Swift'
325 |
326 | /// Useful extension for when a `OneOfX<A, B, …, Never>` wants to be treated as `Codable`
327 | extension Never : Encodable {
| `- warning: conformance of 'Never' to protocol 'Encodable' was already stated in the type's module 'Swift'
328 | /// Throws an error, since it should never be encodable
329 | public func encode(to encoder: Encoder) throws {
| `- note: instance method 'encode(to:)' will not be used to satisfy the conformance to 'Encodable'
330 | throw NeverCodableError.encodableNever
331 | }
Swift.Never:2:11: note: 'Never' declares conformance to protocol 'Encodable' here
1 | @available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
2 | extension Never : Encodable {
| `- note: 'Never' declares conformance to protocol 'Encodable' here
3 | @available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
4 | public func encode(to encoder: any Encoder) throws
[11/21] Compiling JSON JSONX.swift
[12/21] Compiling JSON JSONParser.swift
[13/21] Emitting module XML
/host/spi-builder-workspace/Sources/XML/XML.swift:285:27: warning: static property 'resolveExternalEntities' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
280 |
281 | /// Options for configuring the `XMLParser`
282 | public struct Options: OptionSet, Hashable {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
283 | public let rawValue: Int
284 |
285 | public static let resolveExternalEntities = Self(rawValue: 1 << 0)
| |- warning: static property 'resolveExternalEntities' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'resolveExternalEntities' 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
286 | public static let reportNamespacePrefixes = Self(rawValue: 1 << 1)
287 | public static let processNamespaces = Self(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/XML/XML.swift:286:27: warning: static property 'reportNamespacePrefixes' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
280 |
281 | /// Options for configuring the `XMLParser`
282 | public struct Options: OptionSet, Hashable {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
283 | public let rawValue: Int
284 |
285 | public static let resolveExternalEntities = Self(rawValue: 1 << 0)
286 | public static let reportNamespacePrefixes = Self(rawValue: 1 << 1)
| |- warning: static property 'reportNamespacePrefixes' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'reportNamespacePrefixes' 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
287 | public static let processNamespaces = Self(rawValue: 1 << 2)
288 | public static let tidyHTML = Self(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/XML/XML.swift:287:27: warning: static property 'processNamespaces' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
280 |
281 | /// Options for configuring the `XMLParser`
282 | public struct Options: OptionSet, Hashable {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
283 | public let rawValue: Int
284 |
285 | public static let resolveExternalEntities = Self(rawValue: 1 << 0)
286 | public static let reportNamespacePrefixes = Self(rawValue: 1 << 1)
287 | public static let processNamespaces = Self(rawValue: 1 << 2)
| |- warning: static property 'processNamespaces' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'processNamespaces' 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
288 | public static let tidyHTML = Self(rawValue: 1 << 3)
289 |
/host/spi-builder-workspace/Sources/XML/XML.swift:288:27: warning: static property 'tidyHTML' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
280 |
281 | /// Options for configuring the `XMLParser`
282 | public struct Options: OptionSet, Hashable {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
283 | public let rawValue: Int
284 |
:
286 | public static let reportNamespacePrefixes = Self(rawValue: 1 << 1)
287 | public static let processNamespaces = Self(rawValue: 1 << 2)
288 | public static let tidyHTML = Self(rawValue: 1 << 3)
| |- warning: static property 'tidyHTML' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'tidyHTML' 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
289 |
290 | public init(rawValue: Int) {
[14/21] Compiling XML XML.swift
/host/spi-builder-workspace/Sources/XML/XML.swift:285:27: warning: static property 'resolveExternalEntities' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
280 |
281 | /// Options for configuring the `XMLParser`
282 | public struct Options: OptionSet, Hashable {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
283 | public let rawValue: Int
284 |
285 | public static let resolveExternalEntities = Self(rawValue: 1 << 0)
| |- warning: static property 'resolveExternalEntities' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'resolveExternalEntities' 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
286 | public static let reportNamespacePrefixes = Self(rawValue: 1 << 1)
287 | public static let processNamespaces = Self(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/XML/XML.swift:286:27: warning: static property 'reportNamespacePrefixes' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
280 |
281 | /// Options for configuring the `XMLParser`
282 | public struct Options: OptionSet, Hashable {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
283 | public let rawValue: Int
284 |
285 | public static let resolveExternalEntities = Self(rawValue: 1 << 0)
286 | public static let reportNamespacePrefixes = Self(rawValue: 1 << 1)
| |- warning: static property 'reportNamespacePrefixes' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'reportNamespacePrefixes' 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
287 | public static let processNamespaces = Self(rawValue: 1 << 2)
288 | public static let tidyHTML = Self(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/XML/XML.swift:287:27: warning: static property 'processNamespaces' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
280 |
281 | /// Options for configuring the `XMLParser`
282 | public struct Options: OptionSet, Hashable {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
283 | public let rawValue: Int
284 |
285 | public static let resolveExternalEntities = Self(rawValue: 1 << 0)
286 | public static let reportNamespacePrefixes = Self(rawValue: 1 << 1)
287 | public static let processNamespaces = Self(rawValue: 1 << 2)
| |- warning: static property 'processNamespaces' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'processNamespaces' 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
288 | public static let tidyHTML = Self(rawValue: 1 << 3)
289 |
/host/spi-builder-workspace/Sources/XML/XML.swift:288:27: warning: static property 'tidyHTML' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
280 |
281 | /// Options for configuring the `XMLParser`
282 | public struct Options: OptionSet, Hashable {
| `- note: consider making struct 'Options' conform to the 'Sendable' protocol
283 | public let rawValue: Int
284 |
:
286 | public static let reportNamespacePrefixes = Self(rawValue: 1 << 1)
287 | public static let processNamespaces = Self(rawValue: 1 << 2)
288 | public static let tidyHTML = Self(rawValue: 1 << 3)
| |- warning: static property 'tidyHTML' is not concurrency-safe because non-'Sendable' type 'XMLNode.Options' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'tidyHTML' 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
289 |
290 | public init(rawValue: Int) {
[15/22] Emitting module PLIST
[16/22] Compiling PLIST PLIST.swift
[19/23] Compiling YAML YAML.swift
/host/spi-builder-workspace/Sources/YAML/YAML.swift:137:1: warning: extension declares a conformance of imported type 'Or' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
135 | }
136 |
137 | extension YAML.Scalar: CustomStringConvertible {
| |- warning: extension declares a conformance of imported type 'Or' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
138 | public var description: String {
139 | func desc(_ value: String) -> String { ".string(\"\(value)\")" }
/host/spi-builder-workspace/Sources/YAML/YAML.swift:213:1: warning: extension declares a conformance of imported type 'Or' to imported protocols 'ExpressibleByStringLiteral', 'ExpressibleByExtendedGraphemeClusterLiteral', 'ExpressibleByUnicodeScalarLiteral'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
211 | }
212 |
213 | extension YAML.Scalar : ExpressibleByStringLiteral, ExpressibleByExtendedGraphemeClusterLiteral, ExpressibleByUnicodeScalarLiteral {
| |- warning: extension declares a conformance of imported type 'Or' to imported protocols 'ExpressibleByStringLiteral', 'ExpressibleByExtendedGraphemeClusterLiteral', 'ExpressibleByUnicodeScalarLiteral'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
214 | public init(stringLiteral value: StringLiteralType) {
215 | self = YAML.Scalar(.init(value))
/host/spi-builder-workspace/Sources/YAML/YAML.swift:233:1: warning: extension declares a conformance of imported type 'Or' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
231 | }
232 |
233 | extension YAML.Scalar : ExpressibleByNilLiteral {
| |- warning: extension declares a conformance of imported type 'Or' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
234 | public init(nilLiteral: ()) {
235 | self = YAML.Scalar.null
/host/spi-builder-workspace/Sources/YAML/YAML.swift:384:13: warning: var 'error' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
382 | private typealias Context = YAMLParser.Context
383 |
384 | private var error = YAMLParser.Context.error
| |- warning: var 'error' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'error' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'error' 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
385 |
386 | private typealias ContextValue = (context: Context, value: YAML)
[20/23] Emitting module YAML
/host/spi-builder-workspace/Sources/YAML/YAML.swift:137:1: warning: extension declares a conformance of imported type 'Or' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
135 | }
136 |
137 | extension YAML.Scalar: CustomStringConvertible {
| |- warning: extension declares a conformance of imported type 'Or' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
138 | public var description: String {
139 | func desc(_ value: String) -> String { ".string(\"\(value)\")" }
/host/spi-builder-workspace/Sources/YAML/YAML.swift:213:1: warning: extension declares a conformance of imported type 'Or' to imported protocols 'ExpressibleByStringLiteral', 'ExpressibleByExtendedGraphemeClusterLiteral', 'ExpressibleByUnicodeScalarLiteral'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
211 | }
212 |
213 | extension YAML.Scalar : ExpressibleByStringLiteral, ExpressibleByExtendedGraphemeClusterLiteral, ExpressibleByUnicodeScalarLiteral {
| |- warning: extension declares a conformance of imported type 'Or' to imported protocols 'ExpressibleByStringLiteral', 'ExpressibleByExtendedGraphemeClusterLiteral', 'ExpressibleByUnicodeScalarLiteral'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
214 | public init(stringLiteral value: StringLiteralType) {
215 | self = YAML.Scalar(.init(value))
/host/spi-builder-workspace/Sources/YAML/YAML.swift:233:1: warning: extension declares a conformance of imported type 'Or' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
231 | }
232 |
233 | extension YAML.Scalar : ExpressibleByNilLiteral {
| |- warning: extension declares a conformance of imported type 'Or' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'Either' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
234 | public init(nilLiteral: ()) {
235 | self = YAML.Scalar.null
/host/spi-builder-workspace/Sources/YAML/YAML.swift:384:13: warning: var 'error' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
382 | private typealias Context = YAMLParser.Context
383 |
384 | private var error = YAMLParser.Context.error
| |- warning: var 'error' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'error' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'error' 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
385 |
386 | private typealias ContextValue = (context: Context, value: YAML)
[22/24] Compiling JSON JSON.swift
[23/24] Emitting module JSON
/host/spi-builder-workspace/Sources/JSON/JSONCoding.swift:1702:14: warning: var '_iso8601Formatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1700 |
1701 | @available(macOS 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
1702 | internal var _iso8601Formatter: ISO8601DateFormatter = {
| |- warning: var '_iso8601Formatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_iso8601Formatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate '_iso8601Formatter' 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
1703 | let formatter = ISO8601DateFormatter()
1704 | formatter.formatOptions = .withInternetDateTime
[24/24] Compiling JSON JSONCoding.swift
/host/spi-builder-workspace/Sources/JSON/JSONCoding.swift:1702:14: warning: var '_iso8601Formatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1700 |
1701 | @available(macOS 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
1702 | internal var _iso8601Formatter: ISO8601DateFormatter = {
| |- warning: var '_iso8601Formatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_iso8601Formatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate '_iso8601Formatter' 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
1703 | let formatter = ISO8601DateFormatter()
1704 | formatter.formatOptions = .withInternetDateTime
[26/27] Compiling Universal Universal.swift
[27/27] Emitting module Universal
Build complete! (15.49s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "universal",
"name" : "universal",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Either",
"targets" : [
"Either"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "XML",
"targets" : [
"XML"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "YAML",
"targets" : [
"YAML"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "JSON",
"targets" : [
"JSON"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PLIST",
"targets" : [
"PLIST"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "Universal",
"targets" : [
"Universal"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "YAMLTests",
"module_type" : "SwiftTarget",
"name" : "YAMLTests",
"path" : "Tests/YAMLTests",
"sources" : [
"YAMLTests.swift"
],
"target_dependencies" : [
"YAML"
],
"type" : "test"
},
{
"c99name" : "YAML",
"module_type" : "SwiftTarget",
"name" : "YAML",
"path" : "Sources/YAML",
"product_memberships" : [
"YAML",
"Universal"
],
"sources" : [
"YAML.swift"
],
"target_dependencies" : [
"Either"
],
"type" : "library"
},
{
"c99name" : "XMLTests",
"module_type" : "SwiftTarget",
"name" : "XMLTests",
"path" : "Tests/XMLTests",
"sources" : [
"XMLTests.swift"
],
"target_dependencies" : [
"XML"
],
"type" : "test"
},
{
"c99name" : "XML",
"module_type" : "SwiftTarget",
"name" : "XML",
"path" : "Sources/XML",
"product_memberships" : [
"XML",
"Universal"
],
"sources" : [
"XML.swift"
],
"target_dependencies" : [
"Either"
],
"type" : "library"
},
{
"c99name" : "UniversalTests",
"module_type" : "SwiftTarget",
"name" : "UniversalTests",
"path" : "Tests/UniversalTests",
"sources" : [
"UniversalTests.swift"
],
"target_dependencies" : [
"Universal"
],
"type" : "test"
},
{
"c99name" : "Universal",
"module_type" : "SwiftTarget",
"name" : "Universal",
"path" : "Sources/Universal",
"product_memberships" : [
"Universal"
],
"sources" : [
"Universal.swift"
],
"target_dependencies" : [
"XML",
"YAML",
"JSON",
"PLIST"
],
"type" : "library"
},
{
"c99name" : "PLISTTests",
"module_type" : "SwiftTarget",
"name" : "PLISTTests",
"path" : "Tests/PLISTTests",
"sources" : [
"PLISTTests.swift"
],
"target_dependencies" : [
"PLIST"
],
"type" : "test"
},
{
"c99name" : "PLIST",
"module_type" : "SwiftTarget",
"name" : "PLIST",
"path" : "Sources/PLIST",
"product_memberships" : [
"PLIST",
"Universal"
],
"sources" : [
"PLIST.swift"
],
"target_dependencies" : [
"Either"
],
"type" : "library"
},
{
"c99name" : "JSONTests",
"module_type" : "SwiftTarget",
"name" : "JSONTests",
"path" : "Tests/JSONTests",
"resources" : [
{
"path" : "/host/spi-builder-workspace/Tests/JSONTests/testdata",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"JSONParserTests.swift",
"JSONTests.swift"
],
"target_dependencies" : [
"JSON"
],
"type" : "test"
},
{
"c99name" : "JSON",
"module_type" : "SwiftTarget",
"name" : "JSON",
"path" : "Sources/JSON",
"product_memberships" : [
"JSON",
"Universal"
],
"sources" : [
"JSON.swift",
"JSONCoding.swift",
"JSONParser.swift",
"JSONX.swift"
],
"target_dependencies" : [
"Either"
],
"type" : "library"
},
{
"c99name" : "EitherTests",
"module_type" : "SwiftTarget",
"name" : "EitherTests",
"path" : "Tests/EitherTests",
"sources" : [
"EitherTests.swift"
],
"target_dependencies" : [
"Either"
],
"type" : "test"
},
{
"c99name" : "Either",
"module_type" : "SwiftTarget",
"name" : "Either",
"path" : "Sources/Either",
"product_memberships" : [
"Either",
"XML",
"YAML",
"JSON",
"PLIST",
"Universal"
],
"sources" : [
"Either.swift"
],
"type" : "library"
}
],
"tools_version" : "5.4"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.