Skip to content

Commit 434b2f8

Browse files
authored
Merge pull request #2906 from microsoft/feat/additional-siblings
feat(library): support schema keywords on references
2 parents 26c2358 + 6043551 commit 434b2f8

16 files changed

Lines changed: 925 additions & 278 deletions

performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.Descriptions-report-github.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ WarmupCount=3
1212
```
1313
| Method | Mean | Error | StdDev | Gen0 | Gen1 | Gen2 | Allocated |
1414
|------------- |-------------:|--------------:|-------------:|-----------:|-----------:|----------:|-------------:|
15-
| PetStoreYaml | 276.5 μs | 30.06 μs | 1.65 μs | 74.2188 | 7.8125 | - | 308.47 KB |
16-
| PetStoreJson | 111.8 μs | 21.37 μs | 1.17 μs | 41.5039 | - | - | 170.61 KB |
17-
| GHESYaml | 622,060.6 μs | 86,657.16 μs | 4,749.97 μs | 45000.0000 | 18000.0000 | 3000.0000 | 253531.41 KB |
18-
| GHESJson | 261,208.7 μs | 8,228.39 μs | 451.03 μs | 18000.0000 | 9000.0000 | 2000.0000 | 110703.15 KB |
19-
| GHESNextYaml | 837,135.5 μs | 595,784.29 μs | 32,656.95 μs | 80000.0000 | 19000.0000 | 3000.0000 | 447250.7 KB |
20-
| GHESNextJson | 456,841.5 μs | 104,869.19 μs | 5,748.23 μs | 53000.0000 | 13000.0000 | 3000.0000 | 309010.66 KB |
15+
| PetStoreYaml | 275.7 μs | 16.56 μs | 0.91 μs | 76.1719 | 13.6719 | - | 313.5 KB |
16+
| PetStoreJson | 120.8 μs | 3.75 μs | 0.21 μs | 42.9688 | 10.7422 | - | 175.64 KB |
17+
| GHESYaml | 633,787.7 μs | 233,432.08 μs | 12,795.20 μs | 45000.0000 | 19000.0000 | 3000.0000 | 254632.89 KB |
18+
| GHESJson | 237,577.2 μs | 200,872.43 μs | 11,010.50 μs | 18000.0000 | 9000.0000 | 2000.0000 | 111804.38 KB |
19+
| GHESNextYaml | 788,550.2 μs | 630,692.15 μs | 34,570.36 μs | 79000.0000 | 20000.0000 | 3000.0000 | 450741.24 KB |
20+
| GHESNextJson | 482,486.5 μs | 298,619.77 μs | 16,368.36 μs | 53000.0000 | 13000.0000 | 3000.0000 | 312508.07 KB |
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Gen0,Gen1,Gen2,Allocated
2-
PetStoreYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,276.5 μs,30.06 μs,1.65 μs,74.2188,7.8125,0.0000,308.47 KB
3-
PetStoreJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,111.8 μs,21.37 μs,1.17 μs,41.5039,0.0000,0.0000,170.61 KB
4-
GHESYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"622,060.6 μs","86,657.16 μs","4,749.97 μs",45000.0000,18000.0000,3000.0000,253531.41 KB
5-
GHESJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"261,208.7 μs","8,228.39 μs",451.03 μs,18000.0000,9000.0000,2000.0000,110703.15 KB
6-
GHESNextYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"837,135.5 μs","595,784.29 μs","32,656.95 μs",80000.0000,19000.0000,3000.0000,447250.7 KB
7-
GHESNextJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"456,841.5 μs","104,869.19 μs","5,748.23 μs",53000.0000,13000.0000,3000.0000,309010.66 KB
2+
PetStoreYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,275.7 μs,16.56 μs,0.91 μs,76.1719,13.6719,0.0000,313.5 KB
3+
PetStoreJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,120.8 μs,3.75 μs,0.21 μs,42.9688,10.7422,0.0000,175.64 KB
4+
GHESYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"633,787.7 μs","233,432.08 μs","12,795.20 μs",45000.0000,19000.0000,3000.0000,254632.89 KB
5+
GHESJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"237,577.2 μs","200,872.43 μs","11,010.50 μs",18000.0000,9000.0000,2000.0000,111804.38 KB
6+
GHESNextYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"788,550.2 μs","630,692.15 μs","34,570.36 μs",79000.0000,20000.0000,3000.0000,450741.24 KB
7+
GHESNextJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"482,486.5 μs","298,619.77 μs","16,368.36 μs",53000.0000,13000.0000,3000.0000,312508.07 KB

performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.Descriptions-report.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang='en'>
33
<head>
44
<meta charset='utf-8' />
5-
<title>performance.Descriptions-20260626-123335</title>
5+
<title>performance.Descriptions-20260626-135225</title>
66

77
<style type="text/css">
88
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
@@ -26,12 +26,12 @@
2626
<table>
2727
<thead><tr><th>Method</th><th>Mean </th><th>Error </th><th>StdDev</th><th>Gen0</th><th>Gen1</th><th>Gen2</th><th>Allocated</th>
2828
</tr>
29-
</thead><tbody><tr><td>PetStoreYaml</td><td>276.5 &mu;s</td><td>30.06 &mu;s</td><td>1.65 &mu;s</td><td>74.2188</td><td>7.8125</td><td>-</td><td>308.47 KB</td>
30-
</tr><tr><td>PetStoreJson</td><td>111.8 &mu;s</td><td>21.37 &mu;s</td><td>1.17 &mu;s</td><td>41.5039</td><td>-</td><td>-</td><td>170.61 KB</td>
31-
</tr><tr><td>GHESYaml</td><td>622,060.6 &mu;s</td><td>86,657.16 &mu;s</td><td>4,749.97 &mu;s</td><td>45000.0000</td><td>18000.0000</td><td>3000.0000</td><td>253531.41 KB</td>
32-
</tr><tr><td>GHESJson</td><td>261,208.7 &mu;s</td><td>8,228.39 &mu;s</td><td>451.03 &mu;s</td><td>18000.0000</td><td>9000.0000</td><td>2000.0000</td><td>110703.15 KB</td>
33-
</tr><tr><td>GHESNextYaml</td><td>837,135.5 &mu;s</td><td>595,784.29 &mu;s</td><td>32,656.95 &mu;s</td><td>80000.0000</td><td>19000.0000</td><td>3000.0000</td><td>447250.7 KB</td>
34-
</tr><tr><td>GHESNextJson</td><td>456,841.5 &mu;s</td><td>104,869.19 &mu;s</td><td>5,748.23 &mu;s</td><td>53000.0000</td><td>13000.0000</td><td>3000.0000</td><td>309010.66 KB</td>
29+
</thead><tbody><tr><td>PetStoreYaml</td><td>275.7 &mu;s</td><td>16.56 &mu;s</td><td>0.91 &mu;s</td><td>76.1719</td><td>13.6719</td><td>-</td><td>313.5 KB</td>
30+
</tr><tr><td>PetStoreJson</td><td>120.8 &mu;s</td><td>3.75 &mu;s</td><td>0.21 &mu;s</td><td>42.9688</td><td>10.7422</td><td>-</td><td>175.64 KB</td>
31+
</tr><tr><td>GHESYaml</td><td>633,787.7 &mu;s</td><td>233,432.08 &mu;s</td><td>12,795.20 &mu;s</td><td>45000.0000</td><td>19000.0000</td><td>3000.0000</td><td>254632.89 KB</td>
32+
</tr><tr><td>GHESJson</td><td>237,577.2 &mu;s</td><td>200,872.43 &mu;s</td><td>11,010.50 &mu;s</td><td>18000.0000</td><td>9000.0000</td><td>2000.0000</td><td>111804.38 KB</td>
33+
</tr><tr><td>GHESNextYaml</td><td>788,550.2 &mu;s</td><td>630,692.15 &mu;s</td><td>34,570.36 &mu;s</td><td>79000.0000</td><td>20000.0000</td><td>3000.0000</td><td>450741.24 KB</td>
34+
</tr><tr><td>GHESNextJson</td><td>482,486.5 &mu;s</td><td>298,619.77 &mu;s</td><td>16,368.36 &mu;s</td><td>53000.0000</td><td>13000.0000</td><td>3000.0000</td><td>312508.07 KB</td>
3535
</tr></tbody></table>
3636
</body>
3737
</html>

performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.Descriptions-report.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.EmptyModels-report-github.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,33 +10,33 @@ Job=ShortRun IterationCount=3 LaunchCount=1
1010
WarmupCount=3
1111
1212
```
13-
| Method | Mean | Error | StdDev | Gen0 | Allocated |
14-
|---------------------------- |-----------:|-----------:|----------:|-------:|----------:|
15-
| EmptyApiCallback | 1.834 ns | 0.4138 ns | 0.0227 ns | 0.0077 | 32 B |
16-
| EmptyApiComponents | 3.273 ns | 0.1576 ns | 0.0086 ns | 0.0268 | 112 B |
17-
| EmptyApiContact | 1.876 ns | 1.5257 ns | 0.0836 ns | 0.0115 | 48 B |
18-
| EmptyApiDiscriminator | 2.055 ns | 1.3792 ns | 0.0756 ns | 0.0115 | 48 B |
19-
| EmptyDocument | 301.687 ns | 18.8858 ns | 1.0352 ns | 0.2732 | 1144 B |
20-
| EmptyApiEncoding | 2.619 ns | 0.5789 ns | 0.0317 ns | 0.0191 | 80 B |
21-
| EmptyApiExample | 2.991 ns | 0.5519 ns | 0.0303 ns | 0.0172 | 72 B |
22-
| EmptyApiExternalDocs | 1.774 ns | 0.2712 ns | 0.0149 ns | 0.0096 | 40 B |
23-
| EmptyApiHeader | 2.640 ns | 0.5179 ns | 0.0284 ns | 0.0191 | 80 B |
24-
| EmptyApiInfo | 2.687 ns | 0.5028 ns | 0.0276 ns | 0.0191 | 80 B |
25-
| EmptyApiLicense | 1.955 ns | 0.3474 ns | 0.0190 ns | 0.0115 | 48 B |
26-
| EmptyApiLink | 2.455 ns | 0.5000 ns | 0.0274 ns | 0.0172 | 72 B |
27-
| EmptyApiMediaType | 2.886 ns | 10.2101 ns | 0.5597 ns | 0.0191 | 80 B |
28-
| EmptyApiOAuthFlow | 2.220 ns | 0.2202 ns | 0.0121 ns | 0.0153 | 64 B |
29-
| EmptyApiOAuthFlows | 2.223 ns | 0.2445 ns | 0.0134 ns | 0.0153 | 64 B |
30-
| EmptyApiOperation | 47.706 ns | 5.9139 ns | 0.3242 ns | 0.0899 | 376 B |
31-
| EmptyApiParameter | 2.872 ns | 0.3867 ns | 0.0212 ns | 0.0230 | 96 B |
32-
| EmptyApiPathItem | 2.226 ns | 0.4628 ns | 0.0254 ns | 0.0153 | 64 B |
33-
| EmptyApiPaths | 43.370 ns | 6.6182 ns | 0.3628 ns | 0.0592 | 248 B |
34-
| EmptyApiRequestBody | 1.923 ns | 0.1979 ns | 0.0108 ns | 0.0115 | 48 B |
35-
| EmptyApiResponse | 2.232 ns | 0.3409 ns | 0.0187 ns | 0.0153 | 64 B |
36-
| EmptyApiResponses | 43.110 ns | 1.1852 ns | 0.0650 ns | 0.0592 | 248 B |
37-
| EmptyApiSchema | 10.957 ns | 1.0671 ns | 0.0585 ns | 0.1224 | 512 B |
38-
| EmptyApiSecurityRequirement | 6.967 ns | 0.5461 ns | 0.0299 ns | 0.0249 | 104 B |
39-
| EmptyApiSecurityScheme | 3.090 ns | 0.2228 ns | 0.0122 ns | 0.0249 | 104 B |
40-
| EmptyApiServer | 2.070 ns | 0.5205 ns | 0.0285 ns | 0.0134 | 56 B |
41-
| EmptyApiServerVariable | 1.919 ns | 0.6760 ns | 0.0371 ns | 0.0115 | 48 B |
42-
| EmptyApiTag | 2.404 ns | 0.2185 ns | 0.0120 ns | 0.0172 | 72 B |
13+
| Method | Mean | Error | StdDev | Gen0 | Allocated |
14+
|---------------------------- |-----------:|------------:|----------:|-------:|----------:|
15+
| EmptyApiCallback | 8.441 ns | 0.9560 ns | 0.0524 ns | 0.0076 | 32 B |
16+
| EmptyApiComponents | 8.789 ns | 3.0390 ns | 0.1666 ns | 0.0268 | 112 B |
17+
| EmptyApiContact | 1.718 ns | 1.3157 ns | 0.0721 ns | 0.0115 | 48 B |
18+
| EmptyApiDiscriminator | 1.850 ns | 1.5513 ns | 0.0850 ns | 0.0115 | 48 B |
19+
| EmptyDocument | 275.419 ns | 113.2081 ns | 6.2053 ns | 0.2732 | 1144 B |
20+
| EmptyApiEncoding | 8.658 ns | 5.0614 ns | 0.2774 ns | 0.0191 | 80 B |
21+
| EmptyApiExample | 8.261 ns | 4.4939 ns | 0.2463 ns | 0.0172 | 72 B |
22+
| EmptyApiExternalDocs | 7.637 ns | 3.4662 ns | 0.1900 ns | 0.0096 | 40 B |
23+
| EmptyApiHeader | 2.212 ns | 3.2714 ns | 0.1793 ns | 0.0191 | 80 B |
24+
| EmptyApiInfo | 2.498 ns | 2.0242 ns | 0.1110 ns | 0.0191 | 80 B |
25+
| EmptyApiLicense | 1.935 ns | 1.7171 ns | 0.0941 ns | 0.0115 | 48 B |
26+
| EmptyApiLink | 2.201 ns | 0.8545 ns | 0.0468 ns | 0.0172 | 72 B |
27+
| EmptyApiMediaType | 8.823 ns | 5.9655 ns | 0.3270 ns | 0.0191 | 80 B |
28+
| EmptyApiOAuthFlow | 2.194 ns | 0.4027 ns | 0.0221 ns | 0.0153 | 64 B |
29+
| EmptyApiOAuthFlows | 9.184 ns | 2.3278 ns | 0.1276 ns | 0.0153 | 64 B |
30+
| EmptyApiOperation | 100.518 ns | 21.5626 ns | 1.1819 ns | 0.0899 | 376 B |
31+
| EmptyApiParameter | 9.626 ns | 0.7296 ns | 0.0400 ns | 0.0229 | 96 B |
32+
| EmptyApiPathItem | 2.333 ns | 0.0919 ns | 0.0050 ns | 0.0153 | 64 B |
33+
| EmptyApiPaths | 43.750 ns | 3.5441 ns | 0.1943 ns | 0.0592 | 248 B |
34+
| EmptyApiRequestBody | 8.899 ns | 0.9160 ns | 0.0502 ns | 0.0115 | 48 B |
35+
| EmptyApiResponse | 9.078 ns | 1.3136 ns | 0.0720 ns | 0.0153 | 64 B |
36+
| EmptyApiResponses | 84.375 ns | 9.9152 ns | 0.5435 ns | 0.0592 | 248 B |
37+
| EmptyApiSchema | 11.545 ns | 1.5733 ns | 0.0862 ns | 0.1224 | 512 B |
38+
| EmptyApiSecurityRequirement | 7.186 ns | 0.6334 ns | 0.0347 ns | 0.0249 | 104 B |
39+
| EmptyApiSecurityScheme | 2.914 ns | 4.4421 ns | 0.2435 ns | 0.0249 | 104 B |
40+
| EmptyApiServer | 2.276 ns | 0.6819 ns | 0.0374 ns | 0.0134 | 56 B |
41+
| EmptyApiServerVariable | 2.324 ns | 0.6012 ns | 0.0330 ns | 0.0115 | 48 B |
42+
| EmptyApiTag | 2.387 ns | 0.8556 ns | 0.0469 ns | 0.0172 | 72 B |

0 commit comments

Comments
 (0)