Skip to content
Draft
Show file tree
Hide file tree
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
9 changes: 0 additions & 9 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,3 @@ updates:
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 10
groups:
vitest:
patterns:
- "*vitest*"
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ present on the main branch, only on the development branches).
* 3.1.x spec and schemas: v3.1-dev branch
* 3.2.x spec and schemas: v3.2-dev branch
* 3.3.x spec and schemas: v3.3-dev branch
* process documentation and build infrastructure: main
* process documentation and shared infrastructure: main

Note that we do not accept changes to published specifications.
-->
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/respec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
path: deploy

- name: run main script
run: scripts/md2html/build.sh
run: npm run build

- name: Create Pull Request
uses: peter-evans/create-pull-request@v8
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/schema-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
path: deploy

- name: run main script
run: scripts/schema-publish.sh
run: npm run publish-schemas

- name: Create Pull Request
uses: peter-evans/create-pull-request@v8
Expand Down
9 changes: 4 additions & 5 deletions .github/workflows/validate-markdown.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ jobs:
with:
node-version: "24.x"

- name: Lint work-in-progress spec
run: npx --yes markdownlint-cli2 --config spec.markdownlint.yaml src/oas.md

- name: Lint other files
run: npx --yes markdownlint-cli2 *.md
- name: Install dependencies
run: npm ci

- name: Validate Markdown
run: npm run validate-markdown
1 change: 1 addition & 0 deletions .linkspector.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ ignorePatterns:
- pattern: 'https://www.w3.org/TR/xml-names11/'
- pattern: 'https://www.npmjs.com/package/markdownlint'
- pattern: 'https://www.merriam-webster.com/dictionary/'
- pattern: 'https://github.com/OAI/build-infra/blob/main/CONTRIBUTING.md'
29 changes: 25 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,23 @@ When you engage with this project, please:
We actively close interactions that don't meet these expectations, so please don't be offended as we protect the time and energy of our volunteers.
If you do think that something was closed in error, you are welcome to reach out to us to follow up.

## Shared infrastructure

