Skip to content

Commit e47b2cf

Browse files
authored
Merge pull request OAI#1405 from OAI/issue-1384
Resolve TSC name changes per OAI#1384
2 parents f512058 + c882dd4 commit e47b2cf

File tree

11 files changed

+78
-31
lines changed

11 files changed

+78
-31
lines changed

DEVELOPMENT.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## Development Guidelines
22

3-
This document intends to establish guidelines which build a transparent, open mechanism for deciding how to evolve the OpenAPI Specification. The Open API Technical Contributor Board will initially follow these processes when merging changes from external contributors or from the TCB itself. This guideline document will be adjusted as practicality dictates.
3+
This document intends to establish guidelines which build a transparent, open mechanism for deciding how to evolve the OpenAPI Specification. The Open API 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.
44

55
## OAI Specification Driving factors
66

@@ -21,14 +21,19 @@ The specification _will change_ from the original 2.0 version. We should typica
2121

2222
- Use GitHub for all spec designs, use cases, and so on.
2323
- As with 2.0, the **human readable** document is the source of truth. If using a JSON Schema again to document the spec, it is secondary to the human documentation. The documentation should live in a *.md file, in parallel to the 2.0 document (versions/3.0.0.md for example).
24-
- The `master` branch shall remain the current, released OpenAPI Specification (i.e., 2.0). We will work in an OpenAPI.next branch, which shall be described and linked to on the **default** README.md on master.
24+
- At any given time, there would be _at most_ 4 work branches. The branches would exist if work has started on them. Assuming a current version of 3.0.0:
25+
- `master` - Current stable version. No PRs would be accepted directly to modify the specification. PRs against supporting files can be accepted.
26+
- `v3.0.1` - The next PATCH version of the specification. This would include non-breaking changes such as typo fixes, document fixes, wording clarifications.
27+
- `v3.1.0` - The next MINOR version.
28+
- `v4.0.0` - The next MAJOR version.
29+
- The `master` branch shall remain the current, released OpenAPI Specification. We will describe and link the work branch(es) on the **default** README.md on master.
2530
- Examples of how something is described _currently_ vs. the proposed solution should accompany any change proposal.
26-
- New features should be done in feature branches which, upon approval, are merged into the OpenAPI.next branch.
31+
- New features should be done in feature branches/forks which, upon approval, are merged into the proper work branch.
2732
- Use labels for the workflow of specification changes. Examples of labels are `proposed`, `needs migration review`, `needs tooling review`, `needs documentation`, `rejected`, and `needs approval`. These labels must be assigned by project committers.
2833
- An issue will be opened for each feature change. Embedded in the issue, or ideally linked in a file via pull-request (PR), a document about use cases should be supplied with the change.
2934
- A PR will be used to describe the _proposed_ solution, and linked to the original issue.
3035
- Not all committers will contribute to every single proposed change. There may be many open proposals at once, and multiple efforts may happen in parallel.
31-
- When the OpenApi.next spec is complete and approved for release, the branch will be merged to master.
36+
- When the a work branch is ready and approved, the branch will be merged to master.
3237

3338
## Approving Changes
3439

@@ -38,7 +43,7 @@ For each change in the specification we should _always_ consider the following:
3843
- Tooling. Strive to support code generation, software interfaces, and spec generation techniques. Some features may be impossible to support in different frameworks/languages. These should be documented and considered during the change approval process.
3944
- Visualization. Can the specification change be graphically visualized somehow in a UI or other interface?
4045

41-
Spec changes should be approved by a majority of the committers. Approval can be given by commenting on the issue itself, for example, "Approved by @fehguy". After voting criteria is met, any committer can merge the PR. (**TODO**: we will want to formalize what voting criteria actually is).
46+
Spec changes should be approved by a majority of the committers. Approval can be given by commenting on the issue itself, for example, "Approved by @webron". After voting criteria is met, any committer can merge the PR. (**TODO**: we will want to formalize what voting criteria actually is).
4247

4348
No change should be approved until there is documentation for it, supplied in an accompanying PR.
4449

