mirror of
https://github.com/astral-sh/ruff.git
synced 2026-11-15 14:28:27 +08:00
The ty 0.0.102 release mirror failed when R2 rejected `CompleteMultipartUpload` with `InvalidPart` for a 17 MiB archive in the [initial mirror job](https://github.com/astral-sh/ty/actions/runs/43313189391/job/131528867907). Its [retry](https://github.com/astral-sh/ty/actions/runs/43313189391/job/131530133434) uploaded the missing archive and reported `ObjectLockedByBucketPolicy` for 17 previously published multipart artifacts. Ruff uses the same AWS CLI 8 MiB default, which selects this multipart path even though Cloudflare recommends single uploads below roughly 100 MB. Raise `multipart_threshold` to 100 MiB so current Ruff artifacts avoid `CompleteMultipartUpload`. `--no-overwrite` remains a list-based check rather than an atomic write condition, so the change does not provide general write idempotency. Artifacts larger than the threshold would still use multipart uploads and require explicit reconciliation for retries against immutable keys; Ruff does not currently produce an artifact near that threshold.