Skip to content

chore: allow utopia-php/cache 5.* - #4

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

chore: allow utopia-php/cache 5.*#4
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 blocks consumers downstream — appwrite-labs/cloud cannot move to circuit-breaker 0.4 while feed still holds cache to the 4 series.

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 circuit-breaker ^0.4, which removed the threshold constructor argument in favour of a failure rate (utopia-php/monorepo#153).

This package uses neither. Grepping src/ and tests/ for Multiplexing and CircuitBreaker returns nothing; the only imports are Utopia\Cache\Cache and Utopia\Cache\Adapter (src/Feed/Cursor/Cache.php, src/Feed/Store/Cache.php), which are identical across the two majors.

Verified

suite result
test:unit 121 tests, 280 assertions ✅
test:cache 146 tests, 313 assertions ✅
test:redis 155 tests, 318 assertions, 2 skipped ✅

The redis suite resolves the redis hostname on the compose network, so it has to run inside the tests container (docker compose exec tests composer test:redis) rather than from the host — worth knowing if you have seen it error with getaddrinfo for redis failed.

Lock moves exactly two packages: cache 4.0.1 → 5.0.0 and circuit-breaker 0.3.1 → 0.4.0.

Constraint

4.* || 5.* rather than 5.*, so this does not force the upgrade on anyone still on cache 4.

Context

Same pass already merged and released for the other three requirers: utopia-php/database#943 (7.2.6), utopia-php/domains#70 (3.0.1), utopia-php/vcs#137 (5.2.3). This was the fourth, found by Composer while resolving cloud.

🤖 Generated with Claude Code

Cache 5.0.0 is released and this package pinned 4.*, which blocks consumers
downstream: appwrite-labs/cloud cannot resolve circuit-breaker 0.4 while feed
still holds cache to the 4 series.

Nothing here needs to change for it. Cache's major covers Redis\Multiplexing
deadline handling and the move to circuit-breaker ^0.4, which dropped the
threshold argument. This package uses neither — only Utopia\Cache\Cache and
Utopia\Cache\Adapter, which are identical between 4 and 5.

Constrained as 4.* || 5.* so this does not force the upgrade on anyone still on
cache 4.

Verified: unit 121/121, cache 146/146, redis 155/155 (run inside the tests
container, where the compose network resolves).

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

Broadens compatibility to allow either utopia-php/cache 4.x or 5.x without forcing consumers to upgrade.

  • Updates the Composer constraint to 4.* || 5.*.
  • Refreshes the lockfile to cache 5.0.0 and its circuit-breaker 0.4.0 dependency.

Confidence Score: 5/5

The PR appears safe to merge with no concrete compatibility or security failures identified.

The repository uses cache APIs that remain compatible across the allowed versions, does not directly use the upgraded circuit-breaker API, and the resolved lock dependency graph is internally consistent.

Important Files Changed

Filename Overview
composer.json Safely broadens the cache dependency constraint while retaining compatibility with the existing 4.x series.
composer.lock Consistently resolves cache 5.0.0 and circuit-breaker 0.4.0 with no incompatible repository usage identified.

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

@loks0n
loks0n merged commit d174de2 into main Aug 21, 2026
10 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