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

Successful build of INISerialization, reference 1.0.0-alpha.4 (9185c4), with Swift 6.0 for Linux on 31 Oct 2024 22:07:22 UTC.

Swift 6 data race errors: 9

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/gwynne/iniserialization.git
Reference: 1.0.0-alpha.4
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/gwynne/iniserialization
 * tag               1.0.0-alpha.4 -> FETCH_HEAD
HEAD is now at 9185c43 Heavily update the README to (minimally) document both reading and writing and give basic sample code for using INIEncoder and INIDecoder.
Cloned https://github.com/gwynne/iniserialization.git
Revision (git rev-parse @):
9185c4378ef5b33d7f24892136d21ad7b8d6d37f
SUCCESS checkout https://github.com/gwynne/iniserialization.git at 1.0.0-alpha.4
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/gwynne/iniserialization.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/9] Emitting module INISerialization
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:22:27: warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 20 |         /// as Strings. If `detectQuotedValues` is also set, quoting a value
 21 |         /// will disable numeric detection.
 22 |         public static let detectNumericValues = ReadingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectNumericValues' 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
 23 |
 24 |         /// If set, detect INI section headers of the form `[HEADER]` and return
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:28:27: warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 26 |         /// supported; only one level of nesting is allowed. If not set, section
 27 |         /// headers are treated as a syntax error.
 28 |         public static let detectSections = ReadingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectSections' 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
 29 |
 30 |         /// If set, allow `#` as a comment character in addition to `;`.
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:31:27: warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 29 |
 30 |         /// If set, allow `#` as a comment character in addition to `;`.
 31 |         public static let allowHashComments = ReadingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowHashComments' 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
 32 |
 33 |         /// If set, allow comments to appear after values as well as on their
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:35:27: warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 33 |         /// If set, allow comments to appear after values as well as on their
 34 |         /// own lines.
 35 |         public static let allowTrailingComments = ReadingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowTrailingComments' 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
 36 |
 37 |         /// If set, all keys are uppercased in the returned dictionary. Section
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:40:27: warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 38 |         /// header names **are** affected by this setting. If `lowercaseKeys` is
 39 |         /// also set, lowercase always wins.
 40 |         public static let uppercaseKeys = ReadingOptions(rawValue: 1 << 4)
    |                           |- warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'uppercaseKeys' 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
 41 |
 42 |         /// If set, all keys are lowercased in the returned dictionary. Section
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:45:27: warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 43 |         /// header names **are** affected by this setting. If `uppercaseKeys` is
 44 |         /// also set, lowercase always wins.
 45 |         public static let lowercaseKeys = ReadingOptions(rawValue: 1 << 5)
    |                           |- warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'lowercaseKeys' 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
 46 |
 47 |         /// If set, boolean values are detected. The recognized boolean values
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:50:27: warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 48 |         /// are "false", "true", "yes", "no", "on", and "off", all case-
 49 |         /// insensitive.
 50 |         public static let detectBooleanValues = ReadingOptions(rawValue: 1 << 6)
    |                           |- warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectBooleanValues' 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
 51 |
 52 |         /// If set, a key with no `=` and no trailing non-whitespace text on the
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:61:27: warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 59 |         /// KEY foo   ; always a syntax error
 60 |         /// ````
 61 |         public static let allowMissingValues = ReadingOptions(rawValue: 1 << 7)
    |                           |- warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowMissingValues' 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
 62 |
 63 |         /// If set, a section header with no name (e.g. `[]`) will "reset" the
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:67:27: warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 65 |         /// unset, a section header with no name is a syntax error. Ignored if
 66 |         /// `.detectSections` is not also set.
 67 |         public static let allowSectionReset = ReadingOptions(rawValue: 1 << 8)
    |                           |- warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowSectionReset' 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
 68 |     }
 69 |
