The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Failed to build Appcast, reference main (8646f5), with Swift 6.0 for Linux on 3 Nov 2024 19:55:03 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/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/slidoapp/Appcast.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/slidoapp/Appcast
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 8646f57 Merge pull request #2 from slidoapp/test/reporter
Cloned https://github.com/slidoapp/Appcast.git
Revision (git rev-parse @):
8646f57fe8ecab61f24e4abc75211895b52b4dc4
SUCCESS checkout https://github.com/slidoapp/Appcast.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/slidoapp/Appcast.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/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/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/15] Compiling Appcast SPUAppcastItemState.swift
[4/15] Compiling Appcast SPUAppcastItemStateResolver.swift
[5/16] Compiling Appcast SUVersionComparison.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/16] Compiling Appcast Appcast.swift
[7/16] Compiling Appcast Constants.swift
[8/16] Emitting module Appcast
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:12:25: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcast' may have shared mutable state; this is an error in the Swift 6 language mode
  8 | import Foundation
  9 |
 10 | public class SUAppcast {
    |              `- note: class 'SUAppcast' does not conform to the 'Sendable' protocol
 11 |
 12 |     internal static let empty = SUAppcast()
    |                         |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcast' may have shared mutable state; this is an error in the Swift 6 language mode
    |                         |- note: annotate 'empty' 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
 13 |
 14 |     public var items: [SUAppcastItem]
/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/SUAppcastItem.swift:23:23: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcastItem' may have shared mutable state; this is an error in the Swift 6 language mode
 17 | /// Extended documentation and examples on using appcast item features are available at:
 18 | /// https://sparkle-project.org/documentation/publishing/
 19 | public class SUAppcastItem {
    |              `- note: class 'SUAppcastItem' does not conform to the 'Sendable' protocol
 20 |     /// An empty appcast item.
 21 |     ///
 22 |     /// This may be used as a potential return value in `-[SPUUpdaterDelegate bestValidUpdateInAppcast:forUpdater:]`
 23 |     public static let empty = SUAppcastItem()
    |                       |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcastItem' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'empty' 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
 24 |
 25 |     /**
/host/spi-builder-workspace/Sources/Appcast/SUStandardVersionComparator.swift:17:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SUStandardVersionComparator' may have shared mutable state; this is an error in the Swift 6 language mode
 13 | /// It's "dumb" in that it does essentially string comparison
 14 | /// in components split by character type.
 15 | public struct SUStandardVersionComparator: SUVersionComparison {
    |               `- note: consider making struct 'SUStandardVersionComparator' conform to the 'Sendable' protocol
 16 |     /// A singleton instance of the comparator.
 17 |     public static let `default` = SUStandardVersionComparator()
    |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SUStandardVersionComparator' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'default' 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
 18 |
 19 |     /// Initializes a new instance of the standard version comparator.
[9/16] Compiling Appcast SPUDownloadData.swift
[10/16] Compiling Appcast SPUSkippedUpdate.swift
[11/16] Compiling Appcast SUSignatures.swift
[12/16] Compiling Appcast SUStandardVersionComparator.swift
/host/spi-builder-workspace/Sources/Appcast/SUStandardVersionComparator.swift:17:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SUStandardVersionComparator' may have shared mutable state; this is an error in the Swift 6 language mode
 13 | /// It's "dumb" in that it does essentially string comparison
 14 | /// in components split by character type.
 15 | public struct SUStandardVersionComparator: SUVersionComparison {
    |               `- note: consider making struct 'SUStandardVersionComparator' conform to the 'Sendable' protocol
 16 |     /// A singleton instance of the comparator.
 17 |     public static let `default` = SUStandardVersionComparator()
    |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SUStandardVersionComparator' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'default' 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
 18 |
 19 |     /// Initializes a new instance of the standard version comparator.
[13/16] Compiling Appcast SUAppcastItem.swift
/host/spi-builder-workspace/Sources/Appcast/SUAppcastItem.swift:23:23: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcastItem' may have shared mutable state; this is an error in the Swift 6 language mode
 17 | /// Extended documentation and examples on using appcast item features are available at:
 18 | /// https://sparkle-project.org/documentation/publishing/
 19 | public class SUAppcastItem {
    |              `- note: class 'SUAppcastItem' does not conform to the 'Sendable' protocol
 20 |     /// An empty appcast item.
 21 |     ///
 22 |     /// This may be used as a potential return value in `-[SPUUpdaterDelegate bestValidUpdateInAppcast:forUpdater:]`
 23 |     public static let empty = SUAppcastItem()
    |                       |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcastItem' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'empty' 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
 24 |
 25 |     /**
[14/16] Compiling Appcast SUOperatingSystem.swift
/host/spi-builder-workspace/Sources/Appcast/SUAppcastItem.swift:23:23: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcastItem' may have shared mutable state; this is an error in the Swift 6 language mode
 17 | /// Extended documentation and examples on using appcast item features are available at:
 18 | /// https://sparkle-project.org/documentation/publishing/
 19 | public class SUAppcastItem {
    |              `- note: class 'SUAppcastItem' does not conform to the 'Sendable' protocol
 20 |     /// An empty appcast item.
 21 |     ///
 22 |     /// This may be used as a potential return value in `-[SPUUpdaterDelegate bestValidUpdateInAppcast:forUpdater:]`
 23 |     public static let empty = SUAppcastItem()
    |                       |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcastItem' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'empty' 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
 24 |
 25 |     /**
[15/16] Compiling Appcast SUAppcast.swift
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:12:25: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcast' may have shared mutable state; this is an error in the Swift 6 language mode
  8 | import Foundation
  9 |
 10 | public class SUAppcast {
    |              `- note: class 'SUAppcast' does not conform to the 'Sendable' protocol
 11 |
 12 |     internal static let empty = SUAppcast()
    |                         |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcast' may have shared mutable state; this is an error in the Swift 6 language mode
    |                         |- note: annotate 'empty' 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
 13 |
 14 |     public var items: [SUAppcastItem]
/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 = [String: Any]()
 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 |         }
[16/16] Compiling Appcast SUAppcastDriver.swift
/host/spi-builder-workspace/Sources/Appcast/SUAppcast.swift:12:25: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcast' may have shared mutable state; this is an error in the Swift 6 language mode
  8 | import Foundation
  9 |
 10 | public class SUAppcast {
    |              `- note: class 'SUAppcast' does not conform to the 'Sendable' protocol
 11 |
 12 |     internal static let empty = SUAppcast()
    |                         |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'SUAppcast' may have shared mutable state; this is an error in the Swift 6 language mode
    |                         |- note: annotate 'empty' 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
 13 |
 14 |     public var items: [SUAppcastItem]
/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 = [String: Any]()
 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 |         }
BUILD FAILURE 6.0 linux