A Cobalt version consists of two components: The Release Number and the Build ID. Some real historical Cobalt version examples:
You get the idea. The number before the dot is the “Release Number.” The number after the dot is the “Build ID.”
A “Cobalt release” is an official, tested version of Cobalt that is intended to be deployable to production. The “Release Number” is a single counting number, starting at “1” for our first release, and increasing by one for every release thereafter. This number is checked into
src/cobalt/version.h, and represents coarse information about the state of the source tree when we decided to do a release.
It is important to note that there are no point releases, or major or minor releases. Each release gets its own unique counting number.
The Cobalt Build ID represents fine-grained information about the state of the source tree for a given build. An internal Cobalt build server generates a monotonically increasing number for each unique set of sources that it sees. When an open-source release is published, a
src/cobalt/build/build.id file is included that specifies the build ID of that source release. The Cobalt team can reproduce the exact sources for a given Build ID.
Note that since the Build ID always increases with time, it means that the latest version of an older Cobalt release can have a higher Build ID than the latest version of a new Cobalt release. An example from above: Cobalt
4.16134 was produced earlier than Cobalt
3.16138, thus has a lower Build ID.