Versioning#
- Author:
Oskar Meler
- Date:
19-05-2026
- Revision:
2
Versioning Scheme#
All BigOS version numbers follow the generation.feature.patch format.
Generation#
Incremented when breaking changes are made to existing interfaces or formats. A change in Generation indicates backward-incompatible modifications.
Feature#
Incremented when new functionality is added in a backward-compatible manner. Feature updates do not break compatibility with older versions within the same Generation.
Patch#
Incremented for bug fixes, internal improvements, and other non-breaking changes that do not affect interface behavior or compatibility.
Data Format vs Software Version#
BigOS distinguishes between:
- Client version
The version of the running BigOS implementation (the consumer).
- Interface version
The version of the interface contract being consumed.
The compatibility rules define whether a given client version can correctly interact with a given interface version.
Compatibility Rule#
A client version C is compatible with an interface version I if and only if the following conditions are met:
C.generation == I.generation
C.feature ≥ I.feature
Patch versions do not affect compatibility.
Version Limits#
Version components are constrained as follows:
Generation ≤ 65535
Feature ≤ 65535
Patch ≤ 65535
Implementation Notes#
stdbigos provides a utility library for working with version values.