Skip to content

chore: allow utopia-php/cache ^5.0 - #70

Merged
loks0n merged 1 commit into
mainfrom
chore/allow-cache-5
Aug 21, 2026
Merged

chore: allow utopia-php/cache ^5.0#70
loks0n merged 1 commit into
mainfrom
chore/allow-cache-5

Conversation

@loks0n

@loks0n loks0n commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Why

utopia-php/cache 5.0.0 is out. This package pins ^4, and because Composer resolves the whole graph, that pin blocks every consumer downstream — appwrite/appwrite cannot move to cache 5 while any of its dependencies still require cache 4.

Why this is safe

Cache 5.0.0's major is not about the general cache API, which is unchanged. It is a major for two reasons:

  1. Redis\Multiplexing changed how a per-call read deadline is handled — a timeout no longer tears down the shared connection (utopia-php/monorepo#152).
  2. It now requires utopia-php/circuit-breaker ^0.4, which removed the threshold constructor argument in favour of a failure rate (utopia-php/monorepo#153).

This package uses neither. grep for Multiplexing and CircuitBreaker across src/ and tests/ returns nothing — only the generic Cache/Adapter surface is used, and that is identical between 4 and 5.

The constraint

^4.0 || ^5.0 rather than ^5.0, so this package does not force the upgrade on anyone still on cache 4. Consumers pick the version; this just stops being the thing that says no.

🤖 Generated with Claude Code

Cache 5.0.0 is released and this package pinned ^4, which blocks every consumer
downstream: appwrite cannot move to cache 5 while any dependency still requires
cache 4.

Nothing here needs to change to support it. Cache's major is for the
Redis\Multiplexing deadline behaviour and for requiring circuit-breaker ^0.4,
which dropped the threshold argument. This package uses neither — grep for
Multiplexing and CircuitBreaker across src/ and tests/ returns nothing, and the
generic Cache and Adapter surface is identical between 4 and 5.

Constrained as ^4.0 || ^5.0 rather than ^5.0 so this does not force the upgrade
on anyone still on cache 4.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Aug 21, 2026

Copy link
Copy Markdown

Greptile Summary

The PR allows consumers to resolve either utopia-php/cache 4.x or 5.x and updates the lockfile to exercise version 5.0.0.

  • Broadens the cache dependency constraint without forcing existing consumers off version 4.
  • Updates cache and circuit-breaker lockfile entries to their compatible newer releases.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete changed-code-triggered failures identified.

The package already requires PHP 8.4, repository cache usage remains on the compatible generic Cache and None adapter surface, and the lockfile’s unrelated PHPUnit advisory predates this change and is unreachable through the configured test path.

Important Files Changed

Filename Overview
composer.json Broadens the cache constraint to support versions 4 and 5; no incompatible repository usage was identified.
composer.lock Resolves cache 5.0.0 and circuit-breaker 0.4.0 consistently with the updated manifest and existing PHP requirement.

Reviews (1): Last reviewed commit: "chore: allow utopia-php/cache ^5.0" | Re-trigger Greptile

@loks0n

loks0n commented Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

On the two test failures — neither is from this change.

Tests 8.4/8.5: 102 tests, 603 assertions, 2 failures.

  1. Failed asserting that false is true — pre-existing. The analogous chore/cache-4 bump in July failed with exactly this, across four runs (run 30640459356). main's last Tests run was itself a red dependency-update job, so the branch has not been green since.

  2. UnsupportedTldException is not throwntests/Registrar/NameComTest.php:166, which asserts the live Name.com API rejects an unsupported TLD (src/Domains/Registrar/Adapter/NameCom.php:219). Registrar TLD support is remote data that has had three weeks to drift since that July run.

There is no code path from this change to either. Cache 5.0.0 differs from 4.x in Redis\\Multiplexing deadline handling and in requiring circuit-breaker ^0.4; this package uses neither, and src/Domains/Cache.php calls only load(), save() and purge() — identical between the two majors.

Locally the suite is unchanged by the bump: 102 tests / 362 assertions / 51 failures both with and without it (the extra local failures are registrar credentials this machine does not have).

Flagging rather than asserting green — worth someone confirming the Name.com fixture separately, since it will keep drifting.

@loks0n
loks0n merged commit cab900a into main Aug 21, 2026
3 of 5 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