What changed
- Removed the cache warm path that copied and parsed
.xcactivitylog files to infer per-target build times.
- Removed target build duration from cache storable metadata, cache items, and command event binary cache metadata emitted by the CLI.
- Removed the now-unused
XCLogParser-based target build-time parser and its test coverage.
Why
The per-target cache build duration was collected only to annotate cache artifacts and command event metadata, but we do not currently surface that information in the product. Keeping the parser in the tuist cache path made cache warming depend on successfully parsing Xcode activity logs for metadata that was not used by users.
Root cause
tuist cache warm parsed Xcode activity logs after each build group to estimate target build durations. When activity logs were missing, rotated, or unparseable, that optional metadata path could fail the cache command even though the artifacts themselves had been built successfully.
Approach
This removes the CLI-side production of target build-time metadata instead of making parsing more permissive. Existing server/OpenAPI fields are left in place for backward compatibility with older clients, but the new CLI no longer sends binary_cache_metadata.build_duration.
Impact
Cache warming no longer has to read or parse .xcactivitylog files for target timing. Binary artifacts are still built, packaged, uploaded, and tracked as before, just without the unused target duration value.
Validation
tuist install
tuist generate tuist TuistKit TuistKitTests TuistServer TuistServerTests TuistCore TuistCoreTests TuistXCActivityLog TuistXCActivityLogTests ProjectDescription --no-open
xcodebuild test -workspace Tuist.xcworkspace -scheme Tuist-Workspace -only-testing TuistXCActivityLogTests/XCActivityLogControllerTests -only-testing TuistServerTests/CacheStorableItemTests -only-testing TuistKitTests/CommandEventFactoryTests CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" COMPILATION_CACHE_ENABLE_CACHING=NO
git diff --check