Commit afd7a73
authored
Test OpenAPI schema has no breaking changes (#979)
Modified `test_openapi` so that after it generates the current schema and runs the OpenAPI linter, it'll also check for breaking changes.
I'm adding this test because we can no longer break old versions of Zoo Design Studio. We should really never break the OpenAPI schema. If you find you need a breaking change, just make a new endpoint instead.
The new "check for breaking changes" test logic is pretty simple. It does this by:
1. Downloading the latest schema on `main` branch from GitHub
2. Reading this branch's schema from disk (written earlier in `test_openapi`)
3. Run `just breaking-api-changes`, which
4. compares the two schemae via the `openapi-changes` CLI tool.
5. If there's a breaking change, that tool terminates with exit code 1 (and 0 i.e. OK if there's no changes, or only additive changes).
In my testing, this tool has much better understanding of OpenAPI than `oasdiff`, which the engine currently uses. For example, `oasdiff` thinks that adding a new optional field, or a field with a default value is a breaking change. That's wrong. `openapi-changes` correctly classifies those as additions, not breaking changes.1 parent 8865a94 commit afd7a73
File tree
7 files changed
+85
-97
lines changed- .github/workflows
- .helix
- modeling-cmds
- src
7 files changed
+85
-97
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
43 | 60 | | |
44 | 61 | | |
45 | 62 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
| 72 | + | |
72 | 73 | | |
73 | 74 | | |
74 | 75 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
26 | 30 | | |
27 | 31 | | |
28 | 32 | | |
| |||
50 | 54 | | |
51 | 55 | | |
52 | 56 | | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
0 commit comments