Skip to content

Add essential policies to DEVELOPMENT.md #3599

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 5, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,31 @@

This document intends to establish guidelines which build a transparent, open mechanism for deciding how to evolve the OpenAPI Specification. The OpenAPI Technical Steering Committee (TSC) will initially follow these processes when merging changes from external contributors or from the TSC itself. This guideline document will be adjusted as practicality dictates.

### Essential Policies

If in doubt about a policy, please [ask on our Slack](https://communityinviter.com/apps/open-api/openapi) before opening a PR.

#### No changes to published specifications

No changes, ***no matter how trivial***, are ever made to the contents of published specifications. The only potential changes to those documents are updates to link URLs _if and only if_ the targeted document is moved by a 3rd party. Other changes to link URLs are not allowed.

#### Current branches and documents open to change

The first PR for a change should be against the oldest release line to which it applies. Changes can then be forward-ported as appropriate.

The current (February 2024) active releases are:

| Version | Branch | File |
| ------- | ------ | ---- |
| 3.0.4 | `v3.0.4-dev` | `versions/3.0.4.md` |
| 3.1.1 | `v3.1.1-dev` | `versions/3.1.1.md` |
| 3.2.0 | `v3.2.0-dev` | `versions/3.2.0.md` |
| 4.0.0 | [OAI/sig-moonwalk](https://github.com/OAI/sig-moonwalk) | [discussions only](https://github.com/OAI/sig-moonwalk/discussions) |

#### Changing the schemas

Schemas are only changed _after_ the specification is changed. Changes are made on the `main` branch, and should be made to the YAML version _only_. The JSON version will be generated automatically.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't sound right because there are a number of schema changes in the v3.1.1-dev branch (mostly fixes to restore conformance with the spec).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also - could there/should there be an automated script that updates the json file immediately after a merged change to the yaml file?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't sound right because there are a number of schema changes in the v3.1.1-dev branch (mostly fixes to restore conformance with the spec).

I think those are ones that got merged by accident because someone didn't see that the branch was wrong. Although for 3.2 you are probably right, as it will get a new schema (but patch releases do not). Honestly, I'm not sure, I'm kind of trying to provoke some sort of clear policy.

Also - could there/should there be an automated script that updates the json file immediately after a merged change to the yaml file?

That would be great, but would require someone to do it. We could use forward-porting scripts that are more per-change oriented than the ones in the scripts directory and automation to forward-port individual PRs as well.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think those are ones that got merged by accident because someone didn't see that the branch was wrong.

I believe they were intentional.. there was even a new interim release made of the revised schema (about a year ago now) - "$id": "https://spec.openapis.org/oas/3.1/schema/2022-10-07". There have been enough commits since then that we could have another interim release now.


## OAI Specification Driving factors

The OpenAPI Specification should be use-case driven. We can specify support for hypothetical use cases as we see fit, but specifications should be backed by realistic scenarios.
Expand Down