/host/spi-builder-workspace/Sources/INISerialization/INITokenizer.swift:132:33: warning: 'IndexDistance' is deprecated: All index distances are now of type Int
130 |     /// String.index(_, offsetBy:, limitedBy:) that returns the limit instead of
131 |     /// nil if it's reached.
132 |     func minIdx(for adv: String.IndexDistance) -> String.Index {
    |                                 `- warning: 'IndexDistance' is deprecated: All index distances are now of type Int
133 |         return text.index(loc, offsetBy: adv, limitedBy: end()) ?? end()
134 |     }
[4/9] Compiling INISerialization INIDecoder.swift
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:31:27: warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 29 |
 30 |         /// If set, allow `#` as a comment character in addition to `;`.
 31 |         public static let allowHashComments = ReadingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowHashComments' 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
 32 |
 33 |         /// If set, allow comments to appear after values as well as on their
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:61:27: warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 59 |         /// KEY foo   ; always a syntax error
 60 |         /// ````
 61 |         public static let allowMissingValues = ReadingOptions(rawValue: 1 << 7)
    |                           |- warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowMissingValues' 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
 62 |
 63 |         /// If set, a section header with no name (e.g. `[]`) will "reset" the
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:67:27: warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 65 |         /// unset, a section header with no name is a syntax error. Ignored if
 66 |         /// `.detectSections` is not also set.
 67 |         public static let allowSectionReset = ReadingOptions(rawValue: 1 << 8)
    |                           |- warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowSectionReset' 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
 68 |     }
 69 |
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:35:27: warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 33 |         /// If set, allow comments to appear after values as well as on their
 34 |         /// own lines.
 35 |         public static let allowTrailingComments = ReadingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowTrailingComments' 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
 36 |
 37 |         /// If set, all keys are uppercased in the returned dictionary. Section
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:50:27: warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 48 |         /// are "false", "true", "yes", "no", "on", and "off", all case-
 49 |         /// insensitive.
 50 |         public static let detectBooleanValues = ReadingOptions(rawValue: 1 << 6)
    |                           |- warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectBooleanValues' 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
 51 |
 52 |         /// If set, a key with no `=` and no trailing non-whitespace text on the
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:22:27: warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 20 |         /// as Strings. If `detectQuotedValues` is also set, quoting a value
 21 |         /// will disable numeric detection.
 22 |         public static let detectNumericValues = ReadingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectNumericValues' 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
 23 |
 24 |         /// If set, detect INI section headers of the form `[HEADER]` and return
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:28:27: warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 26 |         /// supported; only one level of nesting is allowed. If not set, section
 27 |         /// headers are treated as a syntax error.
 28 |         public static let detectSections = ReadingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectSections' 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
 29 |
 30 |         /// If set, allow `#` as a comment character in addition to `;`.
/host/spi-builder-workspace/Sources/INISerialization/INIDecoder.swift:169:60: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
167 |
168 |     public var codingPath: [CodingKey]
169 |     public var allKeys: [Key] { return self.container.keys.flatMap { Key(stringValue: $0) } }
    |                                                            |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                                                            `- note: use 'compactMap(_:)' instead
170 |     public func contains(_ key: Key) -> Bool { return self.container[key.stringValue] != nil }
171 |
[5/9] Compiling INISerialization INITokenizer.swift
/host/spi-builder-workspace/Sources/INISerialization/INITokenizer.swift:132:33: warning: 'IndexDistance' is deprecated: All index distances are now of type Int
130 |     /// String.index(_, offsetBy:, limitedBy:) that returns the limit instead of
131 |     /// nil if it's reached.
132 |     func minIdx(for adv: String.IndexDistance) -> String.Index {
    |                                 `- warning: 'IndexDistance' is deprecated: All index distances are now of type Int
