Build Information
Failed to build FileCache, reference main (55b840), with Swift 6.3 for Wasm on 17 Apr 2026 12:28:40 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:wasm-6.3-latest swift build --swift-sdk swift-6.3-RELEASE_wasm 2>&1Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bsjurs1/FileCache.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/bsjurs1/FileCache
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 55b8409 Add store method to FileCaching protocol and implementations
Cloned https://github.com/bsjurs1/FileCache.git
Revision (git rev-parse @):
55b840927d245682b18e30d79089c9f0d84115be
SUCCESS checkout https://github.com/bsjurs1/FileCache.git at main
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.3
Building package at path: $PWD
https://github.com/bsjurs1/FileCache.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:wasm-6.3-latest swift build --swift-sdk swift-6.3-RELEASE_wasm 2>&1
wasm-6.3-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:d69f4e7582c319245442d62a08b2d7c7fd5a0c0c69f5d2ef11d1530cd8d3329b
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:wasm-6.3-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/10] Compiling FileCache FileCacheObject.swift
[4/10] Compiling FileCache FileCaching.swift
/host/spi-builder-workspace/Sources/FileCache/FileCaching.swift:11:41: error: cannot find type 'Observable' in scope
9 | /// Abstraction for file caching so production code can use `FileCache`
10 | /// while tests and previews can use an in-memory implementation.
11 | public protocol FileCaching: AnyObject, Observable {
| `- error: cannot find type 'Observable' in scope
12 | @discardableResult
13 | func fetch(_ url: URL) async throws -> Data
[5/10] Compiling FileCache InMemoryFileCache.swift
/host/spi-builder-workspace/Sources/FileCache/FileCaching.swift:11:41: error: cannot find type 'Observable' in scope
9 | /// Abstraction for file caching so production code can use `FileCache`
10 | /// while tests and previews can use an in-memory implementation.
11 | public protocol FileCaching: AnyObject, Observable {
| `- error: cannot find type 'Observable' in scope
12 | @discardableResult
13 | func fetch(_ url: URL) async throws -> Data
[6/10] Compiling FileCache FileCachePolicy.swift
[7/10] Compiling FileCache FileCacheExpirationPolicy.swift
[8/10] Compiling FileCache FileCacheError.swift
[9/10] Compiling FileCache FileCache.swift
/host/spi-builder-workspace/Sources/FileCache/FileCaching.swift:11:41: error: cannot find type 'Observable' in scope
9 | /// Abstraction for file caching so production code can use `FileCache`
10 | /// while tests and previews can use an in-memory implementation.
11 | public protocol FileCaching: AnyObject, Observable {
| `- error: cannot find type 'Observable' in scope
12 | @discardableResult
13 | func fetch(_ url: URL) async throws -> Data
/host/spi-builder-workspace/Sources/FileCache/FileCache.swift:78:50: error: 'atomic' is unavailable: atomic writing is unavailable in WASI because temporary files are not supported
76 | private func saveIndex() {
77 | guard let data = try? JSONEncoder().encode(index) else { return }
78 | try? data.write(to: indexURL, options: [.atomic])
| `- error: 'atomic' is unavailable: atomic writing is unavailable in WASI because temporary files are not supported
79 | }
80 |
FoundationEssentials.Data.WritingOptions.atomic:4:23: note: 'atomic' has been explicitly marked unavailable here
2 | struct WritingOptions {
3 | @available(*, unavailable, message: "atomic writing is unavailable in WASI because temporary files are not supported")
4 | public static let atomic: Data.WritingOptions }
| `- note: 'atomic' has been explicitly marked unavailable here
5 | }
6 |
/host/spi-builder-workspace/Sources/FileCache/FileCache.swift:128:48: error: 'atomic' is unavailable: atomic writing is unavailable in WASI because temporary files are not supported
126 | let filename = [uuidString, fileType].joined(separator: ".")
127 | let fileURL = cacheDirectoryURL.appendingPathComponent(filename)
128 | try data.write(to: fileURL, options: [.atomic])
| `- error: 'atomic' is unavailable: atomic writing is unavailable in WASI because temporary files are not supported
129 | let now = Date()
130 | index[url] = FileCacheObject(createdAt: now, diskURL: fileURL)
FoundationEssentials.Data.WritingOptions.atomic:4:23: note: 'atomic' has been explicitly marked unavailable here
2 | struct WritingOptions {
3 | @available(*, unavailable, message: "atomic writing is unavailable in WASI because temporary files are not supported")
4 | public static let atomic: Data.WritingOptions }
| `- note: 'atomic' has been explicitly marked unavailable here
5 | }
6 |
/host/spi-builder-workspace/Sources/FileCache/FileCache.swift:167:46: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
165 | }
166 |
167 | let (data, _) = try await URLSession.shared.data(from: url)
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
168 | try store(data, for: url)
169 | return data
error: emit-module command failed with exit code 1 (use -v to see invocation)
[10/10] Emitting module FileCache
/host/spi-builder-workspace/Sources/FileCache/FileCaching.swift:11:41: error: cannot find type 'Observable' in scope
9 | /// Abstraction for file caching so production code can use `FileCache`
10 | /// while tests and previews can use an in-memory implementation.
11 | public protocol FileCaching: AnyObject, Observable {
| `- error: cannot find type 'Observable' in scope
12 | @discardableResult
13 | func fetch(_ url: URL) async throws -> Data
BUILD FAILURE 6.3 wasm