fix: remove produces extension from 2.0.x canonical spec - #111
Merged
Conversation
ChiragAgg5k
marked this pull request as ready for review
September 8, 2026 11:07
…7-produces-2.0.x
Greptile SummaryThis PR corrects the canonical 2.0.x OpenAPI document by removing 49 redundant
Confidence Score: 5/5The PR appears safe to merge after its stated prerequisite and publication gates are satisfied. The diff is limited to the intended vendor-extension removals, preserves authoritative OpenAPI response declarations, and introduces no identified functional, structural, or security defect. Important Files Changed
Reviews (1): Last reviewed commit: "Merge branch 'main' of https://github.co..." | Re-trigger Greptile |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Publish the genuine
2.0.xcanonical document withoutx-appwrite.produces, following Appwrite #13524 (merged75535982188c586d404cddc3e748a56d60089bd6). Tracks CLO-4377.Stacked on #108 (
feat-2.0.x-specs), not on main. Merge #108 first, then retarget this PR to main and verify that only the canonical 2.0.x document changes. This branch does not modify #108 or duplicate its examples.Draft gate: Cloud's Composer lock promotion to the merged Appwrite revision is prepared locally but not yet accepted upstream. Accept that producer promotion before merging these artifacts. The SDK generator consumer #1888 remains release-gated on publication of both canonical documents.
Actual emitted spec change
Excerpt for
accountDeleteBillingAddress:"responses": { "204": {"description": "No content"} }, "x-appwrite": { - "produces": ["application/json"], ... }Exactly 49 extension removals, with required trailing-comma adjustments only. No response body is invented. All other parsed values are identical: 1,020 operations, 77 aliases, 16 security schemes, including platform availability, aliases, auth, model schemas, runtime enums and explicit response media. Invoice binary response declarations remain intact.
Generated SDK effect
Actual Rust console output from this new canonical document using #1888:
The previous generator inferred
Result<serde_json::Value>from the removed extension.Result<()>is an intentional breaking Rust API correction; SDK release notes/versioning must account for it. Explicit response media remains authoritative; JSON is the negotiation fallback when responses declare no content.Validation
php app/cli.php specs --version=2.0.x --mode=normal --git=no, in an isolated linux/amd64, network-disabled container matching the publisher's architecture, before and after the Composer-installed dependency promotion. Whole emitter output copied without JSON editing.Generation architecture
The earlier apparent legacy Deno enum drift was local ARM64 filtering, not an API change. Regeneration on the publisher's x86 architecture retains those enums. No unrelated runtime removal is included.
Testing screenshot below captures actual command output (not UI e2e).