Publish capability matrix schema
This commit is contained in:
parent
4ed1359e04
commit
73deb9d46e
6 changed files with 142 additions and 0 deletions
|
|
@ -591,6 +591,9 @@ Recently cut:
|
||||||
from the exported evidence. The generic consumer smoke asserts it with
|
from the exported evidence. The generic consumer smoke asserts it with
|
||||||
`--expect-capability-matrix`, so owner repos do not need to scrape the
|
`--expect-capability-matrix`, so owner repos do not need to scrape the
|
||||||
Markdown report or rebuild Eve's summary logic to understand coverage.
|
Markdown report or rebuild Eve's summary logic to understand coverage.
|
||||||
|
- The capability matrix projection now has a catalog-backed schema document at
|
||||||
|
`schemas/gamecult.eve.capability_matrix.v1.schema.json`, and the generic
|
||||||
|
conformance consumer asserts that schema from the exported pack.
|
||||||
- Conformance export now copies handoff documents into `handoffs/*.json` rather
|
- Conformance export now copies handoff documents into `handoffs/*.json` rather
|
||||||
than exporting Eve-local source paths only. The export carries handoff export
|
than exporting Eve-local source paths only. The export carries handoff export
|
||||||
paths for EveConformance, Sai/Norn plugins, Aetheria, and EveUnity; the
|
paths for EveConformance, Sai/Norn plugins, Aetheria, and EveUnity; the
|
||||||
|
|
|
||||||
133
schemas/gamecult.eve.capability_matrix.v1.schema.json
Normal file
133
schemas/gamecult.eve.capability_matrix.v1.schema.json
Normal file
|
|
@ -0,0 +1,133 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"$id": "gamecult.eve.capability_matrix.v1",
|
||||||
|
"title": "Eve Capability Matrix",
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"schema",
|
||||||
|
"generatedAt",
|
||||||
|
"summary",
|
||||||
|
"capabilityGapCount",
|
||||||
|
"handoffs",
|
||||||
|
"packs",
|
||||||
|
"plugins",
|
||||||
|
"providers",
|
||||||
|
"runtimes",
|
||||||
|
"splitTargets"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"schema": {
|
||||||
|
"const": "gamecult.eve.capability_matrix.v1"
|
||||||
|
},
|
||||||
|
"generatedAt": {
|
||||||
|
"type": "string",
|
||||||
|
"minLength": 1
|
||||||
|
},
|
||||||
|
"summary": {
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
|
"capabilityGapCount": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"handoffs": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"conformance",
|
||||||
|
"plugins",
|
||||||
|
"providers",
|
||||||
|
"runtimes"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"conformance": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"plugins": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"providers": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"runtimes": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": true
|
||||||
|
},
|
||||||
|
"packs": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"packId",
|
||||||
|
"ownerRepo",
|
||||||
|
"fixtureCount",
|
||||||
|
"passedFixtures",
|
||||||
|
"failedFixtures"
|
||||||
|
],
|
||||||
|
"additionalProperties": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugins": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"pluginId",
|
||||||
|
"ownerRepo",
|
||||||
|
"status",
|
||||||
|
"capabilities",
|
||||||
|
"abiOperations"
|
||||||
|
],
|
||||||
|
"additionalProperties": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"providers": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"providerId",
|
||||||
|
"ownerRepo",
|
||||||
|
"status",
|
||||||
|
"surfaces",
|
||||||
|
"commands"
|
||||||
|
],
|
||||||
|
"additionalProperties": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimes": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"runtimeId",
|
||||||
|
"ownerRepo",
|
||||||
|
"status",
|
||||||
|
"supportedFeatures",
|
||||||
|
"captureStatus"
|
||||||
|
],
|
||||||
|
"additionalProperties": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"splitTargets": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"ownerRepo",
|
||||||
|
"status",
|
||||||
|
"blockerCount",
|
||||||
|
"passedProofs"
|
||||||
|
],
|
||||||
|
"additionalProperties": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": true
|
||||||
|
}
|
||||||
|
|
@ -33,6 +33,7 @@ try {
|
||||||
node .\tools\conformance\consume-export.mjs $consumerExport `
|
node .\tools\conformance\consume-export.mjs $consumerExport `
|
||||||
--expect-capability-matrix `
|
--expect-capability-matrix `
|
||||||
--expect-schema gamecult.eve.conformance_export.v1 `
|
--expect-schema gamecult.eve.conformance_export.v1 `
|
||||||
|
--expect-schema gamecult.eve.capability_matrix.v1 `
|
||||||
--expect-schema gamecult.eve.command_receipt.v1 `
|
--expect-schema gamecult.eve.command_receipt.v1 `
|
||||||
--expect-schema gamecult.eve.plugin_receipt.v1 `
|
--expect-schema gamecult.eve.plugin_receipt.v1 `
|
||||||
--expect-schema gamecult.eve.plugin_abi.request.v1 `
|
--expect-schema gamecult.eve.plugin_abi.request.v1 `
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,7 @@ foreach ($contract in @(
|
||||||
"gamecult.eve.command.v1",
|
"gamecult.eve.command.v1",
|
||||||
"gamecult.eve.command_receipt.v1",
|
"gamecult.eve.command_receipt.v1",
|
||||||
"gamecult.eve.conformance_export.v1",
|
"gamecult.eve.conformance_export.v1",
|
||||||
|
"gamecult.eve.capability_matrix.v1",
|
||||||
"gamecult.eve.conformance_fixture.v1",
|
"gamecult.eve.conformance_fixture.v1",
|
||||||
"gamecult.eve.provider_scenario.v1",
|
"gamecult.eve.provider_scenario.v1",
|
||||||
"gamecult.eve.plugin.v1",
|
"gamecult.eve.plugin.v1",
|
||||||
|
|
@ -112,6 +113,7 @@ if (Test-Path -LiteralPath (Join-Path $absoluteExportDirectory "index.json")) {
|
||||||
}
|
}
|
||||||
foreach ($schemaId in @(
|
foreach ($schemaId in @(
|
||||||
"gamecult.eve.conformance_export.v1",
|
"gamecult.eve.conformance_export.v1",
|
||||||
|
"gamecult.eve.capability_matrix.v1",
|
||||||
"gamecult.eve.conformance_fixture.v1",
|
"gamecult.eve.conformance_fixture.v1",
|
||||||
"gamecult.eve.provider_scenario.v1",
|
"gamecult.eve.provider_scenario.v1",
|
||||||
"gamecult.eve.provider_advertisement.v1",
|
"gamecult.eve.provider_advertisement.v1",
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
"destinationOwner": "EveConformance",
|
"destinationOwner": "EveConformance",
|
||||||
"currentPaths": [
|
"currentPaths": [
|
||||||
"schemas/gamecult.eve.conformance_export.v1.schema.json",
|
"schemas/gamecult.eve.conformance_export.v1.schema.json",
|
||||||
|
"schemas/gamecult.eve.capability_matrix.v1.schema.json",
|
||||||
"schemas/gamecult.eve.conformance_fixture.v1.schema.json",
|
"schemas/gamecult.eve.conformance_fixture.v1.schema.json",
|
||||||
"schemas/gamecult.eve.provider_scenario.v1.schema.json",
|
"schemas/gamecult.eve.provider_scenario.v1.schema.json",
|
||||||
"schemas/gamecult.eve.provider_advertisement.v1.schema.json",
|
"schemas/gamecult.eve.provider_advertisement.v1.schema.json",
|
||||||
|
|
@ -67,6 +68,7 @@
|
||||||
"gamecult.eve.command.v1",
|
"gamecult.eve.command.v1",
|
||||||
"gamecult.eve.command_receipt.v1",
|
"gamecult.eve.command_receipt.v1",
|
||||||
"gamecult.eve.conformance_export.v1",
|
"gamecult.eve.conformance_export.v1",
|
||||||
|
"gamecult.eve.capability_matrix.v1",
|
||||||
"gamecult.eve.conformance_fixture.v1",
|
"gamecult.eve.conformance_fixture.v1",
|
||||||
"gamecult.eve.provider_scenario.v1",
|
"gamecult.eve.provider_scenario.v1",
|
||||||
"gamecult.eve.plugin.v1",
|
"gamecult.eve.plugin.v1",
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
"schemas": {
|
"schemas": {
|
||||||
"gamecult.eve.conformance_fixture.v1": "schemas/gamecult.eve.conformance_fixture.v1.schema.json",
|
"gamecult.eve.conformance_fixture.v1": "schemas/gamecult.eve.conformance_fixture.v1.schema.json",
|
||||||
"gamecult.eve.conformance_export.v1": "schemas/gamecult.eve.conformance_export.v1.schema.json",
|
"gamecult.eve.conformance_export.v1": "schemas/gamecult.eve.conformance_export.v1.schema.json",
|
||||||
|
"gamecult.eve.capability_matrix.v1": "schemas/gamecult.eve.capability_matrix.v1.schema.json",
|
||||||
"gamecult.eve.command.v1": "schemas/gamecult.eve.command.v1.schema.json",
|
"gamecult.eve.command.v1": "schemas/gamecult.eve.command.v1.schema.json",
|
||||||
"gamecult.eve.command_receipt.v1": "schemas/gamecult.eve.command_receipt.v1.schema.json",
|
"gamecult.eve.command_receipt.v1": "schemas/gamecult.eve.command_receipt.v1.schema.json",
|
||||||
"gamecult.eve.plugin.v1": "schemas/gamecult.eve.plugin.v1.schema.json",
|
"gamecult.eve.plugin.v1": "schemas/gamecult.eve.plugin.v1.schema.json",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue