The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Failed to build CurrencyConverter, reference main (5ac7d6), with Swift 6.1 for Linux on 15 Jun 2025 18:19:02 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-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.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/pixyzehn/currency-converter.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/pixyzehn/currency-converter
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 5ac7d6b Protect array from concurrent mutations or reads
Cloned https://github.com/pixyzehn/currency-converter.git
Revision (git rev-parse @):
5ac7d6bf004df0c52cb4a1118ce1872ef5b220a8
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/pixyzehn/currency-converter.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.1
Building package at path:  $PWD
https://github.com/pixyzehn/currency-converter.git
https://github.com/pixyzehn/currency-converter.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/swiftlang/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "CurrencyConverter",
  "name" : "CurrencyConverter",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    }
  ],
  "products" : [
    {
      "name" : "CurrencyConverter",
      "targets" : [
        "CurrencyConverter"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CurrencyConverterTests",
      "module_type" : "SwiftTarget",
      "name" : "CurrencyConverterTests",
      "path" : "Tests/CurrencyConverterTests",
      "sources" : [
        "CurrencyConverterTests.swift"
      ],
      "target_dependencies" : [
        "CurrencyConverter"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CurrencyConverter",
      "module_type" : "SwiftTarget",
      "name" : "CurrencyConverter",
      "path" : "Sources/CurrencyConverter",
      "product_memberships" : [
        "CurrencyConverter"
      ],
      "sources" : [
        "CurrencyConverter.swift",
        "CurrencyRate.swift",
        "ReferenceRates.swift",
        "ReferenceRatesXMLParser.swift",
        "SafeCallback.swift",
        "XMLParserError.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-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 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:930f780586bc21db1787241f3d35e477ed11b1101cff6fb987f4f674f121f048
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2082] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.49s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.4 (2.98s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3411] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.39s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.04s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.4
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[5/11] Compiling CurrencyConverter CurrencyRate.swift
[6/11] Emitting module CurrencyConverter
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
  6 |     private let parser: XMLParser?
    |                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  7 |
  8 |     private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 51 |     // MARK: - XMLParserDelegate
 52 |
 53 |     func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 54 |         guard elementName == "Cube", !attributeDict.isEmpty else {
 55 |             // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 94 |     }
 95 |
 96 |     func parserDidEndDocument(_ parser: XMLParser) {
    |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 97 |         if let resultDate = resultDate {
 98 |             callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 |     }
103 |
104 |     func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 |         callbacks.parseErrorOccurred?(.general(parseError))
106 |     }
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
[7/11] Compiling CurrencyConverter CurrencyConverter.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
[8/11] Compiling CurrencyConverter XMLParserError.swift
[9/11] Compiling CurrencyConverter ReferenceRates.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:22:22: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
20 |     ///     - baseCurrencyCode: The base currency code for the currency rates. The default is "EUR".
21 |     public func rates(amount: Double = 1, baseCurrencyCode: String = "EUR") -> [CurrencyRate] {
22 |         guard Locale.isoCurrencyCodes.contains(baseCurrencyCode) else {
   |                      `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
23 |             return []
24 |         }
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:57:39: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
55 |         }
56 |
57 |         let isoCurrencyCodes = Locale.isoCurrencyCodes
   |                                       `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
58 |
59 |         guard isoCurrencyCodes.contains(fromCurrencyCode) && isoCurrencyCodes.contains(toCurrencyCode) else {
[10/11] Compiling CurrencyConverter SafeCallback.swift
[11/11] Compiling CurrencyConverter ReferenceRatesXMLParser.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
  6 |     private let parser: XMLParser?
    |                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  7 |
  8 |     private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 51 |     // MARK: - XMLParserDelegate
 52 |
 53 |     func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 54 |         guard elementName == "Cube", !attributeDict.isEmpty else {
 55 |             // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 94 |     }
 95 |
 96 |     func parserDidEndDocument(_ parser: XMLParser) {
    |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 97 |         if let resultDate = resultDate {
 98 |             callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 |     }
103 |
104 |     func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 |         callbacks.parseErrorOccurred?(.general(parseError))
106 |     }
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:36:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 34 |
 35 |     init(contentsOf url: URL = defaultXMLURL) {
 36 |         parser = XMLParser(contentsOf: url)
    |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 37 |         super.init()
 38 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:38:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 36 |         parser = XMLParser(contentsOf: url)
 37 |         super.init()
 38 |         parser?.delegate = self
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 39 |     }
 40 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:42:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 40 |
 41 |     init(data: Data) {
 42 |         parser = XMLParser(data: data)
    |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 43 |         super.init()
 44 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:44:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 42 |         parser = XMLParser(data: data)
 43 |         super.init()
 44 |         parser?.delegate = self
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 45 |     }
 46 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:48:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
 46 |
 47 |     func parse() {
 48 |         parser?.parse()
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
 49 |     }
 50 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:80:27: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
 78 |                 }
 79 |             case XMLParserKeys.currency.rawValue:
 80 |                 if Locale.isoCurrencyCodes.contains(attribute.value) {
    |                           `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
 81 |                     currencyRate.currencyCode = attribute.value
 82 |                 } else {
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-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:930f780586bc21db1787241f3d35e477ed11b1101cff6fb987f4f674f121f048
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
[0/1] Planning build
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/3] Write swift-version-24593BA9C3E375BF.txt
[4/10] Compiling CurrencyConverter SafeCallback.swift
[5/10] Compiling CurrencyConverter XMLParserError.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/10] Compiling CurrencyConverter CurrencyRate.swift
[7/10] Compiling CurrencyConverter ReferenceRates.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:22:22: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
20 |     ///     - baseCurrencyCode: The base currency code for the currency rates. The default is "EUR".
21 |     public func rates(amount: Double = 1, baseCurrencyCode: String = "EUR") -> [CurrencyRate] {
22 |         guard Locale.isoCurrencyCodes.contains(baseCurrencyCode) else {
   |                      `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
23 |             return []
24 |         }
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:57:39: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
55 |         }
56 |
57 |         let isoCurrencyCodes = Locale.isoCurrencyCodes
   |                                       `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
58 |
59 |         guard isoCurrencyCodes.contains(fromCurrencyCode) && isoCurrencyCodes.contains(toCurrencyCode) else {
[8/10] Emitting module CurrencyConverter
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
  6 |     private let parser: XMLParser?
    |                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  7 |
  8 |     private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 51 |     // MARK: - XMLParserDelegate
 52 |
 53 |     func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 54 |         guard elementName == "Cube", !attributeDict.isEmpty else {
 55 |             // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 94 |     }
 95 |
 96 |     func parserDidEndDocument(_ parser: XMLParser) {
    |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 97 |         if let resultDate = resultDate {
 98 |             callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 |     }
103 |
104 |     func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 |         callbacks.parseErrorOccurred?(.general(parseError))
106 |     }
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
[9/10] Compiling CurrencyConverter CurrencyConverter.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
[10/10] Compiling CurrencyConverter ReferenceRatesXMLParser.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
  1 | import Foundation
  2 |
  3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
    |                                          `- error: cannot find type 'XMLParserDelegate' in scope
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  4 |     private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
  5 |
  6 |     private let parser: XMLParser?
    |                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
  7 |
  8 |     private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 51 |     // MARK: - XMLParserDelegate
 52 |
 53 |     func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 54 |         guard elementName == "Cube", !attributeDict.isEmpty else {
 55 |             // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 94 |     }
 95 |
 96 |     func parserDidEndDocument(_ parser: XMLParser) {
    |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
 97 |         if let resultDate = resultDate {
 98 |             callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 |     }
103 |
104 |     func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
    |                           `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 |         callbacks.parseErrorOccurred?(.general(parseError))
106 |     }
Foundation.XMLParser:2:18: note: 'XMLParser' 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 XMLParser = AnyObject
  |                  `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:36:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 34 |
 35 |     init(contentsOf url: URL = defaultXMLURL) {
 36 |         parser = XMLParser(contentsOf: url)
    |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 37 |         super.init()
 38 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:38:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 36 |         parser = XMLParser(contentsOf: url)
 37 |         super.init()
 38 |         parser?.delegate = self
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 39 |     }
 40 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:42:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 40 |
 41 |     init(data: Data) {
 42 |         parser = XMLParser(data: data)
    |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
 43 |         super.init()
 44 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:44:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 42 |         parser = XMLParser(data: data)
 43 |         super.init()
 44 |         parser?.delegate = self
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
 45 |     }
 46 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:48:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
 46 |
 47 |     func parse() {
 48 |         parser?.parse()
    |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
 49 |     }
 50 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:80:27: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
 78 |                 }
 79 |             case XMLParserKeys.currency.rawValue:
 80 |                 if Locale.isoCurrencyCodes.contains(attribute.value) {
    |                           `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
 81 |                     currencyRate.currencyCode = attribute.value
 82 |                 } else {
BUILD FAILURE 6.1 linux