[ 
https://issues.apache.org/jira/browse/IGNITE-27781?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vadim Pakhnushev reassigned IGNITE-27781:
-----------------------------------------

    Assignee: Vadim Pakhnushev

> Improve OpenAPI spec versioning & publishing
> --------------------------------------------
>
>                 Key: IGNITE-27781
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27781
>             Project: Ignite
>          Issue Type: Improvement
>          Components: rest ai3
>            Reporter: Iurii Gerzhedovich
>            Assignee: Vadim Pakhnushev
>            Priority: Major
>              Labels: ignite-3
>
> h2. *1) Versioning model*
> h3. *Platform vs API version*
>  * Platform version (e.g., 1.2.4) is the primary version for docs/spec 
> publishing.
>  * API version refers to API major version (e.g., v1, v2). Each major has its 
> own OpenAPI JSON/YAML.
> Each platform release supports N API majors. For each supported API major, we 
> publish one spec.
> h3. *When to bump API major*
> Bump vN → vN+1 only for breaking changes, including:
>  * removing/renaming endpoints or fields
>  * incompatible request/response schema changes (type/shape changes)
>  * Making optional fields required
>  * tightening validation that can reject previously accepted inputs
>  * auth/permission changes that break existing integrations
>  * semantic changes that break reasonable client assumptions
> Additive changes (new endpoints, new optional fields, additional response 
> fields, improved descriptions/examples) do not require an API major bump.
> h3. *“Since platform version” requirement*
> Any endpoint (and optionally fields/schemas) introduced after the initial 
> publication of an API major must include:
>  * “Since platform version X.Y.Z”
> Implementation:
>  * Consider adding x-since: X.Y.Z extension field, and auto-process it.
>  * Consider adding “Since platform version X.Y.Z” to the descriptions 
> (potentially automatically from the extension field)
> h2. *2) Publishing model*
> h3. *Versioned docs are the source of truth*
> OpenAPI YAMLs are published as part of the versioned platform docs for each 
> release.
> Immutability rule:
>  * Under a given platform docs root (e.g., /docs/1.2.4/), published YAMLs are 
> immutable after release.
>  * Spec clarifications/corrections are published in the next platform docs 
> version (e.g., 1.2.5) without changing the API major, if no breaking API 
> change occurred.
> h3. *URL layout*
> For platform version <P> and API major <V>:
>  * Raw spec:
>  * /docs/<P>/api/<V>/openapi.yaml
>  * AND/OR /docs/<P>/api/<V>/openapi.json
> Note: there is no “latest” for API versions.
> h3. *Distribution artifacts*
> For now, OpenAPI JSON/YAMLs are not included in downloadable platform 
> artifacts (TBD). The canonical distribution is via the docs site.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to