Tuist now acquires SwiftPM’s own scratch-directory lock before reading SwiftPM workspace state, checkouts, registry downloads, and binary artifacts. This prevents filesystem races when multiple Tuist or SwiftPM processes use the same package scratch directory. The fix also honors custom SwiftPM scratch paths (via SWIFTPM_BUILD_DIR, –scratch-path, or –build-path) instead of assuming a .build/checkouts layout, and preserves the legacy state/logs directory during analytics cleanup so concurrent processes do not crash while writing log files.
Hive
Fix race conditions when Tuist reads SwiftPM package state
Published
May 12, 2026 · 15:40 UTC
Repository
tuist/tuist