Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
f01f757
Higher schema coverage thresholds
ralfhandl Aug 13, 2025
c1eb792
Simplify branch diagram
ralfhandl Oct 2, 2025
a900416
Typo
ralfhandl Oct 4, 2025
3e04f5f
schemas are not in main and not synced between vX.Y-dev branches
ralfhandl Oct 5, 2025
a4aac30
Changed role of rel branches
ralfhandl Oct 11, 2025
3050196
More precise restore
ralfhandl Oct 16, 2025
1da1e28
Diff local head with remote base branch
ralfhandl Oct 29, 2025
f09f7e2
Bump the vitest group with 2 updates
dependabot[bot] Oct 30, 2025
c31bc10
Merge pull request #5086 from OAI/dependabot/npm_and_yarn/vitest-ed98…
ralfhandl Oct 30, 2025
29115e3
Merge main into dev-sync-with-main
github-actions[bot] Oct 30, 2025
e68051b
Merge pull request #5075 from ralfhandl/main-contributing-branch-role…
miqui Oct 30, 2025
ead3952
Merge main into dev-sync-with-main
github-actions[bot] Oct 30, 2025
eacf240
Merge pull request #5076 from ralfhandl/main-more-precise-sync
miqui Oct 30, 2025
3f63831
Merge main into dev-sync-with-main
github-actions[bot] Oct 30, 2025
2faac48
Merge pull request #5009 from ralfhandl/main-contributing-simplify-br…
miqui Oct 30, 2025
105aad6
Merge main into dev-sync-with-main
github-actions[bot] Oct 30, 2025
81c277e
Merge pull request #5085 from ralfhandl/main-fix-check-restricted-files
miqui Oct 30, 2025
2483d85
Merge main into dev-sync-with-main
github-actions[bot] Oct 30, 2025
64667e9
Merge pull request #4862 from ralfhandl/main-schema-coverage-thresholds
miqui Oct 30, 2025
29ec519
Merge main into dev-sync-with-main
github-actions[bot] Oct 30, 2025
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
2 changes: 1 addition & 1 deletion .github/workflows/check-restricted-files.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,6 @@ jobs:

echo This PR contains changes to files that should not be changed:
echo
git diff --compact-summary origin/${{ github.event.pull_request.base.ref }} origin/${{ github.event.pull_request.head.ref }} -- versions/
git diff --compact-summary origin/${{ github.event.pull_request.base.ref }} -- versions/

exit 1
6 changes: 3 additions & 3 deletions .github/workflows/sync-dev-to-vX.Y-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ jobs:

