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 CurrencyConverter, reference main (4a75a8), with Swift 6.0 for Linux on 12 Apr 2025 02:25:43 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.60.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 4a75a84 Update ci.yml
Cloned https://github.com/pixyzehn/currency-converter.git
Revision (git rev-parse @):
4a75a8416f3d2b614032f191fd0994b1376fe739
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.0
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",
        "XMLParserError.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-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 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
8f84a9f2102e: Already exists
803e83960fa4: Pulling fs layer
731260fb6157: Pulling fs layer
340afc28ae42: Pulling fs layer
072280c597da: Pulling fs layer
6a08fe791bab: Pulling fs layer
072280c597da: Waiting
6a08fe791bab: Waiting
340afc28ae42: Download complete
803e83960fa4: Verifying Checksum
803e83960fa4: Download complete
6a08fe791bab: Download complete
072280c597da: Verifying Checksum
072280c597da: Download complete
803e83960fa4: Pull complete
731260fb6157: Verifying Checksum
731260fb6157: Download complete
731260fb6157: Pull complete
340afc28ae42: Pull complete
072280c597da: Pull complete
6a08fe791bab: Pull complete
Digest: sha256:9029076bb687edc160a3d5201c89e92dd9fa7309f33f090c4234365c83366c31
Status: Downloaded newer image for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2050] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.36s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.3 (2.34s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3365] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.36s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.69s)
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
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.3
[1/1] Compiling plugin Swift-DocC
[2/2] Compiling plugin Swift-DocC Preview
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version-24593BA9C3E375BF.txt
[5/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://getexpenses.app/eurofxref/eurofxref.xml")!
 5 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/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://getexpenses.app/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://getexpenses.app/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 var resultDate: String?
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:41:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
39 |     // MARK: - XMLParserDelegate
40 |
41 |     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.
42 |         guard elementName == "Cube", !attributeDict.isEmpty else {
43 |             // 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:84:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
82 |     }
83 |
84 |     func parserDidEndDocument(_ parser: XMLParser) {
   |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
85 |         if let resultDate = resultDate {
86 |             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:92:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
90 |     }
91 |
92 |     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.
93 |         callbacks.parseErrorOccurred?(.general(parseError))
94 |     }
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/10] Compiling CurrencyConverter XMLParserError.swift
[8/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://getexpenses.app/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://getexpenses.app/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 var resultDate: String?
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:41:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
39 |     // MARK: - XMLParserDelegate
40 |
41 |     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.
42 |         guard elementName == "Cube", !attributeDict.isEmpty else {
43 |             // 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:84:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
82 |     }
83 |
84 |     func parserDidEndDocument(_ parser: XMLParser) {
   |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
85 |         if let resultDate = resultDate {
86 |             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:92:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
90 |     }
91 |
92 |     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.
93 |         callbacks.parseErrorOccurred?(.general(parseError))
94 |     }
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:24:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
22 |
23 |     init(contentsOf url: URL = defaultXMLURL) {
24 |         parser = XMLParser(contentsOf: url)
   |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
25 |         super.init()
26 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:26:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
24 |         parser = XMLParser(contentsOf: url)
25 |         super.init()
26 |         parser?.delegate = self
   |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
27 |     }
28 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:30:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
28 |
29 |     init(data: Data) {
30 |         parser = XMLParser(data: data)
   |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
31 |         super.init()
32 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:32:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
30 |         parser = XMLParser(data: data)
31 |         super.init()
32 |         parser?.delegate = self
   |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
33 |     }
34 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:36:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
34 |
35 |     func parse() {
36 |         parser?.parse()
   |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
37 |     }
38 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:68:27: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
66 |                 }
67 |             case XMLParserKeys.currency.rawValue:
68 |                 if Locale.isoCurrencyCodes.contains(attribute.value) {
   |                           `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
69 |                     currencyRate.currencyCode = attribute.value
70 |                 } else {
[9/10] Compiling CurrencyConverter CurrencyRate.swift
[10/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 {
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:9029076bb687edc160a3d5201c89e92dd9fa7309f33f090c4234365c83366c31
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
[0/1] Planning build
[1/1] Compiling plugin Swift-DocC
[2/2] Compiling plugin Swift-DocC Preview
Building for debugging...
[2/3] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/9] 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://getexpenses.app/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://getexpenses.app/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 var resultDate: String?
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:41:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
39 |     // MARK: - XMLParserDelegate
40 |
41 |     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.
42 |         guard elementName == "Cube", !attributeDict.isEmpty else {
43 |             // 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:84:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
82 |     }
83 |
84 |     func parserDidEndDocument(_ parser: XMLParser) {
   |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
85 |         if let resultDate = resultDate {
86 |             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:92:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
90 |     }
91 |
92 |     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.
93 |         callbacks.parseErrorOccurred?(.general(parseError))
94 |     }
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
[5/9] Compiling CurrencyConverter XMLParserError.swift
[6/9] Compiling CurrencyConverter CurrencyRate.swift
[7/9] 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/9] 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://getexpenses.app/eurofxref/eurofxref.xml")!
 5 |
[9/9] 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://getexpenses.app/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://getexpenses.app/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 var resultDate: String?
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:41:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
39 |     // MARK: - XMLParserDelegate
40 |
41 |     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.
42 |         guard elementName == "Cube", !attributeDict.isEmpty else {
43 |             // 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:84:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
82 |     }
83 |
84 |     func parserDidEndDocument(_ parser: XMLParser) {
   |                                         `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
85 |         if let resultDate = resultDate {
86 |             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:92:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
90 |     }
91 |
92 |     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.
93 |         callbacks.parseErrorOccurred?(.general(parseError))
94 |     }
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:24:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
22 |
23 |     init(contentsOf url: URL = defaultXMLURL) {
24 |         parser = XMLParser(contentsOf: url)
   |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
25 |         super.init()
26 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:26:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
24 |         parser = XMLParser(contentsOf: url)
25 |         super.init()
26 |         parser?.delegate = self
   |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
27 |     }
28 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:30:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
28 |
29 |     init(data: Data) {
30 |         parser = XMLParser(data: data)
   |                  `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
31 |         super.init()
32 |         parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:32:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
30 |         parser = XMLParser(data: data)
31 |         super.init()
32 |         parser?.delegate = self
   |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
33 |     }
34 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:36:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
34 |
35 |     func parse() {
36 |         parser?.parse()
   |                 `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
37 |     }
38 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:68:27: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
66 |                 }
67 |             case XMLParserKeys.currency.rawValue:
68 |                 if Locale.isoCurrencyCodes.contains(attribute.value) {
   |                           `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
69 |                     currencyRate.currencyCode = attribute.value
70 |                 } else {
BUILD FAILURE 6.0 linux