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
|
||||
`--expect-capability-matrix`, so owner repos do not need to scrape the
|
||||
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
|
||||
than exporting Eve-local source paths only. The export carries handoff export
|
||||
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 `
|
||||
--expect-capability-matrix `
|
||||
--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.plugin_receipt.v1 `
|
||||
--expect-schema gamecult.eve.plugin_abi.request.v1 `
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ foreach ($contract in @(
|
|||
"gamecult.eve.command.v1",
|
||||
"gamecult.eve.command_receipt.v1",
|
||||
"gamecult.eve.conformance_export.v1",
|
||||
"gamecult.eve.capability_matrix.v1",
|
||||
"gamecult.eve.conformance_fixture.v1",
|
||||
"gamecult.eve.provider_scenario.v1",
|
||||
"gamecult.eve.plugin.v1",
|
||||
|
|
@ -112,6 +113,7 @@ if (Test-Path -LiteralPath (Join-Path $absoluteExportDirectory "index.json")) {
|
|||
}
|
||||
foreach ($schemaId in @(
|
||||
"gamecult.eve.conformance_export.v1",
|
||||
"gamecult.eve.capability_matrix.v1",
|
||||
"gamecult.eve.conformance_fixture.v1",
|
||||
"gamecult.eve.provider_scenario.v1",
|
||||
"gamecult.eve.provider_advertisement.v1",
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
"destinationOwner": "EveConformance",
|
||||
"currentPaths": [
|
||||
"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.provider_scenario.v1.schema.json",
|
||||
"schemas/gamecult.eve.provider_advertisement.v1.schema.json",
|
||||
|
|
@ -67,6 +68,7 @@
|
|||
"gamecult.eve.command.v1",
|
||||
"gamecult.eve.command_receipt.v1",
|
||||
"gamecult.eve.conformance_export.v1",
|
||||
"gamecult.eve.capability_matrix.v1",
|
||||
"gamecult.eve.conformance_fixture.v1",
|
||||
"gamecult.eve.provider_scenario.v1",
|
||||
"gamecult.eve.plugin.v1",
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
"schemas": {
|
||||
"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.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_receipt.v1": "schemas/gamecult.eve.command_receipt.v1.schema.json",
|
||||
"gamecult.eve.plugin.v1": "schemas/gamecult.eve.plugin.v1.schema.json",
|
||||
|
|
|
|||
Loading…
Reference in a new issue