git checkout -b $SYNC origin/$SYNC || git checkout -b $SYNC origin/$BASE
git merge origin/$HEAD -m "Merge $HEAD into $SYNC"
git checkout origin/$BASE src/*
git checkout origin/$BASE tests/*
git commit -m "Restored src/* and tests/*" || echo ""
git checkout origin/$BASE src/
git checkout origin/$BASE tests/schema/
git commit -m "Restored src/ and tests/schema/" || echo ""
git push -u origin $SYNC

EXISTS=$(gh pr list --base $BASE --head $SYNC \
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/sync-main-to-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ jobs:

git checkout -b $SYNC origin/$SYNC || git checkout -b $SYNC origin/$BASE
git merge origin/$HEAD -m "Merge $HEAD into $SYNC"
git checkout origin/$BASE src/*
git checkout origin/$BASE tests/*
git commit -m "Restored src/* and tests/*" || echo ""
git checkout origin/$BASE src/
git checkout origin/$BASE tests/schema/
git commit -m "Restored src/ and tests/schema/" || echo ""
git push -u origin $SYNC

EXISTS=$(gh pr list --base $BASE --head $SYNC \
Expand Down
34 changes: 10 additions & 24 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -371,9 +371,9 @@ For information on the branch and release strategy for OAS 3.0.4 and 3.1.1 and e

* `main` is used to publish finished work and hold the authoritative versions of general documentation such as this document, which can be merged out to other branches as needed. The `src` tree is _**not**_ present on `main`.
* `dev` is the primary branch for working with the `src` tree. Development infrastructure that is not needed on `main` is maintained here, and can be merged out to other non-`main` branches as needed.
Changes on `main` are automatically included in a pull request to `dev` (see the (section on [branch sync](#branch-sync-automation)).
Changes on `main` are automatically included in a pull request to `dev` (see the section on [branch sync](#branch-sync-automation)).
* `vX.Y-dev` is the minor release line development branch for X.Y, including both the initial X.Y.0 minor version and all subsequent X.Y.Z patch versions. All PRs are made to oldest active `vX.Y-dev` branch to which the change is relevant, and then merged forward as shown in the diagram further down in this document.
* `vX.Y.Z-rel` is the release branch for an X.Y.Z release (including when Z == 0). It exists primarily for `git mv`-ing `src/oas.md` to the appropriate `versions/X.Y.Z.md` location and removing schema-related files before merging back to `main`, and can also be used for any emergency post-release fixes that come up, such as when a 3rd party changes URLs in a way that breaks published links.
* `vX.Y.Z-rel` is the release branch for an X.Y.Z release (including when Z == 0). It exists primarily for `git mv`-ing `src/oas.md` to the appropriate `versions/X.Y.Z.md` location and removing schema-related files before merging back to `main`, and is deleted once merged into `main` via a pull request.

### Branching and merging (3.1.2, 3.2.0, and later)

Expand Down Expand Up @@ -403,14 +403,14 @@ config:
git2: "#eedd88"
git3: "#ccbb66"
git4: "#aa9944"
git5: "#887722"
git6: "#99ccff"
git7: "#77aadd"
git5: "#44ff77"
git6: "#22cc22"
git7: "#11aa11"
gitBranchLabel1: "#000000"
gitBranchLabel2: "#000000"
gitBranchLabel3: "#000000"
gitBranchLabel4: "#000000"
gitBranchLabel5: "#ffffff"
gitBranchLabel5: "#000000"
gitBranchLabel6: "#000000"
gitBranchLabel7: "#000000"
---
Expand All @@ -425,9 +425,8 @@ gitGraph TB:
commit id:"update version in src/oas.md to 3.2.0"
commit id:"some 3.2.0 work"
checkout v3.1-dev
commit id:"a 3.1.x fix"
checkout v3.2-dev
merge v3.1-dev id:"merge 3.1.2 fixes"
commit id:"a 3.1.2 fix"

checkout v3.1-dev
branch v3.1.2-rel order:3
commit id:"rename src/oas.md to versions/3.1.2.md"
Expand All @@ -444,10 +443,9 @@ gitGraph TB:
commit id:"more 3.2.0 work"
checkout v3.1-dev
commit id:"update version in src/oas.md to 3.1.3"
commit id:"another 3.1.x fix"
commit id:"a 3.1.3 fix"
checkout v3.2-dev
commit id:"still more 3.2.0 work"
merge v3.1-dev id:"merge 3.1.3 fixes before releasing"

checkout v3.1-dev
branch v3.1.3-rel order:4
Expand Down Expand Up @@ -476,30 +474,18 @@ gitGraph TB:

checkout v3.2-dev
branch v3.3-dev order:9
checkout v3.1-dev
commit id:"update version in src/oas.md to 3.1.4"
checkout v3.2-dev
commit id:"update version in src/oas.md to 3.2.1"
checkout v3.3-dev
commit id:"update version in src/oas.md to 3.3.0"

checkout v3.1-dev
commit id:"a 3.1.4 fix"
checkout v3.2-dev
commit id:"a 3.2.1 fix"
merge v3.1-dev id:"merge 3.1.4 fixes before releasing"
checkout v3.3-dev
merge v3.2-dev id:"merge 3.1.4 / 3.2.1 fixes"

checkout v3.1-dev
branch v3.1.4-rel order:5
commit id:"rename src/oas.md to versions/3.1.4.md"
checkout v3.2-dev
branch v3.2.1-rel order:8
commit id:"rename src/oas.md to versions/3.2.1.md"

checkout main
merge v3.1.4-rel tag:"3.1.4"
checkout dev
merge main id:" auto-sync from main"
checkout v3.1-dev
Expand Down Expand Up @@ -534,7 +520,7 @@ To keep changes in sync, we have some GitHub actions that open pull requests to
- `sync-dev-to-vX.Y-dev` opens pull requests with all the changes from `dev` that aren't yet included on the corresponding `vX.Y-dev` branch. These pull requests are automatically merged if all required status checks pass.

The aim is to bring build script and repository documentation changes to the other branches.
Published versions of the specifications and schemas will also move across branches with this approach.
Published versions of the specifications will also move across branches with this approach.

## Appendix: Issue Automation

Expand Down
96 changes: 48 additions & 48 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"devDependencies": {
"@hyperjump/json-schema-coverage": "^1.1.2",
"@umbrelladocs/linkspector": "^0.4.7",
"@vitest/coverage-v8": "^4.0.4",
"@vitest/coverage-v8": "^4.0.5",
"c8": "^10.1.3",
"markdownlint-cli2": "^0.18.1",
"vitest": "^4.0.1",
Expand Down
10 changes: 5 additions & 5 deletions vitest.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ export default defineConfig({
coverage: {
include: ["src/schemas/validation/**/*.yaml"],
thresholds: process.env.BASE !== "dev" ? {
statements: 99.42, // should be 100% but we are missing some tests
lines: 99.42, // should be 100% but we are missing some tests
functions: 92.58, // should be 100% but we are missing some tests
// branches: 56.77, // need to discuss whether we should check/increase this
statements: 100, // JSON Schema keywords
lines: 100,
// functions: 100, // subschemas, for example with `properties` - to be discussed
// branches: 56.77, // branch coverage isn't that useful
} : {}
},
forceRerunTriggers: ['**/scripts/**', '**/tests/**'],
testTimeout: 10000, // 10 seconds
testTimeout: 20000, // 20 seconds, sometimes needed on slower machines
},
})