Default enable FF_USE_FASTZIP
What does this MR do?
Makes FF_USE_FASTZIP default to true, so fastzip becomes the default archiver
and extractor for cache and artifact zip handling.
The legacy zip implementation is unchanged and still reachable via
FF_USE_FASTZIP=false. Removing it is deliberate follow-up work, not part of
this MR.
Why was this MR needed?
Fastzip has been opt-in since 2020 and the flag has never graduated, despite repeated user requests on #27698 (closed). The blocker was never the change itself - it was confidence that no edge cases remained.
Every fastzip-specific bug report is closed: #27462 (closed), #27528 (closed), #27398 (closed), #27285 (closed), #27549 (closed), #28102 (closed), #28903 (closed), #28928 (closed), #28989 (closed), #36884 (closed). The newest was fixed in September 2023, so roughly two and a half years have passed with no new fastzip-specific defect while the flag has seen wide production use.
Fastzip is also faster, has better test coverage, and already fixes bugs the legacy implementation still has around file permissions (#3354 (closed), #27496 (closed)) and timestamp resolution (#27817).
What's the best way to test this MR?
- Run a job with a cache and artifacts on a runner built from this branch. It
should use fastzip with no configuration, and the job header should no longer
list
FF_USE_FASTZIP(it now matches the default). - Set
FF_USE_FASTZIP: "false"on the same job and confirm the legacy path is still used and still works. - Restore a cache written by a released runner with the flag off, to confirm cross-version archive compatibility.