This repository uses the shared OpenAPI Initiative infrastructure package
[`@oai/build-infra`](https://github.com/OAI/build-infra) for Markdown
validation, HTML builds, schema publication, schema tests, and release helper
commands. The npm scripts in this repository are intentionally thin wrappers
around that package.

The shared infrastructure docs explain how the tooling works and how to maintain
it:

- [build-infra README](https://github.com/OAI/build-infra/blob/main/README.md)
- [build-infra CONTRIBUTING](https://github.com/OAI/build-infra/blob/main/CONTRIBUTING.md)

Most contributors only need the commands shown below. Maintainers changing the
tooling itself should read the build-infra docs first.


### Active branches

Expand Down Expand Up @@ -221,7 +238,7 @@ The steps for creating a `vX.Y.Z-rel` branch are:
- adjust and repeat until done
- merge changes to `src/oas.md` back into `vX.Y-dev` via PR
4. Create `vX.Y.Z-rel` from `vX.Y-dev` and adjust it
- the bash script `scripts/adjust-release-branch.sh` does this:
- `npm run adjust-release-branch` does this:
- copy file `src/oas.md` to `versions/X.Y.Z.md` and replace the release date placeholder `| TBD |` in the history table of Appendix A with the current date
- copy file `EDITORS.md` to `versions/X.Y.Z-editors.md`
- delete folder `src`
Expand All @@ -233,11 +250,16 @@ The steps for creating a `vX.Y.Z-rel` branch are:

The HTML renderings of the specification versions are generated from the `versions` directory on `main` by manually triggering the [`respec` workflow](https://github.com/OAI/OpenAPI-Specification/blob/main/.github/workflows/respec.yaml), which generates a pull request for publishing the HTML renderings to the [spec site](https://spec.openapis.org).

The release commands are implemented in
[`OAI/build-infra`](https://github.com/OAI/build-infra). If a command behaves
unexpectedly, check this repository's `spec.config.json` first, then see the
[build-infra release documentation](https://github.com/OAI/build-infra/blob/main/README.md#release-process-summary).

#### Start Next Patch Version

Once the released specification version is [synced](#branch-sync-automation) back to the `vX.Y-dev` branch, the next patch version X.Y.(Z+1) can be started:

1. Run bash script `scripts/start-release.sh` in branch `vX.Y-dev` to
1. Run `npm run start-release` in branch `vX.Y-dev` to
- create branch `vX.Y-dev-start-X.Y.(Z+1)`
- initialize `src/oas.md` with empty history and content from `versions/X.Y.Z.md`
- change version heading to X.Y.(Z+1) and add a new line to the version history table in Appendix A of `src/oas.md`
Expand All @@ -251,7 +273,7 @@ Alternatively, if no patch version X.Y.(Z+1) is planned, delete file `src/oas.md
A new minor version X.(Y+1).0 or major version (X+1).0.0 is started similarly:

1. Create branch `vX'.Y'-dev` from `vX.Y-dev`
2. Run bash script `scripts/start-release.sh` in the new branch to
2. Run `npm run start-release` in the new branch to
- create branch `vX'.Y'-dev-start-X'.Y'.0`
- initialize `src/oas.md` with empty history and content from `versions/X.Y.Z.md`
- change version heading to X'.Y'.0 and add a new line to the version history table in Appendix A of `src/oas.md`
Expand Down Expand Up @@ -563,4 +585,3 @@ This process makes use of the following labels:
An issue is opened every week, 7 days in advance, for the Technical Developer Community (TDC), it provides the information to connect the meeting, and serves as a placeholder to build the agenda for the meeting. Anyone is welcome to attend the meeting, or to add items to the agenda as long as they plan on attending to present the item. These issues are also automatically pinned for visibility and labeled with "Housekeeping".

Ten (10) days after the meeting date is passed (date in the title of the issue), it gets closed and unpinned automatically.

8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ Looking to see how you can create your own OpenAPI definition, present it, or ot
The current process for developing the OpenAPI Specification is described in
the [Contributing Guidelines](CONTRIBUTING.md).

Build, test, schema publication, and release command infrastructure is shared
with other OpenAPI Initiative specification repositories through
[OAI/build-infra](https://github.com/OAI/build-infra). See that repository's
[README](https://github.com/OAI/build-infra/blob/main/README.md) and
[CONTRIBUTING guide](https://github.com/OAI/build-infra/blob/main/CONTRIBUTING.md)
for details on the shared tooling.

Developing the next version of the OpenAPI Specification is guided by the [Technical Steering Committee (TSC)](MAINTAINERS.md). 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 `main`.

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 entire OpenAPI [technical meeting calendar](https://calendar.google.com/calendar/u/0/embed?src=c_fue82vsncog6ahhjvuokjo8qsk@group.calendar.google.com) online.
Expand All @@ -51,4 +58,3 @@ Not all feedback can be accommodated, and there may be solid arguments for or ag

See: [License (Apache-2.0)](https://github.com/OAI/OpenAPI-Specification/blob/main/LICENSE)


18 changes: 10 additions & 8 deletions _archive_/schemas/v3.0/schema.test.mjs
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import { readdirSync, readFileSync } from "node:fs";
import YAML from "yaml";
import { validate, setMetaSchemaOutputFormat } from "@hyperjump/json-schema/openapi-3-0";
import { BASIC } from "@hyperjump/json-schema/experimental";
import { describe, test, expect } from "vitest";

import contentTypeParser from "content-type";
import { addMediaTypePlugin } from "@hyperjump/browser";
import { buildSchemaDocument } from "@hyperjump/json-schema/experimental";
import { describe, test, expect } from "@oai/build-infra/test";
import {
addMediaTypePlugin,
BASIC,
buildSchemaDocument,
contentTypeParser,
setMetaSchemaOutputFormat,
validate,
YAML
} from "@oai/build-infra/schema/openapi-3-0-test";

addMediaTypePlugin("application/schema+yaml", {
parse: async (response) => {
Expand Down
Loading