133 |         return text.index(loc, offsetBy: adv, limitedBy: end()) ?? end()
134 |     }
[6/9] Compiling INISerialization INIParser.swift
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:45:27: warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 43 |         /// header names **are** affected by this setting. If `uppercaseKeys` is
 44 |         /// also set, lowercase always wins.
 45 |         public static let lowercaseKeys = ReadingOptions(rawValue: 1 << 5)
    |                           |- warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'lowercaseKeys' 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
 46 |
 47 |         /// If set, boolean values are detected. The recognized boolean values
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:40:27: warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 38 |         /// header names **are** affected by this setting. If `lowercaseKeys` is
 39 |         /// also set, lowercase always wins.
 40 |         public static let uppercaseKeys = ReadingOptions(rawValue: 1 << 4)
    |                           |- warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'uppercaseKeys' 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
 41 |
 42 |         /// If set, all keys are lowercased in the returned dictionary. Section
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:22:27: warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 20 |         /// as Strings. If `detectQuotedValues` is also set, quoting a value
 21 |         /// will disable numeric detection.
 22 |         public static let detectNumericValues = ReadingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectNumericValues' 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
 23 |
 24 |         /// If set, detect INI section headers of the form `[HEADER]` and return
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:50:27: warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 48 |         /// are "false", "true", "yes", "no", "on", and "off", all case-
 49 |         /// insensitive.
 50 |         public static let detectBooleanValues = ReadingOptions(rawValue: 1 << 6)
    |                           |- warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectBooleanValues' 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
 51 |
 52 |         /// If set, a key with no `=` and no trailing non-whitespace text on the
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:31:27: warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 29 |
 30 |         /// If set, allow `#` as a comment character in addition to `;`.
 31 |         public static let allowHashComments = ReadingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowHashComments' 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
 32 |
 33 |         /// If set, allow comments to appear after values as well as on their
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:35:27: warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 33 |         /// If set, allow comments to appear after values as well as on their
 34 |         /// own lines.
 35 |         public static let allowTrailingComments = ReadingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowTrailingComments' 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
 36 |
 37 |         /// If set, all keys are uppercased in the returned dictionary. Section
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:61:27: warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 59 |         /// KEY foo   ; always a syntax error
 60 |         /// ````
 61 |         public static let allowMissingValues = ReadingOptions(rawValue: 1 << 7)
    |                           |- warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowMissingValues' 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
 62 |
 63 |         /// If set, a section header with no name (e.g. `[]`) will "reset" the
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:28:27: warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 26 |         /// supported; only one level of nesting is allowed. If not set, section
 27 |         /// headers are treated as a syntax error.
 28 |         public static let detectSections = ReadingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectSections' 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
 29 |
 30 |         /// If set, allow `#` as a comment character in addition to `;`.
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:67:27: warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 65 |         /// unset, a section header with no name is a syntax error. Ignored if
 66 |         /// `.detectSections` is not also set.
 67 |         public static let allowSectionReset = ReadingOptions(rawValue: 1 << 8)
    |                           |- warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowSectionReset' 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
 68 |     }
 69 |
[7/9] Compiling INISerialization INISerialization.swift
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:22:27: warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 20 |         /// as Strings. If `detectQuotedValues` is also set, quoting a value
 21 |         /// will disable numeric detection.
 22 |         public static let detectNumericValues = ReadingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'detectNumericValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectNumericValues' 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
 23 |
 24 |         /// If set, detect INI section headers of the form `[HEADER]` and return
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:28:27: warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 26 |         /// supported; only one level of nesting is allowed. If not set, section
 27 |         /// headers are treated as a syntax error.
 28 |         public static let detectSections = ReadingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'detectSections' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectSections' 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
 29 |
 30 |         /// If set, allow `#` as a comment character in addition to `;`.
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:31:27: warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 29 |
 30 |         /// If set, allow `#` as a comment character in addition to `;`.
 31 |         public static let allowHashComments = ReadingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'allowHashComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowHashComments' 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
 32 |
 33 |         /// If set, allow comments to appear after values as well as on their
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:35:27: warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 33 |         /// If set, allow comments to appear after values as well as on their
 34 |         /// own lines.
 35 |         public static let allowTrailingComments = ReadingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'allowTrailingComments' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowTrailingComments' 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
 36 |
 37 |         /// If set, all keys are uppercased in the returned dictionary. Section
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:40:27: warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 38 |         /// header names **are** affected by this setting. If `lowercaseKeys` is
 39 |         /// also set, lowercase always wins.
 40 |         public static let uppercaseKeys = ReadingOptions(rawValue: 1 << 4)
    |                           |- warning: static property 'uppercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'uppercaseKeys' 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
 41 |
 42 |         /// If set, all keys are lowercased in the returned dictionary. Section
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:45:27: warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 43 |         /// header names **are** affected by this setting. If `uppercaseKeys` is
 44 |         /// also set, lowercase always wins.
 45 |         public static let lowercaseKeys = ReadingOptions(rawValue: 1 << 5)
    |                           |- warning: static property 'lowercaseKeys' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'lowercaseKeys' 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
 46 |
 47 |         /// If set, boolean values are detected. The recognized boolean values
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:50:27: warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 48 |         /// are "false", "true", "yes", "no", "on", and "off", all case-
 49 |         /// insensitive.
 50 |         public static let detectBooleanValues = ReadingOptions(rawValue: 1 << 6)
    |                           |- warning: static property 'detectBooleanValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'detectBooleanValues' 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
 51 |
 52 |         /// If set, a key with no `=` and no trailing non-whitespace text on the
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:61:27: warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 59 |         /// KEY foo   ; always a syntax error
 60 |         /// ````
 61 |         public static let allowMissingValues = ReadingOptions(rawValue: 1 << 7)
    |                           |- warning: static property 'allowMissingValues' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowMissingValues' 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
 62 |
 63 |         /// If set, a section header with no name (e.g. `[]`) will "reset" the
