@crvouga/atlas 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,400 @@
1
+ {
2
+ "$id": "https://github.com/crvouga/atlas/schemas/catalog-health.schema.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "schemaVersion": {
7
+ "type": "number",
8
+ "const": 1
9
+ },
10
+ "version": {
11
+ "type": "string",
12
+ "description": "Changes whenever the report or its history does"
13
+ },
14
+ "generatedAtMs": {
15
+ "type": "number"
16
+ },
17
+ "ok": {
18
+ "type": "boolean",
19
+ "description": "True when there is no warning-severity finding"
20
+ },
21
+ "counts": {
22
+ "type": "object",
23
+ "properties": {
24
+ "specs": {
25
+ "type": "object",
26
+ "properties": {
27
+ "files": {
28
+ "type": "integer",
29
+ "minimum": 0,
30
+ "maximum": 9007199254740991,
31
+ "description": "Spec files the report is laid over, before any root mapping"
32
+ },
33
+ "defined": {
34
+ "type": "integer",
35
+ "minimum": 0,
36
+ "maximum": 9007199254740991,
37
+ "description": "Logical specs: files joined by a declared root mapping count once"
38
+ },
39
+ "withTests": {
40
+ "type": "integer",
41
+ "minimum": 0,
42
+ "maximum": 9007199254740991,
43
+ "description": "Logical specs, defined or not, that have at least one test"
44
+ },
45
+ "executed": {
46
+ "type": "integer",
47
+ "minimum": 0,
48
+ "maximum": 9007199254740991,
49
+ "description": "Defined logical specs with a test that passed or failed"
50
+ },
51
+ "withoutExecution": {
52
+ "type": "integer",
53
+ "minimum": 0,
54
+ "maximum": 9007199254740991,
55
+ "description": "Defined logical specs with no passed or failed test: the defined coverage gaps"
56
+ }
57
+ },
58
+ "required": [
59
+ "files",
60
+ "defined",
61
+ "withTests",
62
+ "executed",
63
+ "withoutExecution"
64
+ ],
65
+ "additionalProperties": {}
66
+ },
67
+ "tests": {
68
+ "type": "object",
69
+ "properties": {
70
+ "total": {
71
+ "type": "integer",
72
+ "minimum": 0,
73
+ "maximum": 9007199254740991
74
+ },
75
+ "withSpec": {
76
+ "type": "integer",
77
+ "minimum": 0,
78
+ "maximum": 9007199254740991
79
+ },
80
+ "withoutSpec": {
81
+ "type": "integer",
82
+ "minimum": 0,
83
+ "maximum": 9007199254740991
84
+ },
85
+ "passed": {
86
+ "type": "integer",
87
+ "minimum": 0,
88
+ "maximum": 9007199254740991,
89
+ "description": "Tests whose current status is passed"
90
+ },
91
+ "historicalOnly": {
92
+ "type": "integer",
93
+ "minimum": 0,
94
+ "maximum": 9007199254740991,
95
+ "description": "Tests only the history holds a result for"
96
+ }
97
+ },
98
+ "required": [
99
+ "total",
100
+ "withSpec",
101
+ "withoutSpec",
102
+ "passed",
103
+ "historicalOnly"
104
+ ],
105
+ "additionalProperties": {}
106
+ },
107
+ "scenarios": {
108
+ "type": "object",
109
+ "properties": {
110
+ "outlines": {
111
+ "type": "integer",
112
+ "minimum": 0,
113
+ "maximum": 9007199254740991,
114
+ "description": "Tests sharing the label `outline` count once; a test without it is its own outline"
115
+ },
116
+ "examples": {
117
+ "type": "integer",
118
+ "minimum": 0,
119
+ "maximum": 9007199254740991,
120
+ "description": "Tests (check identities), however many environments ran them"
121
+ },
122
+ "observations": {
123
+ "type": "integer",
124
+ "minimum": 0,
125
+ "maximum": 9007199254740991,
126
+ "description": "Current results per producer, environment and parameter set"
127
+ },
128
+ "executedObservations": {
129
+ "type": "integer",
130
+ "minimum": 0,
131
+ "maximum": 9007199254740991
132
+ },
133
+ "passedObservations": {
134
+ "type": "integer",
135
+ "minimum": 0,
136
+ "maximum": 9007199254740991
137
+ }
138
+ },
139
+ "required": [
140
+ "outlines",
141
+ "examples",
142
+ "observations",
143
+ "executedObservations",
144
+ "passedObservations"
145
+ ],
146
+ "additionalProperties": {}
147
+ }
148
+ },
149
+ "required": [
150
+ "specs",
151
+ "tests",
152
+ "scenarios"
153
+ ],
154
+ "additionalProperties": {}
155
+ },
156
+ "reconciliation": {
157
+ "type": "object",
158
+ "properties": {
159
+ "specs": {
160
+ "type": "integer",
161
+ "minimum": 0,
162
+ "maximum": 9007199254740991,
163
+ "description": "What the Specs view counts: spec files"
164
+ },
165
+ "testSpecs": {
166
+ "type": "integer",
167
+ "minimum": 0,
168
+ "maximum": 9007199254740991,
169
+ "description": "What the Tests view groups by: logical specs with at least one test"
170
+ },
171
+ "steps": {
172
+ "type": "array",
173
+ "items": {
174
+ "type": "object",
175
+ "properties": {
176
+ "code": {
177
+ "type": "string"
178
+ },
179
+ "label": {
180
+ "type": "string"
181
+ },
182
+ "delta": {
183
+ "type": "integer",
184
+ "minimum": -9007199254740991,
185
+ "maximum": 9007199254740991
186
+ }
187
+ },
188
+ "required": [
189
+ "code",
190
+ "label",
191
+ "delta"
192
+ ],
193
+ "additionalProperties": {}
194
+ },
195
+ "description": "From `specs` to `testSpecs`: each step adds its `delta`"
196
+ },
197
+ "testsWithoutSpec": {
198
+ "type": "integer",
199
+ "minimum": 0,
200
+ "maximum": 9007199254740991
201
+ },
202
+ "explanation": {
203
+ "type": "array",
204
+ "items": {
205
+ "type": "string"
206
+ }
207
+ }
208
+ },
209
+ "required": [
210
+ "specs",
211
+ "testSpecs",
212
+ "steps",
213
+ "testsWithoutSpec",
214
+ "explanation"
215
+ ],
216
+ "additionalProperties": {}
217
+ },
218
+ "identity": {
219
+ "type": "object",
220
+ "properties": {
221
+ "checks": {
222
+ "type": "integer",
223
+ "minimum": 0,
224
+ "maximum": 9007199254740991
225
+ },
226
+ "fallbackIdentity": {
227
+ "type": "integer",
228
+ "minimum": 0,
229
+ "maximum": 9007199254740991,
230
+ "description": "Checks whose id equals their title"
231
+ },
232
+ "basis": {
233
+ "type": "string"
234
+ }
235
+ },
236
+ "required": [
237
+ "checks",
238
+ "fallbackIdentity",
239
+ "basis"
240
+ ],
241
+ "additionalProperties": {}
242
+ },
243
+ "domains": {
244
+ "type": "array",
245
+ "items": {
246
+ "type": "object",
247
+ "properties": {
248
+ "name": {
249
+ "type": "string"
250
+ },
251
+ "specs": {
252
+ "type": "integer",
253
+ "minimum": 0,
254
+ "maximum": 9007199254740991
255
+ }
256
+ },
257
+ "required": [
258
+ "name",
259
+ "specs"
260
+ ],
261
+ "additionalProperties": {}
262
+ },
263
+ "description": "Specs per domain, most first"
264
+ },
265
+ "roots": {
266
+ "type": "array",
267
+ "items": {
268
+ "type": "object",
269
+ "properties": {
270
+ "from": {
271
+ "type": "string"
272
+ },
273
+ "to": {
274
+ "type": "string"
275
+ },
276
+ "matched": {
277
+ "type": "integer",
278
+ "minimum": 0,
279
+ "maximum": 9007199254740991,
280
+ "description": "Distinct paths the mapping changed"
281
+ }
282
+ },
283
+ "required": [
284
+ "from",
285
+ "to",
286
+ "matched"
287
+ ],
288
+ "additionalProperties": {}
289
+ }
290
+ },
291
+ "aliases": {
292
+ "type": "array",
293
+ "items": {
294
+ "type": "object",
295
+ "properties": {
296
+ "path": {
297
+ "type": "string"
298
+ },
299
+ "sources": {
300
+ "type": "array",
301
+ "items": {
302
+ "type": "string"
303
+ }
304
+ }
305
+ },
306
+ "required": [
307
+ "path",
308
+ "sources"
309
+ ],
310
+ "additionalProperties": {}
311
+ },
312
+ "description": "Logical specs seen under more than one original path, joined by a root mapping"
313
+ },
314
+ "findings": {
315
+ "type": "array",
316
+ "items": {
317
+ "type": "object",
318
+ "properties": {
319
+ "code": {
320
+ "type": "string",
321
+ "description": "An open set: treat a code you do not know as informational"
322
+ },
323
+ "severity": {
324
+ "type": "string",
325
+ "enum": [
326
+ "warning",
327
+ "info"
328
+ ]
329
+ },
330
+ "message": {
331
+ "type": "string"
332
+ },
333
+ "count": {
334
+ "type": "integer",
335
+ "minimum": 0,
336
+ "maximum": 9007199254740991
337
+ },
338
+ "items": {
339
+ "type": "array",
340
+ "items": {
341
+ "type": "object",
342
+ "properties": {
343
+ "path": {
344
+ "type": "string"
345
+ },
346
+ "candidates": {
347
+ "description": "Other paths it could be the same promise as. Atlas has not merged them",
348
+ "type": "array",
349
+ "items": {
350
+ "type": "object",
351
+ "properties": {
352
+ "path": {
353
+ "type": "string"
354
+ },
355
+ "reason": {
356
+ "type": "string"
357
+ }
358
+ },
359
+ "required": [
360
+ "path",
361
+ "reason"
362
+ ],
363
+ "additionalProperties": {}
364
+ }
365
+ }
366
+ },
367
+ "required": [
368
+ "path"
369
+ ],
370
+ "additionalProperties": {}
371
+ },
372
+ "description": "At most 25; `count` is the whole"
373
+ }
374
+ },
375
+ "required": [
376
+ "code",
377
+ "severity",
378
+ "message",
379
+ "count",
380
+ "items"
381
+ ],
382
+ "additionalProperties": {}
383
+ }
384
+ }
385
+ },
386
+ "required": [
387
+ "schemaVersion",
388
+ "version",
389
+ "generatedAtMs",
390
+ "ok",
391
+ "counts",
392
+ "reconciliation",
393
+ "identity",
394
+ "domains",
395
+ "roots",
396
+ "aliases",
397
+ "findings"
398
+ ],
399
+ "additionalProperties": {}
400
+ }