> For the complete documentation index, see [llms.txt](https://kdongs.gitbook.io/kdocs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kdongs.gitbook.io/kdocs/semver/about.md).

# About

## About

Semantic Versioning uses a versioning numbering system of:

{% hint style="info" %}
The `v` prefix is optional but conventionally used.
{% endhint %}

`v<MAJOR>.<MINOR>.<PATCH>`

`<MAJOR>.<MINOR>.<PATCH>`

### `Major`

Is the version number for major releases, meaning updates that are incompatible with previous versions.

{% hint style="warning" %}
Incompatibility means that usability is different from what it was expected since previous versions.
{% endhint %}

Usually this will include removal of functionality or changes that break compatibility.

#### Version 0

In the beginning of a project where the application is **unstable or too susceptible to changes**, it is common to start in a Major version of 0.

`0.0.0`

After multiple Minor updates, when the software is supposed to be stable or ready, it's Major version is then changed to `1.0.0`.

### `Minor`

Are updates or releases that keeps compatibility with previous versions.

Minor releases includes added functionalities, or changes that doesn't break compatibility.

### `Patch`

Will be updates that correct bugs or fixes broken functionalities.

## Pre-releases

When looking at stability over changes and compatibility breaks.

`1.0.0-alpha` < `1.0.0-beta` < `1.0.0`

This means that Alpha is less stable than Beta which is less stable than a normal Release.

### Alpha

It is the most unstable pre-release versions.

Alpha versions can increase like:

`1.0.0-alpha`

`1.0.0-alpha.1`

`1.0.0-alpha.2`

### Beta

It is more stable than Alpha, but less stable than a regular Release.

Beta versions can increase like:

`1.0.0-beta`

`1.0.0-beta.1`

`1.0.0-beta.2`
