You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: CONTRIBUTING.md
+50-14
Original file line number
Diff line number
Diff line change
@@ -336,7 +336,7 @@ For information on the branch and release strategy for OAS 3.0.4 and 3.1.1 and e
336
336
### Branch roles
337
337
338
338
*`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`.
339
-
*`dev` is the primary branch for working with the `src` tree, which is kept up-to-date with the most recent release on the most recent minor (X.Y) release line, and serves as the base for each new minor release line. Development infrastructure that is not needed on `main` is maintained here, and can be merged out to other non-`main` branches as needed.
339
+
*`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.
340
340
Changes on `main` are automatically included in a pull request to `dev` (see the (section on [branch sync](#branch-sync-automation)).
341
341
*`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.
342
342
*`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 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.
@@ -348,17 +348,15 @@ Upon release:
348
348
* Pre-release steps:
349
349
* The most recent _published_ patch release from the previous line is merged up to `vX.Y-dev`, if relevant
350
350
* If doing simultaneous releases on multiple lines, do them from the oldest to newest line
351
-
* If the release is the most recent on the current line, merge `vX.Y-dev` to `dev`
352
351
* For example, if releasing 3.1.3 and 3.2.0:
353
-
* release 3.1.3 first, including merging `v3.1-dev` to `dev` as 3.1 is current at that moment
354
-
* release 3.2.0 second, also merging `v3.2-dev` to `dev` as 3.2 becomes current at that point
355
-
* any subsequent 3.1.4 would **_not_** trigger a merge of `v3.1-dev` to `dev`, as 3.1 would no longer be current
352
+
* release 3.1.3 first
353
+
* release 3.2.0 second
356
354
* Release branching and merging:
357
355
* branch `vX.Y.Z-rel` from `vX.Y-dev` (same commit that was merged to `dev` if relevant)
358
-
* After renaming `src/oas.md` to `versions/X.Y.Z.md`, merge `vX.Y.Z-rel` to `main`
356
+
* After renaming `src/oas.md` to `versions/X.Y.Z.md` and [other adjustments](#specification-versions), merge `vX.Y.Z-rel` to `main`
359
357
* Publishing to the [spec site](https://spec.openapis.org) is triggered by the merge to `main`
360
358
* Post-release steps:
361
-
* If this was a major or minor release (Z == 0), branch `vX.Y+1-dev` from `dev`, from the commit where `vX.Y-dev` was merged to `dev`
359
+
* If this was a major or minor release (Z == 0), branch `vX.Y+1-dev` from `vX.Y-dev`
362
360
363
361
_Release lines are grouped by color, although the colors of `dev` and `main` are not significant as these diagrams are limited to only 8 colors._
364
362
@@ -399,31 +397,50 @@ gitGraph TB:
399
397
checkout v3.1-dev
400
398
branch v3.1.2-rel order:3
401
399
commit id:"rename src/oas.md to versions/3.1.2.md"
402
-
checkout dev
403
-
merge v3.1-dev id:"update dev with active line patch release"
400
+
404
401
checkout main
405
402
merge v3.1.2-rel tag:"3.1.2"
403
+
checkout dev
404
+
merge main id:"auto-sync from main"
405
+
checkout v3.1-dev
406
+
merge dev id:"auto-sync from dev"
406
407
checkout v3.2-dev
408
+
merge dev id:"auto-sync from dev "
409
+
407
410
commit id:"more 3.2.0 work"
408
411
checkout v3.1-dev
409
412
commit id:"update version in src/oas.md to 3.1.3"
410
413
commit id:"another 3.1.x fix"
411
414
checkout v3.2-dev
412
415
commit id:"still more 3.2.0 work"
413
416
merge v3.1-dev id:"merge 3.1.3 fixes before releasing"
414
-
checkout dev
415
-
merge v3.1-dev id:"update dev with last pre-minor release patch release"
416
-
merge v3.2-dev id:"update dev with minor release"
417
+
417
418
checkout v3.1-dev
418
419
branch v3.1.3-rel order:4
419
420
commit id:"rename src/oas.md to versions/3.1.3.md"
420
421
checkout v3.2-dev
421
422
branch v3.2.0-rel order:7
422
423
commit id:"rename src/oas.md to versions/3.2.0.md"
424
+
423
425
checkout main
424
426
merge v3.1.3-rel tag:"3.1.3"
427
+
checkout dev
428
+
merge main id:" auto-sync from main"
429
+
checkout v3.1-dev
430
+
merge dev id:" auto-sync from dev"
431
+
checkout v3.2-dev
432
+
merge dev id:" auto-sync from dev "
433
+
434
+
checkout main
425
435
merge v3.2.0-rel tag:"3.2.0"
426
436
checkout dev
437
+
merge main id:" auto-sync from main"
438
+
checkout v3.1-dev
439
+
merge dev id:" auto-sync from dev"
440
+
checkout v3.2-dev
441
+
merge dev id:" auto-sync from dev "
442
+
443
+
checkout v3.2-dev
427
444
branch v3.3-dev order:9
428
445
checkout v3.1-dev
429
446
commit id:"update version in src/oas.md to 3.1.4"
@@ -439,17 +456,36 @@ gitGraph TB:
439
456
merge v3.1-dev id:"merge 3.1.4 fixes before releasing"
440
457
checkout v3.3-dev
441
458
merge v3.2-dev id:"merge 3.1.4 / 3.2.1 fixes"
442
-
checkout dev
443
-
merge v3.2-dev id:"merge patch from active release line"
459
+
444
460
checkout v3.1-dev
445
461
branch v3.1.4-rel order:5
446
462
commit id:"rename src/oas.md to versions/3.1.4.md"
447
463
checkout v3.2-dev
448
464
branch v3.2.1-rel order:8
449
465
commit id:"rename src/oas.md to versions/3.2.1.md"
0 commit comments