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

Successful build of HandySwift, reference 4.4.0 (80f7f0), with Swift 6.0 for macOS (SPM) on 17 Aug 2025 11:25:24 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.67.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/FlineDev/HandySwift.git
Reference: 4.4.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/FlineDev/HandySwift
 * tag               4.4.0      -> FETCH_HEAD
HEAD is now at 80f7f08 Add OSLog plugins + rename redactAPIKey to redactAuthHeaders
Cloned https://github.com/FlineDev/HandySwift.git
Revision (git rev-parse @):
80f7f0845196388d423ac3e21864585d2e38ed87
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/FlineDev/HandySwift.git at 4.4.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/FlineDev/HandySwift.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-5BDAB9E9C0126B9D.txt
[3/37] Emitting module HandySwift
[4/40] Compiling HandySwift PrintResponsePlugin.swift
[5/40] Compiling HandySwift RESTClient.swift
[6/40] Compiling HandySwift SortedArray.swift
[7/40] Compiling HandySwift DoubleExt.swift
[8/40] Compiling HandySwift DurationExt.swift
[9/40] Compiling HandySwift FloatExt.swift
[10/40] Compiling HandySwift IntExt.swift
[11/40] Compiling HandySwift ArrayExt.swift
[12/40] Compiling HandySwift CaseIterableExt.swift
[13/40] Compiling HandySwift CollectionExt.swift
[14/40] Compiling HandySwift ComparableExt.swift
[15/40] Compiling HandySwift LogResponsePlugin.swift
[16/40] Compiling HandySwift OperatingSystem.swift
[17/40] Compiling HandySwift PrintRequestPlugin.swift
[18/40] Compiling HandySwift DataExt.swift
[19/40] Compiling HandySwift DateExt.swift
[20/40] Compiling HandySwift DictionaryExt.swift
[21/40] Compiling HandySwift DispatchTimeIntervalExt.swift
[22/40] Compiling HandySwift SequenceExt.swift
[23/40] Compiling HandySwift StringExt.swift
[24/40] Compiling HandySwift StringProtocolExt.swift
[25/40] Compiling HandySwift SymmetricKeyExt.swift
[26/40] Compiling HandySwift Withable.swift
[27/40] Compiling HandySwift Debouncer.swift
[28/40] Compiling HandySwift FrequencyTable.swift
[29/40] Compiling HandySwift GregorianDay.swift
[30/40] Compiling HandySwift GregorianTime.swift
[31/40] Compiling HandySwift HandyRegex.swift
[32/40] Compiling HandySwift LogRequestPlugin.swift
[33/40] Compiling HandySwift JSONDecoderExt.swift
[34/40] Compiling HandySwift JSONEncoderExt.swift
[35/40] Compiling HandySwift NSRangeExt.swift
[36/40] Compiling HandySwift RandomAccessCollectionExt.swift
[37/40] Compiling HandySwift TimeIntervalExt.swift
[38/40] Compiling HandySwift Globals.swift
[39/40] Compiling HandySwift AutoConforming.swift
[40/40] Compiling HandySwift DivisibleArithmetic.swift
Build complete! (6.65s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "HandySwift",
  "name" : "HandySwift",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.14"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "HandySwift",
      "targets" : [
        "HandySwift"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "HandySwiftTests",
      "module_type" : "SwiftTarget",
      "name" : "HandySwiftTests",
      "path" : "Tests/HandySwiftTests",
      "sources" : [
        "Extensions/ArrayExtTests.swift",
        "Extensions/CollectionExtTests.swift",
        "Extensions/ComparableExtTests.swift",
        "Extensions/DictionaryExtTests.swift",
        "Extensions/DispatchTimeIntervalExtTests.swift",
        "Extensions/DoubleExtTests.swift",
        "Extensions/FloatExtTests.swift",
        "Extensions/IntExtTests.swift",
        "Extensions/NSObjectExtTests.swift",
        "Extensions/NSRangeExtTests.swift",
        "Extensions/StringExtTests.swift",
        "Extensions/TimeIntervalExtTests.swift",
        "Protocols/WithableTests.swift",
        "Structs/FrequencyTableTests.swift",
        "Structs/GregorianDayTests.swift",
        "Structs/HandyRegexTests.swift",
        "Structs/SortedArrayTests.swift"
      ],
      "target_dependencies" : [
        "HandySwift"
      ],
      "type" : "test"
    },
    {
      "c99name" : "HandySwift",
      "module_type" : "SwiftTarget",
      "name" : "HandySwift",
      "path" : "Sources/HandySwift",
      "product_memberships" : [
        "HandySwift"
      ],
      "sources" : [
        "Extensions/ArrayExt.swift",
        "Extensions/CaseIterableExt.swift",
        "Extensions/CollectionExt.swift",
        "Extensions/ComparableExt.swift",
        "Extensions/DataExt.swift",
        "Extensions/DateExt.swift",
        "Extensions/DictionaryExt.swift",
        "Extensions/DispatchTimeIntervalExt.swift",
        "Extensions/DoubleExt.swift",
        "Extensions/DurationExt.swift",
        "Extensions/FloatExt.swift",
        "Extensions/IntExt.swift",
        "Extensions/JSONDecoderExt.swift",
        "Extensions/JSONEncoderExt.swift",
        "Extensions/NSRangeExt.swift",
        "Extensions/RandomAccessCollectionExt.swift",
        "Extensions/SequenceExt.swift",
        "Extensions/StringExt.swift",
        "Extensions/StringProtocolExt.swift",
        "Extensions/SymmetricKeyExt.swift",
        "Extensions/TimeIntervalExt.swift",
        "Globals.swift",
        "Protocols/AutoConforming.swift",
        "Protocols/DivisibleArithmetic.swift",
        "Protocols/Withable.swift",
        "Types/Debouncer.swift",
        "Types/FrequencyTable.swift",
        "Types/GregorianDay.swift",
        "Types/GregorianTime.swift",
        "Types/HandyRegex.swift",
        "Types/LogRequestPlugin.swift",
        "Types/LogResponsePlugin.swift",
        "Types/OperatingSystem.swift",
        "Types/PrintRequestPlugin.swift",
        "Types/PrintResponsePlugin.swift",
        "Types/RESTClient.swift",
        "Types/SortedArray.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/flinedev/handyswift/4.4.0
Repository:               FlineDev/HandySwift
Swift version used:       6.0
Target:                   HandySwift
Extracting symbol information for 'HandySwift'...
Finished extracting symbol information for 'HandySwift'. (2.35s)
Building documentation for 'HandySwift'...
warning: Return value documented for initializer returning void
  --> ../Extensions/DictionaryExt.swift:22:8-22:147
20 |    /// - Requires: The number of elements in `keys` must be equal to the number of elements in `values`.
21 |    ///
22 +    /// - Returns: A new dictionary initialized with the provided keys and values arrays, or `nil` if the number of elements in the arrays differs.
   |        ╰─suggestion: Remove return value documentation
23 |    @inlinable
24 |    public init?(keys: [Key], values: [Value]) {
warning: External name 'randomWithLength' used to document parameter
  --> ../Extensions/StringExt.swift:59:12-59:28
57 |    ///
58 |    /// - Parameters:
59 +    ///   - randomWithLength: The length of the random string to create.
   |            ╰─suggestion: Replace 'randomWithLength' with 'length'
60 |    ///   - allowedCharactersType: The type of allowed characters, see enum ``AllowedCharacters``.
61 |    public init(randomWithLength length: Int, allowedCharactersType: AllowedCharacters) {
warning: Return value documented for initializer returning void
  --> ../Extensions/SymmetricKeyExt.swift:34:11-34:122
32 |       ///
33 |       /// - Parameter base64Encoded: The Base64-encoded string representing the symmetric key.
34 +       /// - Returns: A symmetric key initialized from the Base64-encoded string, or `nil` if the input string is invalid.
   |           ╰─suggestion: Remove return value documentation
35 |       public init?(base64Encoded: String) {
36 |          guard let data = Data(base64Encoded: base64Encoded) else { return nil }
warning: 'JSONDecoder.snakeCase' doesn't exist at '/HandySwift/Extensions'
   --> Essentials/Extensions.md:141:12-141:33
139 | ```
140 |
141 + Just use ``JSONDecoder.snakeCase`` to decode and ``JSONEncoder.snakeCase`` to encode instead of configuring a new instance each time!
    |            ╰─suggestion: Replace 'JSONDecoder.snakeCase' with 'JSON-Snake-Case-Conversion'
142 |
143 | #### Symmetric Data Cryptography
warning: 'JSONEncoder.snakeCase' doesn't exist at '/HandySwift/Extensions'
   --> Essentials/Extensions.md:141:52-141:73
139 | ```
140 |
141 + Just use ``JSONDecoder.snakeCase`` to decode and ``JSONEncoder.snakeCase`` to encode instead of configuring a new instance each time!
142 |
143 | #### Symmetric Data Cryptography
warning: '83bbm' isn't a disambiguation for 'delay(for:id:operation:)' at '/HandySwift/Debouncer'
   --> Essentials/New Types.md:108:169-108:175
106 | ```
107 |
108 + Note that the ``Debouncer`` was stored in a property so ``Debouncer/cancelAll()`` could be called on disappear for cleanup. But the ``Debouncer/delay(for:id:operation:)-83bbm`` is where the magic happens – and you don't have to deal with the details!
    |                                                                                                                                                                         ├─suggestion: Replace '-83bbm' with '-72xv9' for'func delay(for duration: Duration, id: String = "default", operation: @escaping () -> Void)'
    |                                                                                                                                                                         ╰─suggestion: Replace '-83bbm' with '-6kzv2' for'func delay(for interval: TimeInterval, id: String = "default", operation: @escaping () -> Void)'
109 |
110 | > Note: If you need multiple debouncing operations in one view, you don't need multiple debouncers. Just pass an `id` to the delay function.
warning: '8iw4f' isn't a disambiguation for 'delay(by:qosClass:_:)' at '/HandySwift'
   --> Essentials/New Types.md:185:26-185:32
183 | ### Other
184 |
185 + - ``delay(by:qosClass:_:)-8iw4f``
    |                          ├─suggestion: Replace '-8iw4f' with '-7mmlv' for'func delay(by duration: Duration, qosClass: DispatchQoS.QoSClass? = nil, _ closure: @escaping () -> Void)'
    |                          ╰─suggestion: Replace '-8iw4f' with '-3vtd4' for'func delay(by timeInterval: TimeInterval, qosClass: DispatchQoS.QoSClass? = nil, _ closure: @escaping () -> Void)'
186 | - ``delay(by:qosClass:_:)-yedf``
187 | - ``HandyRegex``
warning: 'yedf' isn't a disambiguation for 'delay(by:qosClass:_:)' at '/HandySwift'
   --> Essentials/New Types.md:186:26-186:31
184 |
185 | - ``delay(by:qosClass:_:)-8iw4f``
186 + - ``delay(by:qosClass:_:)-yedf``
    |                          ├─suggestion: Replace '-yedf' with '-7mmlv' for'func delay(by duration: Duration, qosClass: DispatchQoS.QoSClass? = nil, _ closure: @escaping () -> Void)'
    |                          ╰─suggestion: Replace '-yedf' with '-3vtd4' for'func delay(by timeInterval: TimeInterval, qosClass: DispatchQoS.QoSClass? = nil, _ closure: @escaping () -> Void)'
187 | - ``HandyRegex``
warning: Parameter 'regex' not found in instance method declaration
   --> ../Types/HandyRegex.swift:163:12-163:66
161 |    ///
162 |    /// - parameters:
163 +    ///     - regex: A regular expression to match against `self`.
    |            ╰─suggestion: Remove 'regex' parameter documentation
164 |    ///     - template: A template string used to replace matches.
165 |    ///     - count: The maximum count of matches to replace, beginning with the first match.
warning: Parameter 'input' is missing documentation
   --> ../Types/HandyRegex.swift:166:8-166:8
164 |    ///     - template: A template string used to replace matches.
    |            ╰─suggestion: Document 'input' parameter
165 |    ///     - count: The maximum count of matches to replace, beginning with the first match.
166 +    ///
167 |    /// - returns: A string with all matches of `regex` replaced by `template`.
168 |    @available(*, deprecated, message: "The HandyRegex will be removed in a future version. Migrate to Swift.Regex<Output> if possible.")
warning: Parameter 'array' not found in initializer declaration
  --> ../Types/SortedArray.swift:50:12-50:64
48 |    ///
49 |    /// - Parameters:
50 +    ///     - array: The array to be initially sorted and saved.
   |            ╰─suggestion: Remove 'array' parameter documentation
51 |    public init<S: Sequence>(_ sequence: S) where S.Iterator.Element == Element {
52 |       self.init(sequence: sequence, preSorted: false)
warning: Parameter 'sequence' is missing documentation
  --> ../Types/SortedArray.swift:50:64-50:64
48 |    ///
49 |    /// - Parameters:
50 +    ///     - array: The array to be initially sorted and saved.
   |                                                                ╰─suggestion: Document 'sequence' parameter
51 |    public init<S: Sequence>(_ sequence: S) where S.Iterator.Element == Element {
52 |       self.init(sequence: sequence, preSorted: false)Finished building documentation for 'HandySwift' (0.45s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/flinedev/handyswift/4.4.0
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2094] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.18s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.5 (2.40s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3455] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.23s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.57s)
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.5
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
Building for debugging...
[0/8] Write sources
[1/8] Write snippet-extract-tool-entitlement.plist
[2/8] Write sources
[4/8] Write swift-version-5BDAB9E9C0126B9D.txt
[6/53] Compiling SymbolKit Names.swift
[7/53] Compiling SymbolKit SPI.swift
[8/53] Compiling SymbolKit Snippet.swift
[9/53] Compiling SymbolKit Extension.swift
[10/57] Emitting module SymbolKit
[11/57] Compiling SymbolKit SourceRange.swift
[12/57] Compiling SymbolKit Metadata.swift
[13/57] Compiling SymbolKit Module.swift
[14/57] Compiling SymbolKit OperatingSystem.swift
[15/57] Compiling SymbolKit Platform.swift
[16/57] Compiling SymbolKit Symbol.swift
[17/57] Compiling SymbolKit SymbolKind.swift
[18/57] Compiling SymbolKit SymbolGraph.swift
[19/57] Compiling SymbolKit GraphCollector.swift
[20/57] Compiling SymbolKit SemanticVersion.swift
[21/57] Compiling SymbolKit AccessControl.swift
[22/57] Compiling SymbolKit Availability.swift
[23/57] Compiling SymbolKit AvailabilityItem.swift
[24/57] Compiling SymbolKit Domain.swift
[25/57] Emitting module Snippets
[26/57] Compiling Snippets SnippetParser.swift
[27/57] Compiling Snippets Snippet.swift
[28/57] Compiling SymbolKit DeclarationFragments.swift
[29/57] Compiling SymbolKit Fragment.swift
[30/57] Compiling SymbolKit FragmentKind.swift
[31/57] Compiling SymbolKit FunctionParameter.swift
[32/57] Compiling SymbolKit FunctionSignature.swift
[33/57] Compiling SymbolKit Mixin+Equals.swift
[34/57] Compiling SymbolKit Mixin+Hash.swift
[35/57] Compiling SymbolKit Mixin.swift
[36/57] Compiling SymbolKit LineList.swift
[37/57] Compiling SymbolKit Position.swift
[38/57] Compiling SymbolKit Relationship.swift
[39/57] Compiling SymbolKit RelationshipKind.swift
[40/57] Compiling SymbolKit SourceOrigin.swift
[41/57] Compiling SymbolKit GenericConstraints.swift
[42/57] Compiling SymbolKit Swift.swift
[43/57] Compiling SymbolKit Identifier.swift
[44/57] Compiling SymbolKit KindIdentifier.swift
[45/57] Compiling SymbolKit Location.swift
[46/57] Compiling SymbolKit Mutability.swift
[47/57] Compiling SymbolKit GenericConstraint.swift
[48/57] Compiling SymbolKit GenericParameter.swift
[49/57] Compiling SymbolKit Generics.swift
[50/57] Compiling SymbolKit Namespace.swift
[51/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[52/57] Compiling SymbolKit UnifiedSymbol.swift
[53/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[54/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[55/61] Compiling snippet_extract URL+Status.swift
[56/61] Emitting module snippet_extract
[57/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[58/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.18s)
Building for debugging...
[0/1] Write swift-version-5BDAB9E9C0126B9D.txt
Build of target: 'HandySwift' complete! (0.17s)
    1251
11	/Users/admin/builder/spi-builder-workspace/.docs/flinedev/handyswift/4.4.0
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/flinedev/handyswift/4.4.0
File count: 1251
Doc size:   11.0MB
Preparing doc bundle ...
Uploading prod-flinedev-handyswift-4.4.0-7b64885d.zip to s3://spi-docs-inbox/prod-flinedev-handyswift-4.4.0-7b64885d.zip
Copying... [11%]
Copying... [22%]
Copying... [31%]
Copying... [42%]
Copying... [51%]
Copying... [61%]
Copying... [70%]
Copying... [81%]
Copying... [90%]
Copying... [100%]
Done.