How versioning works
Semantic Versioning x.y.z: x is the platform phase, y the subphase advanced by service releases, z fixes and documentation.
Think releases are numbered with Semantic Versioning — three numbers, x.y.z, and nothing else. No -rc, no -beta, no build metadata.
What is unusual is what each number means here. Think is a platform of many services rather than a single application, so the usual "breaking / feature / fix" reading does not fit. This is the mapping we use instead.
What each number means
Part | Name | Moves when… |
|---|---|---|
x | Phase | The platform enters a new phase — a deliberate, planned shift |
y | Subphase | A new application or service is released, or one gets a major update |
z | Patch | Documentation, fixes, retrofits, and minor application updates |
x — Phase
The major number is a phase, not a breaking change. It moves when the platform itself moves: a new era of what Think is doing, planned rather than accumulated.
Phases are rare by design. Most of what you see in the changelog will never touch this number.
y — Subphase
The minor number is the subphase, and it advances when a service is released or majorly updated. Those are the same event: shipping a service is what moves the platform to its next subphase.
That covers:
- A new application or service goes live — something exists that did not before
- An existing application gets a major update — a large upstream version jump, a migration to a different application, or a change big enough that the service behaves differently
Replacing ThinkBugs with ThinkFeedback advanced the subphase: same purpose, different application, visibly different service.
z — Patch
The patch number carries everything else, and most of the traffic:
- Documentation — new or rewritten wiki and Help Center pages
- Fixes — bugs resolved
- Retrofits — bringing an existing service in line with current standards
- Minor application updates — routine version bumps nobody would notice
Reading a version
At the time of writing the platform is in phase 5, subphase 1.
Version | Means |
|---|---|
| Phase 5, subphase 1, no patches yet |
| Seven patch releases since — documentation, fixes, retrofits |
| A service was released or majorly updated; subphase advances |
| The platform entered a new phase |
The numbers only ever go up, and they never reset — 6.0.0 follows 5.9.14 rather than starting again. Patch resets to zero when the subphase advances; subphase resets to zero when the phase advances.
What this is not
- No pre-release suffixes. Nothing ships as
5.2.0-rc.1. Lifecycle stage — Alpha, Beta, Production — is tracked per service on the lifecycle page, never in the version string. - Not a version of any single application. A Think version numbers the platform. The version of the application behind a service is a separate thing you rarely need.
- Not tied to a schedule. Versions are assigned to releases as they happen, not on a cadence.
Was this helpful?
Your feedback shapes what we write next.
