Hive
perf(cache): split Swift actions and prefetch output restore
GitHub issue · Closed
Source
tuist/once #91
Updated
Jun 24, 2026
Domains
Once
Summary
- Split
apple_librarySwift compilation into separate module/header and static archive actions so cache keys can track Swift interface outputs independently from archive packaging. - Compose graph target action digests from every declared action for multi-action targets, preserving single-action digests unchanged while making downstream cache keys reflect provider-visible outputs.
- Prefetch cached output blobs concurrently during restore with a bounded window and disk staging, preserving deterministic final materialization without retaining every blob in memory.
- Added regression coverage for multi-output restore, prefetch windows, failure-before-materialization behavior, target digest aggregation, and the Apple Swift action split.
Testing
mise exec -- cargo fmt --all -- --checkmise exec -- cargo test -p once-core outputs::testsmise exec -- cargo test -p once-cli commands::graph::analysis::testsmise exec -- cargo test -p once-frontend --libmise exec -- cargo clippy -p once-core -p once-cli -p once-frontend --all-targets -- -D warningsxcrun --sdk iphoneos swiftc -module-name AppCore -target arm64-apple-ios17.0 -parse-as-library -static -emit-module -emit-module-path <tmp>/AppCore.swiftmodule -emit-objc-header -emit-objc-header-path <tmp>/AppCore-Swift.h fixtures/apple_library/apps/ios/AppCore/Sources/Greeting.swift
No GitHub comments yet.