Skip to content

fix: remove produces extension from 2.0.x canonical spec - #111

Merged
ChiragAgg5k merged 2 commits into
mainfrom
clo-4377-produces-2.0.x
Sep 8, 2026
Merged

fix: remove produces extension from 2.0.x canonical spec#111
ChiragAgg5k merged 2 commits into
mainfrom
clo-4377-produces-2.0.x

Conversation

@ChiragAgg5k

Copy link
Copy Markdown
Member

Summary

Publish the genuine 2.0.x canonical document without x-appwrite.produces, following Appwrite #13524 (merged 75535982188c586d404cddc3e748a56d60089bd6). 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:

pub async fn delete_billing_address(
    &self,
    billing_address_id: impl Into<String>,
) -> crate::error::Result<()> {
api_headers.insert("accept".to_string(), "application/json".to_string());

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

  • Real Cloud CLI: 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.
  • Same-producer baseline exactly matches this PR's prerequisite spec semantically. All non-extension values are unchanged.
  • Both before/after canonical documents pass OpenAPI schema validation; both specs branches pass 101/101 local-reference checks.
  • Both final canonical documents are byte-identical. Generated Rust console smoke succeeds.
  • No unit tests added; no examples, historical Swagger, templates, or per-platform documents changed.

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).

validation

@ChiragAgg5k
ChiragAgg5k changed the base branch from feat-2.0.x-specs to main September 8, 2026 11:07
@ChiragAgg5k
ChiragAgg5k marked this pull request as ready for review September 8, 2026 11:07
@greptile-apps

greptile-apps Bot commented Sep 8, 2026

Copy link
Copy Markdown

Greptile Summary

This PR corrects the canonical 2.0.x OpenAPI document by removing 49 redundant x-appwrite.produces declarations.

  • Preserves standard response media, schemas, authentication metadata, and other operation properties.
  • Keeps the numbered canonical artifact consistent with the corresponding latest canonical document.
  • Makes only mechanical JSON comma adjustments where the removed property was last in its object.

Confidence Score: 5/5

The 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

Filename Overview
specs/2.0.x/open-api3-2.0.x.json Removes 49 redundant JSON response-media vendor extensions without altering the standard OpenAPI response contracts.

Reviews (1): Last reviewed commit: "Merge branch 'main' of https://github.co..." | Re-trigger Greptile

@ChiragAgg5k
ChiragAgg5k merged commit c4d6f8c into main Sep 8, 2026
2 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