The version number consists of MAJOR.MINOR.PATCH.
- MAJOR is incremented whenever the fuck I want. Resets MINOR to 0.
- MINOR is incremented when backwards-incompatible changes are made. Resets PATCH to 0.
- PATCH is incremented when backwards-compatible changes are made, such as bug fixes or new features.
Legacy tends to prevent you from writing the best code possible. Being compatible with previous versions is therefore of low priority.