

0 / 2 embers
0 / 3000 xp
click for more info
Complete a lesson to start your streak
click for more info
Difficulty: 4
click for more info
Not enough gems
Cost: 6 gems
1: Tags
incomplete
2: Semver
incomplete
3: Conventional Tags
incomplete
This lesson's interactive features are locked, please to keep using them
It's kinda weird to just name tags any old thing. We're developers, we like structure, sameness, and sometimes even bike-shedding.
"Semver", or "Semantic Versioning", is a naming convention for versioning software. You've probably seen it around, it looks like this:
The "v" isn't technically part of "semver", but it's often there to say "this is a version".
It has two primary purposes:
To give us a standard convention for versioning software
To help us understand the impact of a version change and if it's safe (how hard it will be) to upgrade to
Each part is a number that starts at 0 and increments upward forever. The rules are simple:
MAJOR increments when we make "breaking" changes (this is typically a big release, for example, Python 2 -> Python 3)
MINOR increments when we add new features in a backward-compatible manner
PATCH increments when we make backward-compatible bug fixes
To sort them from highest to lowest, you first compare the major versions, then the minor versions, and finally the patch versions. For example, a major version of 2 is always greater than a major version of 1, regardless of the minor and patch versions.
As a special case, major version 0 is typically considered to be pre-release software and thus the rules are more relaxed.