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
+55-1Lines changed: 55 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,7 +42,7 @@ The `main` branch holds
42
42
- sources for work-in-progress schema versions in `schemas/vX.Y-dev` folders and their tests in `tests/vX.Y-dev` folders,
43
43
- utility scripts and supporting documentation.
44
44
45
-
Other branches are usually short-lived, for example and for maintaining utility scripts.
45
+
Other branches are usually short-lived, for example for maintaining utility scripts.
46
46
47
47
### Reviewers
48
48
@@ -75,6 +75,60 @@ Produce stand-alone HTML files for all work-in-progress specifications in the lo
75
75
npm run build-dev
76
76
```
77
77
78
+
## Publishing
79
+
80
+
### Specification Versions
81
+
82
+
The specification versions are published to the [spec site](https://spec.openapis.org) by creating an `vX.Y.Z-rel` branch where `versions/X.Y.Z-dev.md` is renamed to `versions/X.Y.Z.md` and then merged into `main`.
83
+
This renaming preserves the commit history when using `git log --follow`.
84
+
85
+
The steps for creating a `vX.Y.Z-rel` branch are:
86
+
87
+
1. Update `EDITORS.md` in a temporary branch and merge changes back into `main` via pull request
88
+
2. Prepare spec files in a temporary branch:
89
+
-`npm run format-markdown`
90
+
-`npm run build-dev`
91
+
- open `deploy-preview/X.Y.Z-dev.html` in browser and verify correct formatting
92
+
- adjust and repeat until done
93
+
- merge changes back into `main` via pull request
94
+
3. Create branch `vX.Y.Z-rel` from `main` in the OAI/Overlay-Specification repo and adjust it
95
+
- the bash script `scripts/adjust-release-branch.sh` does this:
96
+
- move file `versions/X.Y.Z-dev.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
97
+
- copy file `EDITORS.md` to `versions/X.Y.Z-editors.md`
98
+
- for an X.Y.0 release
99
+
- move folder `schemas/vX.Y-dev` to `schemas/vX.Y`
100
+
- move folder `tests/vX.Y-dev` to `tests/vX.Y`
101
+
4. Commit, push, and merge `vX.Y.Z-rel` into `main` via pull request
102
+
5. Archive branch `vX.Y.Z-rel`
103
+
104
+
HTML renderings of the specification versions are generated from the `versions` folder on `main` by the `respec` workflow on changes to files in that folder, which generates a pull request for publishing the HTML renderings to the [spec site](https://spec.openapis.org/overlay). The workflow can be run manually if required.
105
+
106
+
Schema iterations are generated from the YAML source files in `schemas/vX.Y` by converting them to JSON, renaming to the relevant last-changed dates, and replacing the `WORK-IN-PROGRESS` placeholders with these dates. This is done by the `schema-publish` workflow on changes to files in these folders, which generates a pull request for publishing the new schema iterations to the [spec site](https://spec.openapis.org/overlay). The workflow can be run manually if required.
107
+
108
+
#### Start Next Patch Version
109
+
110
+
Once the released specification version is published, the next patch version X.Y.(Z+1) can be started:
111
+
112
+
1. Run bash script `scripts/start-release.sh X.Y.(Z+1)` in branch `main` to
113
+
- create branch `start-X.Y.(Z+1)`
114
+
- initialize `versions/X.Y.(Z+1)-dev.md` with empty history and content from `versions/X.Y.Z.md`
115
+
- change version heading to X.Y.(Z+1) and add a new line to the version history table in Appendix A
116
+
- commit changes
117
+
2. Push branch `start-X.Y.(Z+1)` and merge into `main` via pull request
118
+
119
+
#### Start New Minor or Major Version
120
+
121
+
A new minor version X.(Y+1).0 or major version (X+1).0.0 is started similarly:
122
+
123
+
1. Run bash script `scripts/start-release.sh X'.Y'.0` in branch `main` to
124
+
- create branch `start-X'.Y'.0`
125
+
- initialize `versions/X'.Y'.0-dev.md` with empty history and content from `versions/X.Y.Z.md`
126
+
- change version heading to X'.Y'.0 and add a new line to the version history table in Appendix A
127
+
- copy schema files `schemas/vX.Y` to `schemas/vX'.YY'-dev` and change version in all schema files
128
+
- copy schema tests `tests/vX.Y` to `tests/vX'.YY'-dev` and change version in all test files
129
+
- commit changes
130
+
2. Push branch `start-X'.Y'.0` and merge into `main` via pull request
0 commit comments