TorbatYar/docs/reference/registry-versioning.md
2026-07-28 20:39:10 +03:30

1.8 KiB

Registry Versioning Contracts

Version contracts only. Applies across Commercial Foundation registries.
Contract version: registry-versioning.v1


1. Purpose

All commercial registries support explicit versions so catalogs can evolve without breaking historical subscriptions, installs, or policy decisions.


2. Versioned kinds

Registry object Version field Notes
Products version_code on PlatformProductVersion
Bundles version_code on BusinessBundleVersion
Capabilities optional version_code on CapabilityDefinition Additive
Extensions optional version_code Additive
Assets version_code + AssetVersion records
Automation Packs version_code
Policies version_code on PolicyDefinition
Metadata version_code on MetadataBag

3. RegistryVersionRecord (logical)

Field Type Meaning
registry_object_id uuid Version record id
parent_id uuid Versioned object id
parent_kind string product/bundle/asset/…
version_code string Opaque commercial version string
changelog string?
status enum draft | published | deprecated | retired
effective_from / effective_to datetime?
supersedes_version_code string?
content_snapshot_ref string? Opaque
ext object

4. Rules

  1. Publishing a new version MUST NOT rewrite historical binding snapshots (future engines pin versions at subscribe/install time).
  2. version_code is an open string (e.g. 2026.07.1, semver-like) — not a forced semver parser in contracts.
  3. Deprecation of a version is independent of parent object lifecycle.
  4. Unlimited versions per object — architecture unchanged.