Skip to content

Add version compatibility matrix to SDKs docs#2993

Merged
atharvadeosthale merged 4 commits into
mainfrom
sdk-compatibility
May 20, 2026
Merged

Add version compatibility matrix to SDKs docs#2993
atharvadeosthale merged 4 commits into
mainfrom
sdk-compatibility

Conversation

@atharvadeosthale
Copy link
Copy Markdown
Member

Summary

  • Adds a new Version compatibility section to the SDKs docs page that 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.
  • Split into Client SDKs (web, flutter, react-native, apple, android) and Server SDKs (node.js, python, php, dart, ruby, .NET, go, swift, kotlin, cli) to mirror the rest of the page.
  • Includes a backport caveat for 1.7.5 (released after 1.8.0, so its row reflects 1.8.x-targeted SDKs) and a one-line note for Rust (available from 1.8.1 onwards).
  • Cloud users are pointed at "latest SDK published for your platform" since Cloud rolls forward ahead of self-hosted.

How the matrix was built

For each Appwrite stable release V, pick the latest stable SDK tag from each sdk-for-* repo whose committerdate falls in V's active window (release(V)release(next chronological V)). For the latest stable (1.9.0), the window is capped at the first commit on appwrite/appwrite that bumps APP_VERSION_STABLE past 1.9.0 (so SDKs targeting Cloud-only 1.9.1+ aren't pulled in — this is the cutover where the realtime protocol changed in web 25.0.0).

Sources: gh release list -R appwrite/appwrite --exclude-pre-releases for server dates; each sdk-for-* repo's git tags for SDK dates.

Generator script lives outside this repo at experiments/sdk-pinning/generate_matrix.py and is wrapped in a global sdk-pinning skill for refreshing the matrix after each future stable release.

Test plan

  • bun run dev and visit http://localhost:5173/docs/sdks#version-compatibility
  • Confirm both tables render with all rows and columns
  • Verify the 1.7.5 backport caveat and Rust note read correctly
  • Spot-check a couple of pins against the actual SDK GitHub release pages

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
Copy link
Copy Markdown

appwrite Bot commented May 11, 2026

Appwrite Website

Project ID: 69d7efb00023389e8d27

Sites (1)
Site Status Logs Preview QR
 website
69d7f2670014e24571ca
Building Building View Logs Preview URL QR Code

Website (appwrite/website)

Project ID: 684969cb000a2f6c0a02

Sites (1)
Site Status Logs Preview QR
 website
68496a17000f03d62013
Queued Queued View Logs Preview URL QR Code


Tip

Sites support three domain rule types: Active deployment, Git branch, and Redirect

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 11, 2026

Greptile Summary

This 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 1.7.0 through 1.9.0 to the SDK versions current at the time.

  • Adds Client SDK compatibility rows for Web, Flutter, React Native, Apple, and Android across all tracked Appwrite versions.
  • Adds Server SDK compatibility rows for Node.js, Python, PHP, Dart, Ruby, .NET, Go, Swift, Kotlin, and CLI — but omits Rust, which is listed as an official server SDK elsewhere on the same page, and does not include the promised explanatory note about Rust availability starting from 1.8.1.
  • The 1.9.0 row versions in both tables are higher than (or inconsistent with) the "current version" badges already displayed at the top of the page for several SDKs, creating contradictory guidance for readers.

Confidence Score: 3/5

The 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

Filename Overview
src/routes/docs/sdks/+page.markdoc Adds a Version compatibility section with two tables (Client and Server SDKs). The Rust SDK present in the server list at the top is missing from the matrix with no explanatory note, and the 1.9.0 matrix row versions are inconsistent with the "current version" badges already on the page.

Reviews (4): Last reviewed commit: "Remove redundant Rust note and 1.7.5 bac..." | Re-trigger Greptile

Comment thread src/routes/docs/sdks/+page.markdoc
Comment thread src/routes/docs/sdks/+page.markdoc
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.
Comment thread src/routes/docs/sdks/+page.markdoc Outdated
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).
Comment thread src/routes/docs/sdks/+page.markdoc
@atharvadeosthale atharvadeosthale merged commit d650949 into main May 20, 2026
6 of 7 checks passed
@atharvadeosthale atharvadeosthale deleted the sdk-compatibility branch May 20, 2026 04:22
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.

2 participants