feat(formatters): add semver-based output format versioning
Relates to #271, #243 (closed)
Related: !904, !503 (merged), !505 (merged), !704 (merged)
Summary
Adds semver-based versioning to query output formats so consumers can detect breaking changes.
config/RAW_OUTPUT_FORMAT_VERSION
"1.0.0"
|
+------------+------------+
| |
ResultFormatter CI enforcement
format_name() -> "raw" check-response-schema-
format_version() -> 1.0.0 version.sh
|
+---------+---------+
| |
JSON response QueryMetadata
{ format_version: { format_version: "1.0.0",
"1.0.0", ... } format_name: "raw" }ResultFormattertrait gainsformat_name()andformat_version()backed bysemver::VersionGraphResponseincludesformat_versionas first field in every JSON response- Proto
QueryMetadatacarriesformat_version+format_namefor transport-level consumers query_response.jsonschema updated with$idand requiredformat_versionfield- CI job + lefthook hook enforce version bumps when formatter code changes
- GOON format versioning deferred to the GOON encoding MR (!904 / ADR 009)
Edited by Michael Angelo Rivera