The contract maintains internal version metadata (storage_version, result_schema_version, protocol version) and emits a release-hash artefact on v* tags, but there is no top-level document explaining when any of those versions changes, what triggers a breaking release versus an additive one, or what STORAGE_VERSION, RESULT_SCHEMA_VERSION, and PROTOCOL_VERSION mean relative to each other. Author docs/VERSIONING.md describing: (a) the three version axes and which contract APIs they affect, (b) the rules for bumping each one (e.g. STORAGE_VERSION increments only on breaking state changes; PROTOCOL_VERSION increments only on breaking cross-contract interfaces), and (c) the migration contract that consumers can rely on. Link the new file from README.md and CHANGELOG.md.
The contract maintains internal version metadata (
storage_version,result_schema_version, protocol version) and emits a release-hash artefact onv*tags, but there is no top-level document explaining when any of those versions changes, what triggers a breaking release versus an additive one, or whatSTORAGE_VERSION,RESULT_SCHEMA_VERSION, andPROTOCOL_VERSIONmean relative to each other. Authordocs/VERSIONING.mddescribing: (a) the three version axes and which contract APIs they affect, (b) the rules for bumping each one (e.g.STORAGE_VERSIONincrements only on breaking state changes;PROTOCOL_VERSIONincrements only on breaking cross-contract interfaces), and (c) the migration contract that consumers can rely on. Link the new file fromREADME.mdandCHANGELOG.md.