Hive Hive
Sign in

Add Rust graph toolchain support

GitHub issue · Closed

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

Summary

  • Adds Rust graph rules for Cargo-backed dependency sets, first-party libraries and binaries, resolved crates, and proc macros.
  • Makes Cargo.toml and Cargo.lock the source of truth: the root cargo_dependencies target runs cargo metadata --locked and reconciles resolved external packages into cacheable Once Rust actions.
  • Updates Once workspace manifests so first-party Rust targets depend on the cacheable Cargo dependency target and use CARGO_PKG_NAME or cargo_package to consume Cargo’s direct external deps.
  • Removes the generated third-party Once manifest and the separate once query deps resolver surface.

Testing

  • mise exec -- cargo fmt --all -- --check
  • mise exec -- cargo test -p once-frontend
  • mise exec -- cargo test -p once-cli
  • mise exec -- cargo build -p once-cli
  • mise exec -- cargo build -p once-cli --target x86_64-apple-darwin
  • mise exec -- target/debug/once --format json query schema cargo_dependencies
  • mise exec -- target/debug/once --format json query targets --kind cargo_dependencies
  • mise exec -- target/debug/once --format json -C /tmp/once-once-smoke build crates/once-cli/once
  • Verified the Once-built arm64 binary and the x86_64 macOS binary both report once 0.0.0.
Comments

No GitHub comments yet.