Conversation
|
utopia-php/database feat-query-lib (and Appwrite/Cloud) require PHP >=8.5. Advertising >=8.4.1 made Composer reject the graph for 8.4 consumers while CI only passed 8.4 via ignore-platform-reqs.
|
@greptile-apps review |
Schema setup with a known column or index type now uses Attribute::string() / Index::key() instead of the generic constructors plus ColumnType / IndexType.
Asterisk wildcards on utopia-php packages are replaced with equivalent caret constraints so Composer ranges stay consistent.
Keep composer.json and composer.lock in sync so `composer validate` passes, and pin utopia-php/database to the current query-lib HEAD.
|
@greptileai review |
|
@greptile-apps review Force re-review of HEAD |
Database::createCollection no longer accepts a string id.
Database feat-query-lib now requires query ^0.5 after nested joins.
|
@greptile-apps review |
The branch requires query "^0.4 || ^0.5" while the database branch it
depends on moved to "0.6.*". Composer cannot satisfy both, and audit's
branch is on 0.6 as well, so anything requiring abuse and audit together --
appwrite does -- cannot resolve either.
CI has not been showing this because the committed lock still pins a
database commit from before that bump, so nothing has re-resolved. Running
composer update against the current branch head fails outright:
utopia-php/database dev-feat-query-lib requires utopia-php/query 0.6.*
-> found utopia-php/query[0.6.0] but it conflicts with your root
composer.json require (^0.4 || ^0.5).
The lock now tracks the database branch head rather than a commit two
constraint changes behind it.
Nothing in src or tests touches the parts of the query API that changed
between 0.5 and 0.6. phpstan at level max and pint are both clean, and the
suite returns exactly the same counts before and after the bump on the same
containers -- 113 tests, 54 errors, 2 failures, 39 skipped, all of them the
uninitialised local redis cluster rather than anything this changes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
utopia-php/database#823 moved its ORM, repository/seeder and migration-runner layers into stacked PRs, so its branch head moved. Nothing here referenced any of them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The lock still pinned 6cc5f8be, two reconciles behind: the branch's green CI was proving a database revision that will not ship. a137475 carries the merge with main and the batched upsert read. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The guard exists because loading the backend file from the fixture test hid every backend case from PHPUnit's own scan. Pinning the ten method names and the fixture's case count made a rename or an added test fail a check about discovery, so the assertions mirrored the suite instead of describing it. Verified the guard still bites: hoisting the require_once in TablesDBFixtureTest back to file scope fails on the missing class key. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
@greptileai review |
database's feat-query-lib merged main (1ea2f35), which raised utopia-php/validators to ^1.0. The lock was still on a137475 with validators 0.6.0, so CI here was proving the branch against a base the rest of the train no longer uses. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Picks up the read-replica write-hook sync and the schema-bound aggregate validators, so CI here proves this branch against the base the rest of the train now uses. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Picks up the main merge on the database branch. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Picks up the required-change fix for attribute updates. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The database adapter now calls alterColumnNullable(), which 0.6.0 does not have, so an attribute update that changes required fataled. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ated The assertion pinned the `abuse-` prefix and the 24-hex encoding that `bin2hex(random_bytes(12))` happens to produce, so renaming the fixture database would have failed a test that is about lifecycle, not naming. Comparing the created id against the deleted id checks the same thing and is strictly stronger: it proves the fixture deleted its own database and left the foreign one alone. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
utopia-php/database#823 gained a join-alias validator fix after this lock was written, so CI here was still resolving an older commit of the branch it depends on. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Comments Outside DiffThese findings sit on lines the diff does not cover, so they could not be posted inline. Each one leaves this list once its file changes.
|
utopia-php/database#823 gained two library fixes after the last re-pin -- the negative document cache no longer survives an epoch rotation, and stddev/variance are pinned to the population statistic -- so CI here was resolving a commit that predates both. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Picks up the collection-metadata invalidation fix -- a cached _metadata entry could outlive its own invalidation under tenant per document -- along with the document version column and compare-and-set removal. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Adapts the TimeLimit schema to the query-lib
AttributeandIndexvalue objects.Why this approach
Query-lib
createCollection()takes aCollectionvalue object only, so the TimeLimit adapter now buildsnew Collection(id:, attributes:, indexes:)from the typed factories (Attribute::string(),Index::unique(), …) withColumnType/IndexTyperather thanDatabase::VAR_*strings.The column set is unchanged:
key/time/count, a unique(key, time)and an index ontime.utopia-php/databaseis pinned todev-feat-query-lib as 7.0.0with caret ranges (^, not*), and the lock is re-pinned to that branch's head whenever it moves.Chain
Landing order, bottom up:
The three framework PRs once stacked on #823 — #947 (ORM), #948 (repositories and seeding), #949 (migration runner and schema differ) — are closed and are not part of this train.
Verified
--level max src testscleanNot verified
tests/Abuse/Appwrite/TablesDBTest.phpdoes not run — it needsAPPWRITE_*CI secrets this repository does not haveutopia-php/databasedependency is still a branch pin. It becomes a released tag only once #823 merges, and this PR should not land before that.