> In short, a supporting component must always be strictly cooler than anything > it supports, or be at absolute zero conjointly with anything it supports. > Absolute zero means that a program is **frozen**, no further updates are > possible. If your versions don't track your > actual progress, you run out of integers. > > *. A's version **SHALL** be a nonnegative integer. > *. A, at any specific version, **MUST NOT** be modified after release. > *. At version 0, new versions of A **MUST NOT** be released. > *. New releases of A **MUST** be assigned a new version, and this version **MUST** be strictly less than the previous one. > *. If A supports another component B that also follows kelvin versioning, then: > ** Either both A and B **MUST** be at version 0, or B's version **MUST** be > strictly greater than A's version. > ** If a new version of A is released and that version supports B, then a new > version of B **MUST** be released.