Add version compatibility matrix to SDKs docs#2993
Conversation
Maps each released self-hosted Appwrite version (1.7.0 through 1.9.0) to the SDK versions current at the time of that release, so self-hosted users can pin to a known-compatible SDK. Split into Client and Server tables to match the existing page structure. Includes a backport note for 1.7.5 (released after 1.8.0, so its SDK row reflects 1.8.x-targeted releases) and a one-line note for Rust (available from 1.8.1 onwards). Cloud users are pointed at latest. Generated from appwrite/appwrite GitHub release dates cross-referenced with each sdk-for-* repo's tag dates. Regen tooling lives at experiments/sdk-pinning/generate_matrix.py (not in this repo).
Appwrite WebsiteProject ID: Website (appwrite/website)Project ID: Tip Sites support three domain rule types: Active deployment, Git branch, and Redirect |
Greptile SummaryThis PR adds a "Version compatibility" section to the SDKs docs page with two tables (Client SDKs and Server SDKs) mapping each self-hosted Appwrite release from
Confidence Score: 3/5The change is documentation-only and cannot break runtime behavior, but it contains incorrect or missing data that would actively mislead developers trying to pin SDK versions for their self-hosted Appwrite server. The Rust SDK is listed as an official server SDK on the same page but is silently absent from the new compatibility matrix without any note, leaving Rust users without guidance. Additionally, the 1.9.0 row lists versions inconsistent with the current-version badges already on the page, so a developer following this table could install the wrong SDK version. src/routes/docs/sdks/+page.markdoc — the compatibility tables need the Rust SDK column (or an explicit availability note) and the 1.9.0 row versions need to be reconciled with the current-version badges already on the page. Important Files Changed
Reviews (4): Last reviewed commit: "Remove redundant Rust note and 1.7.5 bac..." | Re-trigger Greptile |
Replaced the date-based pins with endpoint-set verified pins. For each released Appwrite version, generated the SDK that sdk-generator would produce from that version's swagger2 spec, extracted the (verb, path) set, and compared against every published SDK tag to find the highest-version SDK whose endpoint set is fully present on the server. Changes from the prior matrix: - 1.7 line: grouped by spec blob. 1.7.0/1.7.1 share one spec; 1.7.2-1.7.5 share another. Pins now reflect the SDKs whose endpoint set actually matches the 1.7.x API surface (older majors, not the date-window pins that were contaminated by 1.8.x-era SDK releases). - 1.7.4 / 1.7.5 / 1.8.1 / 1.9.0: pins were wrong in the previous matrix (date heuristic picked SDKs that were tagged in lockstep with newer Appwrite series but call endpoints that don't exist on the pinned server version). Refined picks below. - Rust: only recommended at 1.9.0. Earlier rust SDK releases (0.1.0) target Cloud-only endpoints not present in self-hosted 1.7.x/1.8.x. The OAuth-callback-path caveat is noted in the section text; those paths exist on every server but aren't enumerated in the OpenAPI spec, so they appear as extras in the comparison without being real incompatibilities.
The previous commit (316ae3a) updated the matrix versions but also rewrote surrounding prose, restructured row labels, and replaced the Rust note + 1.7.5 backport caveat. Those prose changes weren't asked for. This commit restores the section's prose and row structure verbatim from the original commit (1d172a8) and keeps only the verified version numbers in the table cells.
Both paragraphs were extra context that didn't add value: - The Rust note duplicated information available in the SDK list. - The 1.7.5 caveat contradicted the verified pins (which match the 1.7.4 row's 1.7.x-line SDKs, not 1.8.x as the caveat claimed).


Summary
1.7.0through1.9.0) to the SDK versions current at the time of that release.1.7.5(released after1.8.0, so its row reflects1.8.x-targeted SDKs) and a one-line note for Rust (available from1.8.1onwards).How the matrix was built
For each Appwrite stable release
V, pick the latest stable SDK tag from eachsdk-for-*repo whose committerdate falls inV's active window (release(V)→release(next chronological V)). For the latest stable (1.9.0), the window is capped at the first commit onappwrite/appwritethat bumpsAPP_VERSION_STABLEpast1.9.0(so SDKs targeting Cloud-only1.9.1+aren't pulled in — this is the cutover where the realtime protocol changed in web25.0.0).Sources:
gh release list -R appwrite/appwrite --exclude-pre-releasesfor server dates; eachsdk-for-*repo's git tags for SDK dates.Generator script lives outside this repo at
experiments/sdk-pinning/generate_matrix.pyand is wrapped in a globalsdk-pinningskill for refreshing the matrix after each future stable release.Test plan
bun run devand visithttp://localhost:5173/docs/sdks#version-compatibility1.7.5backport caveat and Rust note read correctly