# Versioning

> A mechanism that labels each release of an interface or schema, so consumers can tell compatible changes from breaking ones.

Record: `architecture:versioning`
Kind: mechanism
Layer: [Contracts Core](https://banes-lab.com/records/layer/contracts-core.md)
Severity: mandatory
Scope: API, schema, package, service
Canonical: https://banes-lab.com/ontology#architecture-versioning

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Forward Compatibility](https://banes-lab.com/records/architecture/forward-compatibility.md) and before [Protocol Compatibility](https://banes-lab.com/records/architecture/protocol-compatibility.md).

## Repair

- Refactored by: Add Semantic Versioning, Add API Version
- Detected by: incompatible diff without version bump
- Violated by: unversioned breaking changes
- Measured by: version compliance, deprecation window
- Enforced by: release gates, API checks

## Requires

- [Stable Interfaces](https://banes-lab.com/records/architecture/stable-interfaces.md)
- [Compatibility Policy](https://banes-lab.com/records/lexicon/compatibility-policy.md)

## Reinforces

- [Backward Compatibility](https://banes-lab.com/records/architecture/backward-compatibility.md)
- [Governance](https://banes-lab.com/records/architecture/governance.md)

## Enables

- [Controlled Evolution](https://banes-lab.com/records/lexicon/controlled-evolution.md)

## Conflicts with

- [Silent Breaking Changes](https://banes-lab.com/records/lexicon/silent-breaking-changes.md)

## In tension with

- [Version Sprawl](https://banes-lab.com/records/lexicon/version-sprawl.md)

## Tensions

- [Versioning / Version Sprawl](https://banes-lab.com/records/tension/version-sprawl-versioning.md)

## Contracts

- [Versioned Evolution Over Breaking Change](https://banes-lab.com/records/algorithms/no-breaking-change.md)
- [Living Profile Kernel](https://banes-lab.com/records/algorithms/living-profile-kernel.md)

## Severity

- [mandatory](https://banes-lab.com/records/vocabulary/severity-mandatory.md)

## Category

- [Contracts / Interfaces / Compatibility](https://banes-lab.com/records/architecture-category/contracts-interfaces-compatibility.md)

## Required by

- [API Contract](https://banes-lab.com/records/architecture/api-contract.md)
- [Protocol Compatibility](https://banes-lab.com/records/architecture/protocol-compatibility.md)
- [Integration Events](https://banes-lab.com/records/architecture/integration-events.md)

## Linked from

- [Seven controls, seven classes](https://banes-lab.com/software-architecture/decay/seven-controls-seven-classes.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Event / Messaging / Asynchronous Architecture](https://banes-lab.com/ontology/principles/architecture-category-event-messaging-asynchronous-architecture.md)
- [Security / Privacy / Compliance / Governance](https://banes-lab.com/ontology/principles/architecture-category-security-privacy-compliance-governance.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/lexicon/lexicon-category-contracts-interfaces-compatibility.md)
- [Core Vocabulary](https://banes-lab.com/ontology/lexicon/lexicon-category-core-vocabulary.md)
- [Architectural Rules](https://banes-lab.com/ontology/algorithms/algorithms-domain-architectural-rules.md)
- [Living profile](https://banes-lab.com/ontology/algorithms/algorithms-domain-living-profile.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
