Build Information
Successful build of napkin, reference 2.1.7 (e1f947), with Swift 6.2 for macOS (SPM) on 20 Jul 2026 08:57:47 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/WikipediaBrown/napkin.git
Reference: 2.1.7
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/WikipediaBrown/napkin
* tag 2.1.7 -> FETCH_HEAD
HEAD is now at e1f947b Merge pull request #166 from WikipediaBrown/develop
Cloned https://github.com/WikipediaBrown/napkin.git
Revision (git rev-parse @):
e1f947bdd5b4c2c169a9a9e585ce9ae554340caf
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/WikipediaBrown/napkin.git at 2.1.7
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.2
Building package at path: $PWD
https://github.com/WikipediaBrown/napkin.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/43] Write sources
[16/43] Write swift-version--3CB7CFEC50E0D141.txt
[18/56] Compiling napkin ViewControllable.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[19/56] Compiling napkin Router.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[20/56] Compiling napkin Presenter.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[21/56] Compiling napkin MultiStageComponentizedBuilder.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[22/57] Compiling napkin Component.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[23/57] Compiling napkin Dependency.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[24/57] Emitting module napkin
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[25/57] Compiling napkin Dispatch.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[26/57] Compiling napkin Interactor.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[27/57] Compiling napkin InteractorLifecycle.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[28/57] Compiling napkin Builder.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[29/57] Compiling napkin ComponentizedBuilder.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[30/57] Compiling napkin LaunchRouter.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[31/57] Compiling napkin ViewableRouter.swift
<unknown>:0: warning: upcoming feature 'RegionBasedIsolation' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'IsolatedDefaultValues' is already enabled as of Swift version 6
[32/77] Emitting module NotEverythingBecomesAStream
[33/77] Compiling NotEverythingBecomesAStream NotEverythingBecomesAStream.swift
[34/77] Compiling HeadlessParent HeadlessParent.swift
[35/77] Emitting module HeadlessParent
[36/77] Compiling ServiceInjection ServiceInjection.swift
[37/77] Emitting module ServiceInjection
[38/77] Compiling CounterRouter CounterRouter.swift
[39/77] Emitting module CounterRouter
[39/77] Write Objects.LinkFileList
[42/77] Compiling CounterInteractor CounterInteractor.swift
[43/77] Emitting module CounterInteractor
[44/79] Compiling EventStreaming EventStreaming.swift
[45/79] Emitting module EventStreaming
[45/79] Write Objects.LinkFileList
[48/83] Emitting module ObservableStateStreaming
[49/83] Compiling ObservableStateStreaming ObservableStateStreaming.swift
[50/83] Emitting module CounterBuilder
[51/83] Compiling CounterBuilder CounterBuilder.swift
[51/83] Write Objects.LinkFileList
[54/83] Compiling ChildSwap ChildSwap.swift
[55/83] Emitting module ChildSwap
[55/83] Linking NotEverythingBecomesAStream
[56/83] Write Objects.LinkFileList
[57/83] Linking HeadlessParent
[58/83] Write Objects.LinkFileList
[60/83] Linking ServiceInjection
[61/83] Linking EventStreaming
[62/83] Linking ObservableStateStreaming
[63/83] Linking CounterRouter
[64/83] Linking CounterInteractor
[65/83] Linking ChildSwap
[66/83] Linking CounterBuilder
[68/83] Emitting module CounterViewController
[69/83] Compiling CounterViewController CounterViewController.swift
[69/83] Write Objects.LinkFileList
[71/83] Compiling CounterView CounterView.swift
[72/83] Emitting module CounterView
[72/83] Write Objects.LinkFileList
[74/83] Compiling AuthStateStreaming AuthStateStreaming.swift
[75/83] Emitting module AuthStateStreaming
[75/83] Write Objects.LinkFileList
[76/83] Linking CounterViewController
[77/83] Linking CounterView
[78/83] Linking AuthStateStreaming
[80/83] Emitting module TestingAnInteractor
[81/83] Compiling TestingAnInteractor TestingAnInteractor.swift
[81/83] Write Objects.LinkFileList
[82/83] Linking TestingAnInteractor
Build complete! (32.22s)
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2325] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.35s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (3.98s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3758] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.13s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.83s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
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
Build complete.
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-docc-plugin"
}
],
"manifest_display_name" : "napkin",
"name" : "napkin",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "26.0"
},
{
"name" : "macos",
"version" : "26.0"
}
],
"products" : [
{
"name" : "napkin",
"targets" : [
"napkin"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "HeadlessParent",
"targets" : [
"HeadlessParent"
],
"type" : {
"snippet" : null
}
},
{
"name" : "ServiceInjection",
"targets" : [
"ServiceInjection"
],
"type" : {
"snippet" : null
}
},
{
"name" : "ChildSwap",
"targets" : [
"ChildSwap"
],
"type" : {
"snippet" : null
}
},
{
"name" : "TestingAnInteractor",
"targets" : [
"TestingAnInteractor"
],
"type" : {
"snippet" : null
}
},
{
"name" : "CounterInteractor",
"targets" : [
"CounterInteractor"
],
"type" : {
"snippet" : null
}
},
{
"name" : "CounterBuilder",
"targets" : [
"CounterBuilder"
],
"type" : {
"snippet" : null
}
},
{
"name" : "CounterViewController",
"targets" : [
"CounterViewController"
],
"type" : {
"snippet" : null
}
},
{
"name" : "CounterView",
"targets" : [
"CounterView"
],
"type" : {
"snippet" : null
}
},
{
"name" : "CounterRouter",
"targets" : [
"CounterRouter"
],
"type" : {
"snippet" : null
}
},
{
"name" : "ObservableStateStreaming",
"targets" : [
"ObservableStateStreaming"
],
"type" : {
"snippet" : null
}
},
{
"name" : "NotEverythingBecomesAStream",
"targets" : [
"NotEverythingBecomesAStream"
],
"type" : {
"snippet" : null
}
},
{
"name" : "EventStreaming",
"targets" : [
"EventStreaming"
],
"type" : {
"snippet" : null
}
},
{
"name" : "AuthStateStreaming",
"targets" : [
"AuthStateStreaming"
],
"type" : {
"snippet" : null
}
}
],
"targets" : [
{
"c99name" : "napkinTests",
"module_type" : "SwiftTarget",
"name" : "napkinTests",
"path" : "Tests/napkinTests",
"sources" : [
"BuilderTests.swift",
"ComponentTests.swift",
"ComponentizedBuilderTests.swift",
"InteractorTests.swift",
"LaunchRouterTests.swift",
"MultiStageComponentizedBuilderTests.swift",
"PresentableInteractorTests.swift",
"PresenterTests.swift",
"RouterTests.swift",
"ViewControllableTests.swift",
"ViewableRouterTests.swift",
"napkinTests.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "test"
},
{
"c99name" : "napkin",
"module_type" : "SwiftTarget",
"name" : "napkin",
"path" : "Sources/napkin",
"product_memberships" : [
"napkin",
"HeadlessParent",
"ServiceInjection",
"ChildSwap",
"TestingAnInteractor",
"CounterInteractor",
"CounterBuilder",
"CounterViewController",
"CounterView",
"CounterRouter",
"ObservableStateStreaming",
"NotEverythingBecomesAStream",
"EventStreaming",
"AuthStateStreaming"
],
"sources" : [
"Builder.swift",
"ComponentizedBuilder.swift",
"DI/Component.swift",
"DI/Dependency.swift",
"Dispatch.swift",
"Interactor.swift",
"InteractorLifecycle.swift",
"LaunchRouter.swift",
"MultiStageComponentizedBuilder.swift",
"Presenter.swift",
"Router.swift",
"ViewControllable.swift",
"ViewableRouter.swift"
],
"type" : "library"
},
{
"c99name" : "HeadlessParent",
"module_type" : "SwiftTarget",
"name" : "HeadlessParent",
"path" : "Snippets/Patterns",
"product_memberships" : [
"HeadlessParent"
],
"sources" : [
"HeadlessParent.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "ServiceInjection",
"module_type" : "SwiftTarget",
"name" : "ServiceInjection",
"path" : "Snippets/Patterns",
"product_memberships" : [
"ServiceInjection"
],
"sources" : [
"ServiceInjection.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "ChildSwap",
"module_type" : "SwiftTarget",
"name" : "ChildSwap",
"path" : "Snippets/Patterns",
"product_memberships" : [
"ChildSwap"
],
"sources" : [
"ChildSwap.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "TestingAnInteractor",
"module_type" : "SwiftTarget",
"name" : "TestingAnInteractor",
"path" : "Snippets/Patterns",
"product_memberships" : [
"TestingAnInteractor"
],
"sources" : [
"TestingAnInteractor.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "CounterInteractor",
"module_type" : "SwiftTarget",
"name" : "CounterInteractor",
"path" : "Snippets/DefiningAFeature",
"product_memberships" : [
"CounterInteractor"
],
"sources" : [
"CounterInteractor.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "CounterBuilder",
"module_type" : "SwiftTarget",
"name" : "CounterBuilder",
"path" : "Snippets/DefiningAFeature",
"product_memberships" : [
"CounterBuilder"
],
"sources" : [
"CounterBuilder.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "CounterViewController",
"module_type" : "SwiftTarget",
"name" : "CounterViewController",
"path" : "Snippets/DefiningAFeature",
"product_memberships" : [
"CounterViewController"
],
"sources" : [
"CounterViewController.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "CounterView",
"module_type" : "SwiftTarget",
"name" : "CounterView",
"path" : "Snippets/DefiningAFeature",
"product_memberships" : [
"CounterView"
],
"sources" : [
"CounterView.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "CounterRouter",
"module_type" : "SwiftTarget",
"name" : "CounterRouter",
"path" : "Snippets/DefiningAFeature",
"product_memberships" : [
"CounterRouter"
],
"sources" : [
"CounterRouter.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "ObservableStateStreaming",
"module_type" : "SwiftTarget",
"name" : "ObservableStateStreaming",
"path" : "Snippets/Streaming",
"product_memberships" : [
"ObservableStateStreaming"
],
"sources" : [
"ObservableStateStreaming.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "NotEverythingBecomesAStream",
"module_type" : "SwiftTarget",
"name" : "NotEverythingBecomesAStream",
"path" : "Snippets/Streaming",
"product_memberships" : [
"NotEverythingBecomesAStream"
],
"sources" : [
"NotEverythingBecomesAStream.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "EventStreaming",
"module_type" : "SwiftTarget",
"name" : "EventStreaming",
"path" : "Snippets/Streaming",
"product_memberships" : [
"EventStreaming"
],
"sources" : [
"EventStreaming.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
},
{
"c99name" : "AuthStateStreaming",
"module_type" : "SwiftTarget",
"name" : "AuthStateStreaming",
"path" : "Snippets/Streaming",
"product_memberships" : [
"AuthStateStreaming"
],
"sources" : [
"AuthStateStreaming.swift"
],
"target_dependencies" : [
"napkin"
],
"type" : "snippet"
}
],
"tools_version" : "6.2"
}
Done.