Hive Hive
Sign in

Fix race conditions when Tuist reads SwiftPM package state

Metadata
Source
GitHub
Version
4.193.3
Published
May 12, 2026 · 15:40 UTC
Repository
tuist/tuist
Update

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.