Skip to content

Update utopia-php/storage to 3.1 - #244

Merged
loks0n merged 1 commit into
mainfrom
chore/update-storage-3.1
Jul 23, 2026
Merged

Update utopia-php/storage to 3.1#244
loks0n merged 1 commit into
mainfrom
chore/update-storage-3.1

Conversation

@loks0n

@loks0n loks0n commented Jul 23, 2026

Copy link
Copy Markdown
Member

What

Bumps utopia-php/storage from 3.0.0 to 3.1.0. Composer updates only the storage package; there are no transitive dependency changes.

Storage 3.0 was the major API migration handled in #243. Storage 3.1 keeps the APIs used by executor compatible and focuses on S3/Local reliability.

3.0 → 3.1

  • Aborts an in-progress multipart upload when a Local or S3 transfer fails, while preserving the original error. This prevents abandoned S3 parts from remaining billable.
  • Keeps S3 transfers free of an overall deadline, but adds a 60-second no-progress watchdog and TCP keepalive so stalled connections terminate instead of hanging indefinitely.
  • Changes transient S3 retries from a fixed delay to exponential backoff with full jitter, reducing synchronized retries when multiple executors are throttled together.
  • Makes S3::exists() return false only for genuine not-found responses. Throttling, authentication, transport, and other remote failures now remain visible.
  • Preserves the real error from the metadata lookup at the start of an S3 transfer instead of converting every failure into a not-found error.
  • Includes AWS request IDs in S3 errors and hardens XML decoding for repeated elements, CDATA, and external-entity safety.
  • Handles Local directory-size paths without a trailing separator and rejects an empty path rather than inspecting the filesystem root.

Upstream comparison: utopia-php/storage@3.0.0...3.1.0

Executor impact

All remote backends created by StorageFactory (S3, AWS, DigitalOcean Spaces, Backblaze, Linode, and Wasabi) use the S3 implementation, so the reliability improvements apply consistently across executor source downloads, build artifact uploads, and storage-backed build-cache transfers.

  • Failed build and cache artifact uploads now clean up started multipart uploads, avoiding orphaned parts and their storage cost.
  • Source and artifact transfer failures surface more accurate causes and S3 request IDs, improving operational diagnosis.
  • A transient failure during a build-cache existence check is no longer treated as a silent cache miss. It is retried, then reaches the executor cache error handler as a warning; the build still continues because cache restore/store is best-effort.
  • Large active transfers can continue without an overall timeout, while a transfer with no byte movement for 60 seconds fails and follows the existing executor error path.
  • The Local directory-size and S3 listing changes do not affect a current executor call path, but make the shared devices safer.

No executor source changes are required because 3.1 does not break the storage APIs used here.

Verification

  • composer test:unit — 20 tests, 72 assertions
  • composer analyze — no errors
  • composer format:check — passed
  • composer refactor:check — clean
  • composer audit — no security advisories
  • git diff --check — clean

The E2E suite requires the full Docker runtime stack and is left to CI.

@greptile-apps

greptile-apps Bot commented Jul 23, 2026

Copy link
Copy Markdown

Greptile Summary

Updates utopia-php/storage from 3.0.0 to 3.1.0.

  • Raises the Composer requirement from ^3.0 to ^3.1.
  • Refreshes the lockfile package version, source references, release metadata, and content hash.

Confidence Score: 5/5

The dependency-only update appears safe to merge, with no concrete compatibility, security, or lockfile consistency issue identified.

The manifest and lockfile consistently select storage 3.1.0, retain the package’s existing dependency requirements, and make no executor source changes that introduce an observable failure.

Important Files Changed

Filename Overview
composer.json Raises the storage dependency constraint to the compatible 3.1 release line; no actionable issue identified.
composer.lock Locks storage 3.1.0 with matching package references and unchanged dependency requirements; no actionable issue identified.

Reviews (1): Last reviewed commit: "Update utopia-php/storage to 3.1" | Re-trigger Greptile

@loks0n
loks0n merged commit 0473978 into main Jul 23, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant