Build Information
Successful build of Units, reference main (78ffb0), with Swift 6.1 for macOS (SPM) on 19 Sep 2025 09:19:55 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .statsBuild Log
========================================
RunAll
========================================
Builder version: 4.67.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/NeedleInAJayStack/Units.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/NeedleInAJayStack/Units
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 78ffb04 Merge pull request #21 from wildthink/percent
Cloned https://github.com/NeedleInAJayStack/Units.git
Revision (git rev-parse @):
78ffb042179acbc3271aacbc2899b62aa4aa9c10
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/NeedleInAJayStack/Units.git at main
Fetching https://github.com/apple/swift-argument-parser from cache
Fetched https://github.com/apple/swift-argument-parser from cache (1.26s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.1 (1.82s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.5.1
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "units",
"name": "Units",
"url": "https://github.com/NeedleInAJayStack/Units.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Units",
"dependencies": [
{
"identity": "swift-argument-parser",
"name": "swift-argument-parser",
"url": "https://github.com/apple/swift-argument-parser",
"version": "1.6.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-argument-parser",
"dependencies": [
]
}
]
}
]
}
Fetching https://github.com/NeedleInAJayStack/Units.git
[1/1158] Fetching units
Fetched https://github.com/NeedleInAJayStack/Units.git from cache (0.84s)
Fetching https://github.com/apple/swift-argument-parser from cache
Fetched https://github.com/apple/swift-argument-parser from cache (0.60s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.6.1 (1.14s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.6.1
Creating working copy for https://github.com/NeedleInAJayStack/Units.git
Working copy of https://github.com/NeedleInAJayStack/Units.git resolved at main (78ffb04)
Found 1 product dependencies
- swift-argument-parser
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/NeedleInAJayStack/Units.git
https://github.com/NeedleInAJayStack/Units.git
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.1",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
}
],
"manifest_display_name" : "Units",
"name" : "Units",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Units",
"targets" : [
"Units"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "unit",
"targets" : [
"CLI"
],
"type" : {
"executable" : null
}
}
],
"swift_languages_versions" : [
"5",
"6"
],
"targets" : [
{
"c99name" : "UnitsTests",
"module_type" : "SwiftTarget",
"name" : "UnitsTests",
"path" : "Tests/UnitsTests",
"sources" : [
"DefinitionTests.swift",
"ExpressionTests.swift",
"MeasurementTests.swift",
"ParserTests.swift",
"PercentTests.swift",
"UnitTests.swift",
"XCTest+Measurement.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "test"
},
{
"c99name" : "Units",
"module_type" : "SwiftTarget",
"name" : "Units",
"path" : "Sources/Units",
"product_memberships" : [
"Units",
"unit"
],
"sources" : [
"Expression.swift",
"Measurement/Double+Measurement.swift",
"Measurement/Int+Measurement.swift",
"Measurement/Measurement.swift",
"Measurement/Percent+Measurement.swift",
"Parser.swift",
"Quantity.swift",
"Registry.swift",
"RegistryBuilder.swift",
"Unit/DefaultUnits.swift",
"Unit/DefinedUnit.swift",
"Unit/Equations.swift",
"Unit/Unit+DefaultUnits.swift",
"Unit/Unit.swift",
"UnitError.swift"
],
"type" : "library"
},
{
"c99name" : "PerformanceTests",
"module_type" : "SwiftTarget",
"name" : "PerformanceTests",
"path" : "Tests/PerformanceTests",
"sources" : [
"PerformanceTests.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "test"
},
{
"c99name" : "CLI",
"module_type" : "SwiftTarget",
"name" : "CLI",
"path" : "Sources/CLI",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"unit"
],
"sources" : [
"Convert.swift",
"List.swift",
"Unit.swift",
"main.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "executable"
}
],
"tools_version" : "5.4"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats
[1/1] Compiling plugin GenerateManual
Building for debugging...
[1/10] Write sources
[3/10] Write unit-entitlement.plist
[5/10] Write sources
[6/10] Write swift-version-2F0A5646E1D333AE.txt
[8/27] Emitting module ArgumentParserToolInfo
[9/27] Compiling ArgumentParserToolInfo ToolInfo.swift
[10/66] Emitting module ArgumentParser
[11/70] Compiling ArgumentParser Platform.swift
[12/70] Compiling ArgumentParser SequenceExtensions.swift
[13/70] Compiling ArgumentParser StringExtensions.swift
[14/70] Compiling ArgumentParser Tree.swift
[15/70] Compiling ArgumentParser ArgumentHelp.swift
[16/70] Compiling ArgumentParser ArgumentVisibility.swift
[17/70] Compiling ArgumentParser CompletionKind.swift
[18/70] Compiling ArgumentParser Errors.swift
[19/70] Compiling ArgumentParser Flag.swift
[20/70] Compiling ArgumentParser ParsableArguments.swift
[21/70] Compiling ArgumentParser ParsableArgumentsValidation.swift
[22/70] Compiling ArgumentParser ParsableCommand.swift
[23/70] Compiling ArgumentParser ArgumentDecoder.swift
[24/70] Compiling Units Unit+DefaultUnits.swift
[25/70] Compiling Units Unit.swift
[26/71] Compiling Units DefinedUnit.swift
[29/71] Compiling Units Equations.swift
[31/71] Compiling ArgumentParser NameSpecification.swift
[36/71] Emitting module Units
[39/71] Compiling ArgumentParser BashCompletionsGenerator.swift
[40/71] Compiling ArgumentParser CompletionsGenerator.swift
[41/71] Compiling ArgumentParser FishCompletionsGenerator.swift
[42/71] Compiling ArgumentParser ZshCompletionsGenerator.swift
[43/71] Compiling ArgumentParser Argument.swift
[44/71] Compiling ArgumentParser ParserError.swift
[45/71] Compiling ArgumentParser SplitArguments.swift
[46/71] Compiling ArgumentParser DumpHelpGenerator.swift
[47/71] Compiling ArgumentParser HelpCommand.swift
[49/71] Compiling ArgumentParser Option.swift
[50/71] Compiling ArgumentParser OptionGroup.swift
[51/71] Compiling ArgumentParser AsyncParsableCommand.swift
[52/71] Compiling ArgumentParser CommandConfiguration.swift
[53/71] Compiling ArgumentParser CommandGroup.swift
[54/71] Compiling ArgumentParser EnumerableFlag.swift
[55/71] Compiling ArgumentParser ExpressibleByArgument.swift
[56/71] Compiling ArgumentParser ArgumentDefinition.swift
[57/71] Compiling ArgumentParser ArgumentSet.swift
[58/71] Compiling ArgumentParser CommandParser.swift
[59/71] Compiling ArgumentParser InputKey.swift
[60/71] Compiling ArgumentParser HelpGenerator.swift
[61/71] Compiling ArgumentParser MessageInfo.swift
[62/71] Compiling ArgumentParser UsageGenerator.swift
[63/71] Compiling ArgumentParser CollectionExtensions.swift
[64/71] Compiling ArgumentParser InputOrigin.swift
[65/71] Compiling ArgumentParser Name.swift
[66/71] Compiling ArgumentParser Parsed.swift
[67/71] Compiling ArgumentParser ParsedValues.swift
[68/71] Compiling Units UnitError.swift
[69/76] Compiling CLI Unit.swift
[70/76] Compiling CLI main.swift
[71/76] Compiling CLI Convert.swift
[72/76] Compiling CLI List.swift
[73/76] Emitting module CLI
[73/76] Write Objects.LinkFileList
[74/76] Linking unit
[75/76] Applying unit
Build complete! (6.72s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.1",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
}
],
"manifest_display_name" : "Units",
"name" : "Units",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Units",
"targets" : [
"Units"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "unit",
"targets" : [
"CLI"
],
"type" : {
"executable" : null
}
}
],
"swift_languages_versions" : [
"5",
"6"
],
"targets" : [
{
"c99name" : "UnitsTests",
"module_type" : "SwiftTarget",
"name" : "UnitsTests",
"path" : "Tests/UnitsTests",
"sources" : [
"DefinitionTests.swift",
"ExpressionTests.swift",
"MeasurementTests.swift",
"ParserTests.swift",
"PercentTests.swift",
"UnitTests.swift",
"XCTest+Measurement.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "test"
},
{
"c99name" : "Units",
"module_type" : "SwiftTarget",
"name" : "Units",
"path" : "Sources/Units",
"product_memberships" : [
"Units",
"unit"
],
"sources" : [
"Expression.swift",
"Measurement/Double+Measurement.swift",
"Measurement/Int+Measurement.swift",
"Measurement/Measurement.swift",
"Measurement/Percent+Measurement.swift",
"Parser.swift",
"Quantity.swift",
"Registry.swift",
"RegistryBuilder.swift",
"Unit/DefaultUnits.swift",
"Unit/DefinedUnit.swift",
"Unit/Equations.swift",
"Unit/Unit+DefaultUnits.swift",
"Unit/Unit.swift",
"UnitError.swift"
],
"type" : "library"
},
{
"c99name" : "PerformanceTests",
"module_type" : "SwiftTarget",
"name" : "PerformanceTests",
"path" : "Tests/PerformanceTests",
"sources" : [
"PerformanceTests.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "test"
},
{
"c99name" : "CLI",
"module_type" : "SwiftTarget",
"name" : "CLI",
"path" : "Sources/CLI",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"unit"
],
"sources" : [
"Convert.swift",
"List.swift",
"Unit.swift",
"main.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "executable"
}
],
"tools_version" : "5.4"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/needleinajaystack/units/main
Repository: NeedleInAJayStack/Units
Swift version used: 6.1
Target: Units
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/swift-docc-render-artifact/.git/
From https://github.com/swiftlang/swift-docc-render-artifact
* branch 4633b45fc732d8c55568be09dd852f9dc1582c25 -> FETCH_HEAD
HEAD is now at 4633b45 Update the artifact
Cloned https://github.com/swiftlang/swift-docc-render-artifact
Extracting symbol information for 'Units'...
Finished extracting symbol information for 'Units'. (3.70s)
Building documentation for 'Units'...
warning: Parameter 'registry' is missing documentation
--> Sources/Units/Expression.swift:29:58-29:58
27 | /// - `5m^2/s + (1m + 2m)^2 / 5s`
28 | ///
29 + /// - Parameter expr: The string expression to parse.
| ╰─suggestion: Document 'registry' parameter
30 | public init(_ expr: String, registry: Registry = .default) throws {
31 | let parsed = try Parser(expr, registry: registry).parseExpression()
warning: Parameter 'value' not found in initializer declaration
--> Sources/Units/Measurement/Percent+Measurement.swift:52:11-52:48
50 | /// Create a new Percent
51 | /// - Parameters:
52 + /// - value: The magnitude of the percent
| ╰─suggestion: Remove 'value' parameter documentation
53 | public init(
54 | magnitude: Double
warning: Parameter 'magnitude' is missing documentation
--> Sources/Units/Measurement/Percent+Measurement.swift:52:48-52:48
50 | /// Create a new Percent
51 | /// - Parameters:
52 + /// - value: The magnitude of the percent
| ╰─suggestion: Document 'magnitude' parameter
53 | public init(
54 | magnitude: Double
warning: Parameter 'registry' is missing documentation
--> Sources/Units/Unit/Unit.swift:21:82-21:82
19 | /// and the relevant unit is initialized.
20 | /// - Parameter symbol: A string defining the unit to retrieve. This can be the symbol of a defined unit
21 + /// or a complex unit symbol that combines basic units with `*`, `/`, or `^`.
| ╰─suggestion: Document 'registry' parameter
22 | public init(fromSymbol symbol: String, registry: Registry = .default) throws {
23 | let symbolContainsOperator = OperatorSymbols.allCases.contains { arithSymbol in
warning: Parameter 'symbol' not found in initializer declaration
--> Sources/Units/Unit/Unit.swift:42:9-42:111
40 | /// Only defined units are returned - complex unit name equations are not supported.
41 | ///
42 + /// - Parameter symbol: A string name of the unit to retrieve. This cannot be a complex equation of names.
| ╰─suggestion: Remove 'symbol' parameter documentation
43 | public init(fromName name: String, registry: Registry = .default) throws {
44 | let definedUnit = try registry.getUnit(byName: name)
warning: Parameter 'registry' is missing documentation
--> Sources/Units/Unit/Unit.swift:42:111-42:111
40 | /// Only defined units are returned - complex unit name equations are not supported.
41 | ///
42 + /// - Parameter symbol: A string name of the unit to retrieve. This cannot be a complex equation of names.
| ╰─suggestion: Document 'registry' parameter
43 | public init(fromName name: String, registry: Registry = .default) throws {
44 | let definedUnit = try registry.getUnit(byName: name)
warning: Parameter 'name' is missing documentation
--> Sources/Units/Unit/Unit.swift:42:111-42:111
40 | /// Only defined units are returned - complex unit name equations are not supported.
41 | ///
42 + /// - Parameter symbol: A string name of the unit to retrieve. This cannot be a complex equation of names.
| ╰─suggestion: Document 'name' parameter
43 | public init(fromName name: String, registry: Registry = .default) throws {
44 | let definedUnit = try registry.getUnit(byName: name)
Finished building documentation for 'Units' (0.23s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/needleinajaystack/units/main
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Updating https://github.com/apple/swift-argument-parser
Updated https://github.com/apple/swift-argument-parser (0.52s)
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.66s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.1 (1.17s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.5 (0.61s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.89s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.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/7] Write snippet-extract-tool-entitlement.plist
[1/8] Write sources
[4/8] Write swift-version-2F0A5646E1D333AE.txt
[6/53] Emitting module SymbolKit
[7/57] Compiling SymbolKit Mixin+Equals.swift
[8/57] Compiling SymbolKit Mixin+Hash.swift
[9/57] Compiling SymbolKit Mixin.swift
[10/57] Compiling SymbolKit LineList.swift
[11/57] Compiling SymbolKit Position.swift
[12/57] Compiling SymbolKit Identifier.swift
[13/57] Compiling SymbolKit KindIdentifier.swift
[14/57] Compiling SymbolKit Location.swift
[15/57] Compiling SymbolKit Mutability.swift
[16/57] Compiling SymbolKit Names.swift
[17/57] Compiling SymbolKit SPI.swift
[18/57] Compiling SymbolKit Snippet.swift
[19/57] Compiling SymbolKit Extension.swift
[20/57] Compiling SymbolKit DeclarationFragments.swift
[21/57] Compiling SymbolKit Fragment.swift
[22/57] Compiling SymbolKit FragmentKind.swift
[23/57] Compiling SymbolKit FunctionParameter.swift
[24/57] Compiling SymbolKit FunctionSignature.swift
[25/57] Compiling SymbolKit Relationship.swift
[26/57] Compiling SymbolKit RelationshipKind.swift
[27/57] Compiling SymbolKit SourceOrigin.swift
[28/57] Compiling SymbolKit GenericConstraints.swift
[29/57] Compiling SymbolKit Swift.swift
[30/57] Compiling SymbolKit SemanticVersion.swift
[31/57] Compiling SymbolKit AccessControl.swift
[32/57] Compiling SymbolKit Availability.swift
[33/57] Compiling SymbolKit AvailabilityItem.swift
[34/57] Compiling SymbolKit Domain.swift
[35/57] Compiling SymbolKit SourceRange.swift
[36/57] Compiling SymbolKit Metadata.swift
[37/57] Compiling SymbolKit Module.swift
[38/57] Compiling SymbolKit OperatingSystem.swift
[39/57] Compiling SymbolKit Platform.swift
[40/57] Compiling SymbolKit GenericConstraint.swift
[41/57] Compiling SymbolKit GenericParameter.swift
[42/57] Compiling SymbolKit Generics.swift
[43/57] Compiling SymbolKit Namespace.swift
[44/57] Compiling SymbolKit Symbol.swift
[45/57] Compiling SymbolKit SymbolKind.swift
[46/57] Compiling SymbolKit SymbolGraph.swift
[47/57] Compiling SymbolKit GraphCollector.swift
[48/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[49/57] Compiling SymbolKit UnifiedSymbol.swift
[50/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[51/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[52/57] Compiling Snippets SnippetParser.swift
[53/57] Emitting module Snippets
[54/57] Compiling Snippets Snippet.swift
[55/61] Compiling snippet_extract URL+Status.swift
[56/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[57/61] Emitting module snippet_extract
[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.25s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/16] Compiling Units DefinedUnit.swift
[3/16] Compiling Units Percent+Measurement.swift
[4/16] Compiling Units Parser.swift
[5/16] Compiling Units Unit.swift
[6/16] Compiling Units Equations.swift
[7/16] Compiling Units Unit+DefaultUnits.swift
[8/17] Compiling Units Quantity.swift
[9/17] Compiling Units Registry.swift
[10/17] Compiling Units Int+Measurement.swift
[11/17] Compiling Units Measurement.swift
[12/17] Compiling Units Expression.swift
[13/17] Compiling Units Double+Measurement.swift
[14/17] Compiling Units RegistryBuilder.swift
[15/17] Compiling Units DefaultUnits.swift
[16/17] Emitting module Units
[17/17] Compiling Units UnitError.swift
Build of target: 'Units' complete! (1.74s)
694
5 /Users/admin/builder/spi-builder-workspace/.docs/needleinajaystack/units/main
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/needleinajaystack/units/main
File count: 694
Doc size: 5.0MB
Preparing doc bundle ...
Uploading prod-needleinajaystack-units-main-cfa372cc.zip to s3://spi-docs-inbox/prod-needleinajaystack-units-main-cfa372cc.zip
Copying... [13%]
Copying... [26%]
Copying... [33%]
Copying... [46%]
Copying... [53%]
Copying... [66%]
Copying... [73%]
Copying... [86%]
Copying... [92%]
Copying... [100%]
Done.