/host/spi-builder-workspace/Sources/INISerialization/INISerialization.swift:67:27: warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 10 | open class INISerialization {
 11 |
 12 |     public struct ReadingOptions: OptionSet {
    |                   `- note: consider making struct 'ReadingOptions' conform to the 'Sendable' protocol
 13 |         public let rawValue: UInt
 14 |         public init(rawValue: UInt) { self.rawValue = rawValue }
    :
 65 |         /// unset, a section header with no name is a syntax error. Ignored if
 66 |         /// `.detectSections` is not also set.
 67 |         public static let allowSectionReset = ReadingOptions(rawValue: 1 << 8)
    |                           |- warning: static property 'allowSectionReset' is not concurrency-safe because non-'Sendable' type 'INISerialization.ReadingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'allowSectionReset' 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
 68 |     }
 69 |
[8/9] Compiling INISerialization INIWriter.swift
/host/spi-builder-workspace/Sources/INISerialization/INIWriter.swift:16:96: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
 14 |     private func serializeKey(_ key: String, under topKey: String?) throws -> String {
 15 |         if let _ = key.rangeOfCharacter(from: INITokenizer.notIdentifier) {
 16 |             throw INISerialization.SerializationError.invalidIdentifier(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."))
    |                                                                                                |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                                                                                                `- note: use 'compactMap(_:)' instead
 17 |         }
 18 |         return key
/host/spi-builder-workspace/Sources/INISerialization/INIWriter.swift:60:92: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
 58 |
 59 |         if let _ = value as? INIUnorderedObject {
 60 |             throw INISerialization.SerializationError.nestedTooDeep(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."))
    |                                                                                            |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                                                                                            `- note: use 'compactMap(_:)' instead
 61 |         } else if let _ = value as? INIOrderedObject {
 62 |             throw INISerialization.SerializationError.nestedTooDeep(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."))
/host/spi-builder-workspace/Sources/INISerialization/INIWriter.swift:62:92: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
 60 |             throw INISerialization.SerializationError.nestedTooDeep(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."))
 61 |         } else if let _ = value as? INIOrderedObject {
 62 |             throw INISerialization.SerializationError.nestedTooDeep(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."))
    |                                                                                            |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                                                                                            `- note: use 'compactMap(_:)' instead
 63 |         }
 64 |         else if let uintValue = value as? UInt { valuePart = try serializeUInt(uintValue) }
/host/spi-builder-workspace/Sources/INISerialization/INIWriter.swift:79:94: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
 77 |         else if let boolValue = value as? Bool { valuePart = try serializeBool(boolValue) }
 78 |         else {
 79 |             throw INISerialization.SerializationError.unsupportedType(keyPath: [topKey, key].flatMap { $0 }.joined(separator: "."), type: type(of: value))
    |                                                                                              |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                                                                                              `- note: use 'compactMap(_:)' instead
 80 |         }
 81 |         return keyPart + " " + "=" + " " + valuePart
[9/9] Compiling INISerialization INIEncoder.swift
Build complete! (13.40s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "INISerialization",
  "name" : "INISerialization",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "INISerialization",
      "targets" : [
        "INISerialization"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "INISerializationTests",
      "module_type" : "SwiftTarget",
      "name" : "INISerializationTests",
      "path" : "Tests/INISerializationTests",
      "sources" : [
        "INICoderTests.swift",
        "INIParserTests.swift",
        "INISerializerTests.swift",
        "INITokenizerTests.swift",
        "INIWriterTests.swift",
        "TestCommon.swift"
      ],
      "target_dependencies" : [
        "INISerialization"
      ],
      "type" : "test"
    },
    {
      "c99name" : "INISerialization",
      "module_type" : "SwiftTarget",
      "name" : "INISerialization",
      "path" : "Sources/INISerialization",
      "product_memberships" : [
        "INISerialization"
      ],
      "sources" : [
        "INIDecoder.swift",
        "INIEncoder.swift",
        "INIParser.swift",
        "INISerialization.swift",
        "INITokenizer.swift",
        "INIWriter.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "4.0"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.