Build Information
Failed to build Appcast, reference 0.4.0 (21968e
), with Swift 6.1 for Linux on 1 May 2025 08:34:05 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.61.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/slidoapp/Appcast.git
Reference: 0.4.0
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/slidoapp/Appcast
* tag 0.4.0 -> FETCH_HEAD
HEAD is now at 21968ef Appcast package v0.4.0
Cloned https://github.com/slidoapp/Appcast.git
Revision (git rev-parse @):
21968efcdf1aff6f65a901ef0c3dec1b2f5e3a7f
SUCCESS checkout https://github.com/slidoapp/Appcast.git at 0.4.0
========================================
Build
========================================
Selected platform: linux
Swift version: 6.1
Building package at path: $PWD
https://github.com/slidoapp/Appcast.git
https://github.com/slidoapp/Appcast.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
],
"manifest_display_name" : "Appcast",
"name" : "Appcast",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Appcast",
"targets" : [
"Appcast"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "IntegrationTests",
"module_type" : "SwiftTarget",
"name" : "IntegrationTests",
"path" : "Tests/IntegrationTests",
"resources" : [
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/test-dangerous-link.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/test-links.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/test-relative-urls.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/testappcast.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/testappcast_channels.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/testappcast_delta.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/testappcast_info_updates.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/testappcast_minimumAutoupdateVersion.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/testappcast_minimumAutoupdateVersionSkipping.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/testappcast_minimumAutoupdateVersionSkipping2.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/testappcast_phasedRollout.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/testlocalizedreleasenotesappcast.xml",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/IntegrationTests/Resources/testnamespaces.xml",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"SUAppcastChannelTests.swift",
"SUAppcastCriticalUpdateTests.swift",
"SUAppcastDangerousLinkTests.swift",
"SUAppcastDriverTests.swift",
"SUAppcastInformationalUpdateTests.swift",
"SUAppcastLinkTests.swift",
"SUAppcastMinimumAutoupdateTests.swift",
"SUAppcastParserNamespacesTests.swift",
"SUAppcastParserTests.swift",
"SUAppcastPhasedGroupRolloutsTests.swift",
"SUAppcastReleaseNotesTests.swift",
"SUAppcastTest.swift"
],
"target_dependencies" : [
"Appcast"
],
"type" : "test"
},
{
"c99name" : "AppcastTests",
"module_type" : "SwiftTarget",
"name" : "AppcastTests",
"path" : "Tests/AppcastTests",
"resources" : [
{
"path" : "/host/spi-builder-workspace/Tests/AppcastTests/Resources/appcast_simple.xml",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"AlwaysPassTests.swift",
"SPUAppcastItemStateTests.swift",
"SPUDownloadDataTests.swift",
"SUAppcastItemBaseTests.swift",
"SUAppcastItemTests+displayVersionString.swift",
"SUAppcastItemTests+isCriticalUpdate.swift",
"SUAppcastItemTests+isInformationOnlyUpdate.swift",
"SUAppcastItemTests+isMajorUpgrade.swift",
"SUAppcastTests.swift",
"SUOperatingSystemTests.swift",
"SUStandardVersionComparatorTests.swift"
],
"target_dependencies" : [
"Appcast"
],
"type" : "test"
},
{
"c99name" : "Appcast",
"module_type" : "SwiftTarget",
"name" : "Appcast",
"path" : "Sources/Appcast",
"product_memberships" : [
"Appcast"
],
"sources" : [
"Appcast.swift",
"Constants.swift",
"SPUAppcastItemState.swift",
"SPUAppcastItemStateResolver.swift",
"SPUDownloadData.swift",
"SPUSkippedUpdate.swift",
"SUAppcast.swift",
"SUAppcastDriver.swift",
"SUAppcastItem.swift",
"SUOperatingSystem.swift",
"SUSignatures.swift",
"SUStandardVersionComparator.swift",
"SUVersionComparison.swift"
],
"type" : "library"
}
],
"tools_version" : "5.8"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/15] Compiling Appcast SPUDownloadData.swift
[4/15] Compiling Appcast SPUSkippedUpdate.swift
[5/15] Compiling Appcast SUAppcast.swift
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:175:41: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
173 | }
174 |
175 | func sparkleNamespacedName(of node: XMLNode) -> String? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
176 | // XML namespace prefix is semantically meaningless, so compare namespace URI
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:57: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:227:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
225 | typealias AttributesDictionary = [String: String]
226 |
227 | func attributes(of node: XMLNode) -> AttributesDictionary {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
228 | var dictionary = [String: String]()
229 |
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:27:28: error: 'XMLDocument' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
25 | self.items = []
26 |
27 | let document = try XMLDocument(data: appcastData, options: .nodeLoadExternalEntitiesNever)
| `- error: 'XMLDocument' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
28 | let xmlItems = try document.nodes(forXPath: "/rss/channel/item")
29 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:27:69: error: cannot infer contextual base in reference to member 'nodeLoadExternalEntitiesNever'
25 | self.items = []
26 |
27 | let document = try XMLDocument(data: appcastData, options: .nodeLoadExternalEntitiesNever)
| `- error: cannot infer contextual base in reference to member 'nodeLoadExternalEntitiesNever'
28 | let xmlItems = try document.nodes(forXPath: "/rss/channel/item")
29 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:48:39: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
46 | for item in xmlItems {
47 | var dict = SUAppcastItemProperties()
48 | var nodesDict = [String: [XMLNode]]()
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
49 |
50 | if item.childCount > 0 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:96:46: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
94 | // that's a risk we can avoid. We don't use the date anywhere other
95 | // than it being accessible from SUAppcastItem
96 | if let dateString = node.stringValue {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
97 | dict[name] = dateString
98 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:101:47: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
99 | }
100 | else if name == SURSSElement.Description {
101 | if let description = node.stringValue {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
102 | let attributes = self.attributes(of: node)
103 | let descriptionFormat = attributes[SUAppcastAttribute.Format]
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:115:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
113 | var deltas = [[String: String]]()
114 |
115 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
116 | for child in children {
117 | if child.name == SURSSElement.Enclosure {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:129:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
127 | var tags = [String]()
128 |
129 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
130 | for child in children {
131 | if let childName = child.name {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:142:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
140 | var informationalUpdateVersions = SUAppcastItem.InformationalUpdateType()
141 |
142 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
143 | for child in children {
144 | if child.name == SUAppcastElement.Version {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:162:47: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
160 | else {
161 | // add all other values as strings
162 | if let stringValue = node.stringValue?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
163 | dict[name] = stringValue
164 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:178:17: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'uri'
176 | // XML namespace prefix is semantically meaningless, so compare namespace URI
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
178 | if node.uri == "http://www.andymatuschak.org/xml-namespaces/sparkle" {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'uri'
179 | guard let localName = node.localName else {
180 | return nil
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:179:40: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'localName'
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
178 | if node.uri == "http://www.andymatuschak.org/xml-namespaces/sparkle" {
179 | guard let localName = node.localName else {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'localName'
180 | return nil
181 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:187:21: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'name'
185 |
186 | // Backwards compatibility
187 | return node.name
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'name'
188 | }
189 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:203:38: warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
201 | var languages = [String]()
202 | for node in nodes {
203 | guard let element = node as? XMLElement else {
| `- warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
204 | continue
205 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:203:42: error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
201 | var languages = [String]()
202 | for node in nodes {
203 | guard let element = node as? XMLElement else {
| `- error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
204 | continue
205 | }
Foundation.XMLElement:2:18: note: 'XMLElement' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLElement = AnyObject
| `- note: 'XMLElement' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:207:40: error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attribute'
205 | }
206 |
207 | let nodeLanguage = element.attribute(forName: SUAppcast.SUXMLLanguage)?.stringValue ?? ""
| `- error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attribute'
208 | let language = nodeLanguage.isEmpty ? "en" : nodeLanguage
209 | languages.append(language)
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:230:34: warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
228 | var dictionary = [String: String]()
229 |
230 | guard let element = node as? XMLElement else {
| `- warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
231 | return dictionary
232 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:230:38: error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
228 | var dictionary = [String: String]()
229 |
230 | guard let element = node as? XMLElement else {
| `- error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
231 | return dictionary
232 | }
Foundation.XMLElement:2:18: note: 'XMLElement' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLElement = AnyObject
| `- note: 'XMLElement' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:234:40: error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attributes'
232 | }
233 |
234 | guard let attributes = element.attributes else {
| `- error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attributes'
235 | return dictionary
236 | }
[6/15] Compiling Appcast SUAppcastDriver.swift
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:175:41: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
173 | }
174 |
175 | func sparkleNamespacedName(of node: XMLNode) -> String? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
176 | // XML namespace prefix is semantically meaningless, so compare namespace URI
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:57: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:227:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
225 | typealias AttributesDictionary = [String: String]
226 |
227 | func attributes(of node: XMLNode) -> AttributesDictionary {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
228 | var dictionary = [String: String]()
229 |
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:27:28: error: 'XMLDocument' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
25 | self.items = []
26 |
27 | let document = try XMLDocument(data: appcastData, options: .nodeLoadExternalEntitiesNever)
| `- error: 'XMLDocument' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
28 | let xmlItems = try document.nodes(forXPath: "/rss/channel/item")
29 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:27:69: error: cannot infer contextual base in reference to member 'nodeLoadExternalEntitiesNever'
25 | self.items = []
26 |
27 | let document = try XMLDocument(data: appcastData, options: .nodeLoadExternalEntitiesNever)
| `- error: cannot infer contextual base in reference to member 'nodeLoadExternalEntitiesNever'
28 | let xmlItems = try document.nodes(forXPath: "/rss/channel/item")
29 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:48:39: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
46 | for item in xmlItems {
47 | var dict = SUAppcastItemProperties()
48 | var nodesDict = [String: [XMLNode]]()
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
49 |
50 | if item.childCount > 0 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:96:46: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
94 | // that's a risk we can avoid. We don't use the date anywhere other
95 | // than it being accessible from SUAppcastItem
96 | if let dateString = node.stringValue {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
97 | dict[name] = dateString
98 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:101:47: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
99 | }
100 | else if name == SURSSElement.Description {
101 | if let description = node.stringValue {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
102 | let attributes = self.attributes(of: node)
103 | let descriptionFormat = attributes[SUAppcastAttribute.Format]
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:115:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
113 | var deltas = [[String: String]]()
114 |
115 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
116 | for child in children {
117 | if child.name == SURSSElement.Enclosure {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:129:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
127 | var tags = [String]()
128 |
129 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
130 | for child in children {
131 | if let childName = child.name {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:142:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
140 | var informationalUpdateVersions = SUAppcastItem.InformationalUpdateType()
141 |
142 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
143 | for child in children {
144 | if child.name == SUAppcastElement.Version {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:162:47: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
160 | else {
161 | // add all other values as strings
162 | if let stringValue = node.stringValue?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
163 | dict[name] = stringValue
164 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:178:17: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'uri'
176 | // XML namespace prefix is semantically meaningless, so compare namespace URI
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
178 | if node.uri == "http://www.andymatuschak.org/xml-namespaces/sparkle" {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'uri'
179 | guard let localName = node.localName else {
180 | return nil
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:179:40: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'localName'
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
178 | if node.uri == "http://www.andymatuschak.org/xml-namespaces/sparkle" {
179 | guard let localName = node.localName else {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'localName'
180 | return nil
181 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:187:21: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'name'
185 |
186 | // Backwards compatibility
187 | return node.name
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'name'
188 | }
189 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:203:38: warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
201 | var languages = [String]()
202 | for node in nodes {
203 | guard let element = node as? XMLElement else {
| `- warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
204 | continue
205 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:203:42: error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
201 | var languages = [String]()
202 | for node in nodes {
203 | guard let element = node as? XMLElement else {
| `- error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
204 | continue
205 | }
Foundation.XMLElement:2:18: note: 'XMLElement' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLElement = AnyObject
| `- note: 'XMLElement' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:207:40: error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attribute'
205 | }
206 |
207 | let nodeLanguage = element.attribute(forName: SUAppcast.SUXMLLanguage)?.stringValue ?? ""
| `- error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attribute'
208 | let language = nodeLanguage.isEmpty ? "en" : nodeLanguage
209 | languages.append(language)
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:230:34: warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
228 | var dictionary = [String: String]()
229 |
230 | guard let element = node as? XMLElement else {
| `- warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
231 | return dictionary
232 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:230:38: error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
228 | var dictionary = [String: String]()
229 |
230 | guard let element = node as? XMLElement else {
| `- error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
231 | return dictionary
232 | }
Foundation.XMLElement:2:18: note: 'XMLElement' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLElement = AnyObject
| `- note: 'XMLElement' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:234:40: error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attributes'
232 | }
233 |
234 | guard let attributes = element.attributes else {
| `- error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attributes'
235 | return dictionary
236 | }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[7/16] Compiling Appcast Appcast.swift
[8/16] Compiling Appcast Constants.swift
[9/16] Compiling Appcast SPUAppcastItemState.swift
[10/16] Compiling Appcast SPUAppcastItemStateResolver.swift
[11/16] Emitting module Appcast
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:175:41: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
173 | }
174 |
175 | func sparkleNamespacedName(of node: XMLNode) -> String? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
176 | // XML namespace prefix is semantically meaningless, so compare namespace URI
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:57: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:227:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
225 | typealias AttributesDictionary = [String: String]
226 |
227 | func attributes(of node: XMLNode) -> AttributesDictionary {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
228 | var dictionary = [String: String]()
229 |
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
[12/16] Compiling Appcast SUVersionComparison.swift
[13/16] Compiling Appcast SUSignatures.swift
[14/16] Compiling Appcast SUStandardVersionComparator.swift
[15/16] Compiling Appcast SUAppcastItem.swift
[16/16] Compiling Appcast SUOperatingSystem.swift
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[2/14] Emitting module Appcast
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:175:41: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
173 | }
174 |
175 | func sparkleNamespacedName(of node: XMLNode) -> String? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
176 | // XML namespace prefix is semantically meaningless, so compare namespace URI
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:57: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:227:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
225 | typealias AttributesDictionary = [String: String]
226 |
227 | func attributes(of node: XMLNode) -> AttributesDictionary {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
228 | var dictionary = [String: String]()
229 |
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
[3/15] Compiling Appcast SUStandardVersionComparator.swift
[4/15] Compiling Appcast SUAppcast.swift
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:175:41: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
173 | }
174 |
175 | func sparkleNamespacedName(of node: XMLNode) -> String? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
176 | // XML namespace prefix is semantically meaningless, so compare namespace URI
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:57: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:227:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
225 | typealias AttributesDictionary = [String: String]
226 |
227 | func attributes(of node: XMLNode) -> AttributesDictionary {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
228 | var dictionary = [String: String]()
229 |
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:27:28: error: 'XMLDocument' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
25 | self.items = []
26 |
27 | let document = try XMLDocument(data: appcastData, options: .nodeLoadExternalEntitiesNever)
| `- error: 'XMLDocument' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
28 | let xmlItems = try document.nodes(forXPath: "/rss/channel/item")
29 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:27:69: error: cannot infer contextual base in reference to member 'nodeLoadExternalEntitiesNever'
25 | self.items = []
26 |
27 | let document = try XMLDocument(data: appcastData, options: .nodeLoadExternalEntitiesNever)
| `- error: cannot infer contextual base in reference to member 'nodeLoadExternalEntitiesNever'
28 | let xmlItems = try document.nodes(forXPath: "/rss/channel/item")
29 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:48:39: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
46 | for item in xmlItems {
47 | var dict = SUAppcastItemProperties()
48 | var nodesDict = [String: [XMLNode]]()
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
49 |
50 | if item.childCount > 0 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:96:46: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
94 | // that's a risk we can avoid. We don't use the date anywhere other
95 | // than it being accessible from SUAppcastItem
96 | if let dateString = node.stringValue {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
97 | dict[name] = dateString
98 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:101:47: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
99 | }
100 | else if name == SURSSElement.Description {
101 | if let description = node.stringValue {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
102 | let attributes = self.attributes(of: node)
103 | let descriptionFormat = attributes[SUAppcastAttribute.Format]
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:115:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
113 | var deltas = [[String: String]]()
114 |
115 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
116 | for child in children {
117 | if child.name == SURSSElement.Enclosure {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:129:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
127 | var tags = [String]()
128 |
129 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
130 | for child in children {
131 | if let childName = child.name {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:142:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
140 | var informationalUpdateVersions = SUAppcastItem.InformationalUpdateType()
141 |
142 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
143 | for child in children {
144 | if child.name == SUAppcastElement.Version {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:162:47: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
160 | else {
161 | // add all other values as strings
162 | if let stringValue = node.stringValue?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
163 | dict[name] = stringValue
164 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:178:17: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'uri'
176 | // XML namespace prefix is semantically meaningless, so compare namespace URI
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
178 | if node.uri == "http://www.andymatuschak.org/xml-namespaces/sparkle" {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'uri'
179 | guard let localName = node.localName else {
180 | return nil
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:179:40: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'localName'
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
178 | if node.uri == "http://www.andymatuschak.org/xml-namespaces/sparkle" {
179 | guard let localName = node.localName else {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'localName'
180 | return nil
181 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:187:21: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'name'
185 |
186 | // Backwards compatibility
187 | return node.name
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'name'
188 | }
189 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:203:38: warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
201 | var languages = [String]()
202 | for node in nodes {
203 | guard let element = node as? XMLElement else {
| `- warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
204 | continue
205 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:203:42: error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
201 | var languages = [String]()
202 | for node in nodes {
203 | guard let element = node as? XMLElement else {
| `- error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
204 | continue
205 | }
Foundation.XMLElement:2:18: note: 'XMLElement' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLElement = AnyObject
| `- note: 'XMLElement' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:207:40: error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attribute'
205 | }
206 |
207 | let nodeLanguage = element.attribute(forName: SUAppcast.SUXMLLanguage)?.stringValue ?? ""
| `- error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attribute'
208 | let language = nodeLanguage.isEmpty ? "en" : nodeLanguage
209 | languages.append(language)
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:230:34: warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
228 | var dictionary = [String: String]()
229 |
230 | guard let element = node as? XMLElement else {
| `- warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
231 | return dictionary
232 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:230:38: error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
228 | var dictionary = [String: String]()
229 |
230 | guard let element = node as? XMLElement else {
| `- error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
231 | return dictionary
232 | }
Foundation.XMLElement:2:18: note: 'XMLElement' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLElement = AnyObject
| `- note: 'XMLElement' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:234:40: error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attributes'
232 | }
233 |
234 | guard let attributes = element.attributes else {
| `- error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attributes'
235 | return dictionary
236 | }
[5/15] Compiling Appcast SUAppcastDriver.swift
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:175:41: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
173 | }
174 |
175 | func sparkleNamespacedName(of node: XMLNode) -> String? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
176 | // XML namespace prefix is semantically meaningless, so compare namespace URI
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:192:57: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
190 | static let SUXMLLanguage = "xml:lang"
191 |
192 | func bestNode(in nodes: [XMLNode], name: String) -> XMLNode? {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
193 | // We use this method to pick out the localized version of a node when one's available.
194 | if nodes.count == 1 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:227:30: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
225 | typealias AttributesDictionary = [String: String]
226 |
227 | func attributes(of node: XMLNode) -> AttributesDictionary {
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
228 | var dictionary = [String: String]()
229 |
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:27:28: error: 'XMLDocument' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
25 | self.items = []
26 |
27 | let document = try XMLDocument(data: appcastData, options: .nodeLoadExternalEntitiesNever)
| `- error: 'XMLDocument' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
28 | let xmlItems = try document.nodes(forXPath: "/rss/channel/item")
29 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:27:69: error: cannot infer contextual base in reference to member 'nodeLoadExternalEntitiesNever'
25 | self.items = []
26 |
27 | let document = try XMLDocument(data: appcastData, options: .nodeLoadExternalEntitiesNever)
| `- error: cannot infer contextual base in reference to member 'nodeLoadExternalEntitiesNever'
28 | let xmlItems = try document.nodes(forXPath: "/rss/channel/item")
29 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:48:39: error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
46 | for item in xmlItems {
47 | var dict = SUAppcastItemProperties()
48 | var nodesDict = [String: [XMLNode]]()
| `- error: 'XMLNode' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
49 |
50 | if item.childCount > 0 {
Foundation.XMLNode:2:18: note: 'XMLNode' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLNode = AnyObject
| `- note: 'XMLNode' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:96:46: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
94 | // that's a risk we can avoid. We don't use the date anywhere other
95 | // than it being accessible from SUAppcastItem
96 | if let dateString = node.stringValue {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
97 | dict[name] = dateString
98 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:101:47: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
99 | }
100 | else if name == SURSSElement.Description {
101 | if let description = node.stringValue {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
102 | let attributes = self.attributes(of: node)
103 | let descriptionFormat = attributes[SUAppcastAttribute.Format]
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:115:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
113 | var deltas = [[String: String]]()
114 |
115 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
116 | for child in children {
117 | if child.name == SURSSElement.Enclosure {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:129:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
127 | var tags = [String]()
128 |
129 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
130 | for child in children {
131 | if let childName = child.name {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:142:44: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
140 | var informationalUpdateVersions = SUAppcastItem.InformationalUpdateType()
141 |
142 | if let children = node.children {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'children'
143 | for child in children {
144 | if child.name == SUAppcastElement.Version {
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:162:47: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
160 | else {
161 | // add all other values as strings
162 | if let stringValue = node.stringValue?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'stringValue'
163 | dict[name] = stringValue
164 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:178:17: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'uri'
176 | // XML namespace prefix is semantically meaningless, so compare namespace URI
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
178 | if node.uri == "http://www.andymatuschak.org/xml-namespaces/sparkle" {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'uri'
179 | guard let localName = node.localName else {
180 | return nil
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:179:40: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'localName'
177 | // NS URI isn't used to fetch anything, and must match exactly, so we look for http:// not https://
178 | if node.uri == "http://www.andymatuschak.org/xml-namespaces/sparkle" {
179 | guard let localName = node.localName else {
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'localName'
180 | return nil
181 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:187:21: error: value of type 'XMLNode' (aka 'AnyObject') has no member 'name'
185 |
186 | // Backwards compatibility
187 | return node.name
| `- error: value of type 'XMLNode' (aka 'AnyObject') has no member 'name'
188 | }
189 |
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:203:38: warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
201 | var languages = [String]()
202 | for node in nodes {
203 | guard let element = node as? XMLElement else {
| `- warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
204 | continue
205 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:203:42: error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
201 | var languages = [String]()
202 | for node in nodes {
203 | guard let element = node as? XMLElement else {
| `- error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
204 | continue
205 | }
Foundation.XMLElement:2:18: note: 'XMLElement' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLElement = AnyObject
| `- note: 'XMLElement' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:207:40: error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attribute'
205 | }
206 |
207 | let nodeLanguage = element.attribute(forName: SUAppcast.SUXMLLanguage)?.stringValue ?? ""
| `- error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attribute'
208 | let language = nodeLanguage.isEmpty ? "en" : nodeLanguage
209 | languages.append(language)
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:230:34: warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
228 | var dictionary = [String: String]()
229 |
230 | guard let element = node as? XMLElement else {
| `- warning: conditional cast from 'XMLNode' (aka 'AnyObject') to 'XMLElement' (aka 'AnyObject') always succeeds
231 | return dictionary
232 | }
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:230:38: error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
228 | var dictionary = [String: String]()
229 |
230 | guard let element = node as? XMLElement else {
| `- error: 'XMLElement' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
231 | return dictionary
232 | }
Foundation.XMLElement:2:18: note: 'XMLElement' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLElement = AnyObject
| `- note: 'XMLElement' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:234:40: error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attributes'
232 | }
233 |
234 | guard let attributes = element.attributes else {
| `- error: value of type 'XMLElement' (aka 'AnyObject') has no member 'attributes'
235 | return dictionary
236 | }
[6/15] Compiling Appcast SUVersionComparison.swift
[7/15] Compiling Appcast SPUAppcastItemState.swift
[8/15] Compiling Appcast SPUAppcastItemStateResolver.swift
[9/15] Compiling Appcast SUSignatures.swift
[10/15] Compiling Appcast Appcast.swift
[11/15] Compiling Appcast Constants.swift
[12/15] Compiling Appcast SPUDownloadData.swift
[13/15] Compiling Appcast SPUSkippedUpdate.swift
[14/15] Compiling Appcast SUAppcastItem.swift
[15/15] Compiling Appcast SUOperatingSystem.swift
BUILD FAILURE 6.1 linux