2205.

kelvin versioning

wiki.xxiivv.com/site/kelvin_versioning.html

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.

  1. A's version SHALL be a nonnegative integer.

  2. A, at any specific version, MUST NOT be modified after release.

  3. At version 0, new versions of A MUST NOT be released.

  4. New releases of A MUST be assigned a new version, and this version MUST be strictly less than the previous one.

  5. 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.