GOVERNANCE.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Governance
2+
3+
The OpenAPI Specification is a project of the Open API Initiative (OAI), under the auspices of the Linux Foundation. For governance of the OAI, review the [OAI's charter](https://www.openapis.org/participate/how-to-contribute/governance).
4+
5+
# Processes and procedures of the Technical Steering Committee (TSC)
6+
7+
The TSC is a self-organizing sub-group of the OAI. Herein are its principles and guidelines.
8+
9+
## 1. The establishment of roles and the responsibilities for each role
10+
11+
Roles:
12+
13+
* [Liaison](https://www.merriam-webster.com/dictionary/liaison) — Elected by TSC members in a plurality vote (oral count). Liaison represents the TSC to the OAI's Business Governing Board (BGB) at board meetings (though this itself does not confer voting rights) and is the public facing mouthpiece of the TSC.
14+
15+
* [Maintainer](https://www.merriam-webster.com/dictionary/maintainer) — all and only members of the TSC are maintainers, and are responsible for approving proposed changes to the specification. If membership drops below 3, work is suspended until the BGB can re-establish the minimum. To maintain agility, the TSC should be capped at a maximum 9 members, though that number can be reconsidered by the TSC in the future. Past members will be noted as emeritus status once they are no longer members.
16+
17+
* [Rick](https://www.youtube.com/watch?v=dQw4w9WgXcQ) — Responsible for not giving up or letting down. Requires plurality vote of TSC members.
18+
19+
## 2. Adding members to the TSC
20+
21+
At an open TSC meeting, the impending call-for-nominations period is communicated and subsequently tweeted, no more than once per quarter. Nominations for members happen at closed TSC meetings via a motion by a voting TSC member. A nominee must not receive negative votes from 25% or more of the TSC voting membership via a confidential vote held electronically within a week of the nomination. Approved nominees are expected to comport themselves during the provisional period of four weeks as full members of the TSC, though nominees do not have voting rights until their membership is confirmed. TSC subsequently votes on those nominees in the subsequent TSC meeting. At most there are four voting periods per year, with a minimum of 1 per year.
22+
23+
## 3. Removal of membership from the TSC
24+
25+
In dire situations, it may be necessary to remove a TSC member, such as behavior that violates the code of conduct (whether non-participation merits removal is a decision left to the TSC voting members). 75% vote (confidential, electronic) of the other TSC. members is required to remove a member. Otherwise, TSC members are removed when they renounce their position by informing the Liaison of their effective resignation date.
26+
27+
## 4. Criteria for decisions
28+
29+
The group will strive to achieve all decisions via unopposed consensus. When not possible, unresolved conflicts will be raised to the OAI's Technical Oversight Board (TOB).
30+
31+
The TSC will maintain a publicly available document specifying the process in the contributor guidelines for how proposed changes are merged into the specification. The TSC will document and publicize the schedule of merge parties and release parties for the benefit of the developer community.

IMPLEMENTATIONS.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
### Implementations
22

3-
Below is a list of known tooling that implements the 3.0.0 specification. Because
4-
the 3.0.0 specification has not yet been released, refer to the details of projects listed below for any notes about stability and roadmap. The process
5-
to create the best possible 3.0.0 specification includes feedback from end-users
6-
and tooling creators. We strongly encourage draft tooling be
7-
made available for early users of the OAS.
3+
Below is a list of known tooling that implements the 3.0.0 specification. While support for the 3.0.0 specification matures, refer to the details of projects listed below for any notes about stability and roadmap. The process to improve the 3.x specification includes feedback from end-users and tooling creators. We strongly encourage draft tooling be made available for early users of OAS drafts.
84

95
These tools are not necessarily endorsed by the OAI.
106

@@ -18,15 +14,18 @@ These tools are not necessarily endorsed by the OAI.
1814
| openapi3-ts | [GitHub/metadevpro/openapi3-ts](https://github.com/metadevpro/openapi3-ts) | TypeScript | TS Model & utils for OpenAPI 3.0.x contracts |
1915
| swagger2openapi | [GitHub/mermade/swagger2openapi](https://github.com/mermade/swagger2openapi) | Node.js | An OpenAPI / Swagger 2.0 to OpenAPI 3.0.x converter and validator |
2016
| Tavis.OpenApi | [GitHub/tavis-sofware/Tavis.OpenApi](https://github.com/tavis-software/Tavis.OpenApi/) | dotnet | C# based parser with definition validation and migration support from V2 |
17+
| odata-openapi | [GitHub/oasis-tcs/odata-openapi](https://github.com/oasis-tcs/odata-openapi) | XSLT | OData 4.0 to OpenAPI 3.0.0 converter |
2118

2219

2320
#### Editors
2421

2522
| Title | Project Link | Language |Description |
2623
|----------------|--------------|----------|---------------------|
24+
| Apicurio Studio | [GitHub/Apicurio/apicurio-studio](https://github.com/Apicurio/apicurio-studio) | Java/Typescript | Web-Based **visual designer** for OpenAPI 2.0 and 3.0.0. |
2725
| KaiZen OpenAPI Editor | [GitHub/RepreZen/KaiZen-OpenAPI-Editor](https://github.com/RepreZen/KaiZen-OpenAPI-Editor) | Java | Eclipse Editor for OpenAPI 2.0 and 3.0 |
2826
| RepreZen API Studio | [RepreZen.com/OpenAPI](https://www.reprezen.com/OpenAPI) | Java | Commercial desktop IDE for API design, documentation & development |
2927
| OpenApi-gui | [GitHub/Mermade/openapi-gui](https://github.com/Mermade/openapi-gui) | Node.js | GUI / visual editor for creating and editing OpenApi / Swagger definitions |
28+
| SwaggerHub | [swaggerhub.com](https://swaggerhub.com) | | API Design and Documentation Platform, Built For Teams
3029
| swagger-editor | [GitHub/swagger-api](https://github.com/swagger-api/swagger-editor) | JavaScript | Web-Based editor for creating, editing, validating and testing OpenAPI\Swagger definitions |
3130

3231
#### User Interfaces
@@ -35,6 +34,7 @@ These tools are not necessarily endorsed by the OAI.
3534
|----------------|--------------|----------|---------------------|
3635
| openapi-viewer | [GitHub/koumoul/openapi-viewer](https://github.com/koumoul-dev/openapi-viewer) | Vue.js | Browse and test a REST API described with the OpenAPI 3.0 Specification. |
3736
| swagger-ui | [GitHub/swagger-api](https://github.com/swagger-api/swagger-UI) | JavaScript | Web-Based interface for visualizing and testing OpenAPI\Swagger definitions |
37+
| lincoln | [GitHub/temando/open-api-renderer](https://github.com/temando/open-api-renderer)| React.js| A React renderer for Open API v3 |
3838

3939

4040
#### Server Implementations
@@ -46,3 +46,5 @@ These tools are not necessarily endorsed by the OAI.
4646
|----------------|--------------|----------|---------------------|
4747
| baucis-openapi3 | [Github/metadevpro/baucis-openapi3](https://github.com/metadevpro/baucis-openapi3) | Node.js | [Baucis.js](https://github.com/wprl/baucis) plugin for generating OpenAPI 3.0 compliant API contracts. |
4848
| Google Gnostic | [GitHub/googleapis/gnostic](https://github.com/googleapis/gnostic) | Go | Compile OpenAPI descriptions into equivalent Protocol Buffer representations. |
49+
| serverless-openapi-documentation | [GitHub/temando/serverless-openapi-documentation](https://github.com/temando/serverless-openapi-documentation) | Typescript | Serverless 1.0 plugin to generate OpenAPI V3 documentation from serverless configuration |
50+
| zero-rails_openapi | [GitHub/zhandao/zero-rails_openapi](https://github.com/zhandao/zero-rails_openapi) | Ruby | Provide concise DSL for generating the OpenAPI Specification 3 documentation file for Rails application |

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ This GitHub project is the starting point for OpenAPI. Here you will find the in
2020

2121
The current version of the OpenAPI specification is [OpenAPI Specification 3.0](versions/3.0.0.md).
2222

23+
### Future Versions
24+
25+
[3.0.1](https://github.com/OAI/OpenAPI-Specification/tree/v3.0.1) - The next PATCH version. Patch-level fixes (typos, clarifications, etc.) should be submitted against this branch.
26+
2327
### Previous Versions
2428

2529
This repository also contains the [OpenAPI Specification 2.0](versions/2.0.md), which is identical to the Swagger 2.0 specification before it was renamed to "OpenAPI Specification", as well as the Swagger 1.2 and Swagger 2.0 specifications.
@@ -39,7 +43,9 @@ Looking to see how you can create your own OpenAPI definition, present it, or ot
3943

4044
The current process for development of the OpenAPI Specification is described in
4145
[Development Guidelines](DEVELOPMENT.md).
42-
Development of the next version of the OpenAPI Specification is guided by the [Technical Developer Community](https://www.openapis.org/participate/how-to-contribute/governance#TDC). This group of committers bring their API expertise, incorporate feedback from the community, and expand the group of committers as appropriate. All development activity on the future specification will be performed as features and merged into this branch. Upon release of the future specification, this branch will be merged to master.
46+
Development of the next version of the OpenAPI Specification is guided by the [Technical Steering Committee (TSC)](https://www.openapis.org/participate/how-to-contribute/governance#TDC). This group of committers bring their API expertise, incorporate feedback from the community, and expand the group of committers as appropriate. All development activity on the future specification will be performed as features and merged into this branch. Upon release of the future specification, this branch will be merged to master.
47+
48+
The TSC holds weekly web conferences to review open pull requests and discuss open issues related to the evolving OpenAPI Specification. Participation in weekly calls and scheduled working sessions is open to the community. You can view the [TSC calendar online](https://oai-technicalsteeringcommittee.groups.io/g/main/calendar), and import it to your calendar using the [iCal link](https://OAI-TechnicalSteeringCommittee.groups.io/g/main/ics/860119/668774333/feed.ics).
4349

4450
The Open API Initiative encourages participation from individuals and companies alike. If you want to participate in the evolution of the OpenAPI Specification, consider taking the following actions:
4551

examples/v2.0/yaml/petstore.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ paths:
2828
format: int32
2929
responses:
3030
"200":
31-
description: An paged array of pets
31+
description: A paged array of pets
3232
headers:
3333
x-next:
3434
type: string

examples/v3.0/api-with-examples.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ paths:
88
operationId: listVersionsv2
99
summary: List API versions
1010
responses:
11-
200:
11+
'200':
1212
description: |-
1313
200 response
1414
content:
@@ -41,7 +41,7 @@ paths:
4141
}
4242
]
4343
}
44-
300:
44+
'300':
4545
description: |-
4646
300 response
4747
content:
@@ -80,7 +80,7 @@ paths:
8080
operationId: getVersionDetailsv2
8181
summary: Show API version details
8282
responses:
83-
200:
83+
'200':
8484
description: |-
8585
200 response
8686
content:
@@ -125,7 +125,7 @@ paths:
125125
]
126126
}
127127
}
128-
203:
128+
'203':
129129
description: |-
130130
203 response
131131
content:

examples/v3.0/callback-example.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
# ...
1+
openapi: 3.0.0
2+
info:
3+
title: Callback Example
4+
version: 1.0.0
25
paths:
36
/streams:
47
post:

examples/v3.0/petstore-expanded.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ openapi: "3.0.0"
22
info:
33
version: 1.0.0
44
title: Swagger Petstore
5-
description: A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification
5+
description: A sample API that uses a petstore as an example to demonstrate features in the OpenAPI 3.0 specification
66
termsOfService: http://swagger.io/terms/
77
contact:
88
name: Swagger API Team
@@ -40,7 +40,7 @@ paths:
4040
type: integer
4141
format: int32
4242
responses:
43-
200:
43+
'200':
4444
description: pet response
4545
content:
4646
application/json:
@@ -65,7 +65,7 @@ paths:
6565
schema:
6666
$ref: '#/components/schemas/NewPet'
6767
responses:
68-
200:
68+
'200':
6969
description: pet response
7070
content:
7171
application/json:
@@ -90,7 +90,7 @@ paths:
9090
type: integer
9191
format: int64
9292
responses:
93-
200:
93+
'200':
9494
description: pet response
9595
content:
9696
application/json:
@@ -114,7 +114,7 @@ paths:
114114
type: integer
115115
format: int64
116116
responses:
117-
204:
117+
'204':
118118
description: pet deleted
119119
default:
120120
description: unexpected error

examples/v3.0/petstore.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ paths:
2222
type: integer
2323
format: int32
2424
responses:
25-
200:
25+
'200':
2626
description: An paged array of pets
2727
headers:
2828
x-next:
@@ -45,7 +45,7 @@ paths:
4545
tags:
4646
- pets
4747
responses:
48-
201:
48+
'201':
4949
description: Null response
5050
default:
5151
description: unexpected error
@@ -67,7 +67,7 @@ paths:
6767
schema:
6868
type: string
6969
responses:
70-
200:
70+
'200':
7171
description: Expected response to a valid request
7272
content:
7373
application/json:

examples/v3.0/uber.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ paths:
3232
tags:
3333
- Products
3434
responses:
35-
200:
35+
'200':
3636
description: An array of products
3737
content:
3838
application/json:
@@ -80,7 +80,7 @@ paths:
8080
tags:
8181
- Estimates
8282
responses:
83-
200:
83+
'200':
8484
description: An array of price estimates by product
8585
content:
8686
application/json:
@@ -127,7 +127,7 @@ paths:
127127
tags:
128128
- Estimates
129129
responses:
130-
200:
130+
'200':
131131
description: An array of products
132132
content:
133133
application/json:
@@ -148,7 +148,7 @@ paths:
148148
tags:
149149
- User
150150
responses:
151-
200:
151+
'200':
152152
description: Profile information for a user
153153
content:
154154
application/json:
@@ -180,7 +180,7 @@ paths:
180180
tags:
181181
- User
182182
responses:
183-
200:
183+
'200':
184184
description: History information for the given user
185185
content:
186186
application/json:

0 commit comments

Comments
 (0)