Cobalt Versioning

A Cobalt version consists of two components: The Release Number and the Build ID. Some real historical Cobalt version examples:

  • 2.15147
  • 3.16138
  • 4.16134
  • 6.18971

You get the idea. The number before the dot is the “Release Number.” The number after the dot is the “Build ID.”

Release Number

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.

Build ID

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.

Other Reading