Skip to content

semver-discipline

Universal Tester tracks three independent SemVer streams and they must never be conflated or merged into one number.

Version Source of truth Bumps on
Cow Tester production software host-api/examples/cow-board-test.pyCOW_TESTER_VERSION any production behavior change
UT002 firmware universal-tester-002-firmware/firmware_version.h (+ CHANGELOG) any firmware/protocol/behavior change
Fixture profile that fixture's ProductionFixtureProfile fixture workflow, limits, identity, contract

PATCH = fix/refactor/logging. MINOR = new test, instrument, printer, measurement, report, workflow, config field. MAJOR = incompatible workflow, data/schema contract, hardware contract, serial-number rule, or safety policy.

Never decrement or reuse a released version. When it's ambiguous, take the larger increment — the cost of an over-bump is nothing, the cost of two different builds claiming the same version in an append-only production log is an unresolvable audit.

Every test result and equipment-usage summary records all three.

See universal-tester.