Hive Hive
Sign in

perf(cache): split Swift actions and prefetch output restore

GitHub issue · Closed

Metadata
Source
tuist/once #91
Updated
Jun 24, 2026
Domains
Once
Details

Summary

  • Split apple_library Swift 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 -- --check
  • mise exec -- cargo test -p once-core outputs::tests
  • mise exec -- cargo test -p once-cli commands::graph::analysis::tests
  • mise exec -- cargo test -p once-frontend --lib
  • mise exec -- cargo clippy -p once-core -p once-cli -p once-frontend --all-targets -- -D warnings
  • xcrun --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
Comments

No GitHub comments yet.