How versioning works
Versions are x.y.z.w: phase, subphase, release and change.
Think releases are numbered x.y.z.w — four numbers, no suffixes. No -rc, no -beta, no build metadata.
Four rather than the usual three, because Think is a platform of many services rather than a single application. Three numbers could not separate what the platform is doing from what actually shipped.
The four parts
Part | Name | Moves when… | Verbs |
|---|---|---|---|
x | Phase | The platform enters a new phase |
|
y | Subphase | A new subphase begins inside that phase |
|
z | Release | Something that did not exist before goes live |
|
w | Change | Anything else ships |
|
y resets z and w. z does not reset w.
x — Phase
A phase is a deliberate, planned shift in what Think is doing — a new era, not an accumulation. Phases are rare by design, and most releases never touch this number.
y — Subphase
A phase is delivered through subphases: named workstreams with their own scope. Phase 6 runs automated delivery, a GitOps retrofit, an infrastructure audit and a secret management rollout as separate subphases.
Subphases are visible on the Roadmap, where you can see which is current, which are finished and which are queued.
z — Release
The release number counts things that did not exist before:
- A new service or application going live
- A service migrated onto a different application or platform
- A service retired — removal changes what is available just as arrival does
- A body of content users can consume: games, roms, films, quizzes
Internal components count too. Deploying CrowdSec, Elasticsearch or a secondary DNS is a release even though no one browses to it.
w — Change
The change number counts work on what already exists:
- Upgraded — a version bump, no behaviour change expected
- Fixed — a defect corrected, including failed hardware
- Retrofitted — an existing service brought in line with current standards
- Documentation of — a wiki or Help Centre page
- In progress — work started but not yet shipped
w does not reset when z moves. Both count from the start of the subphase, so a release and a change can advance in the same entry without either resetting the other.
Reading a version
6.3.14.26 means: phase 6, subphase 3, 14 releases and 26 further changes since that subphase began.
Version | Means |
|---|---|
| Phase 5, subphase 1 — a long stretch, 54 releases deep |
| Subphase 6.2 begins; 5 releases and 23 changes in it |
| Subphase 6.3 begins; counts restart |
| Eight more releases and 26 changes later |
Numbers only ever go up within their scope, and they never reset backwards. You will see gaps: a subphase that is deferred and ships nothing never appears in a version.
What this is not
- No pre-release suffixes. Nothing ships as
6.3.14.26-rc.1. Lifecycle stage — Alpha, Beta, Production — is tracked per service on the lifecycle page, never in the version. - Not a version of any single application. A Think version numbers the platform, not the software behind a service.
- Not tied to a schedule. Versions are assigned as work ships, not on a cadence.
- Not Semantic Versioning. SemVer has three parts with different meanings. This borrows the dotted shape and nothing else.
Was this helpful?
Your feedback shapes what we write next.
