Skip to content

Versioning, git and releases

Rishabh Poddar edited this page Jul 5, 2021 · 4 revisions

The following information applies to all the repositories of SuperTokens.

Versioning of this repo

We follow semantic versioning. All versions are in the X.Y.Z format (assuming X, Y, Z > 0):

  • Z changes: These are non-breaking, no new features changes.
  • Y changes: These are non-breaking, with new features.
  • X changes: These are breaking changes.

If X is 0, then Y is incremented for breaking changes, and Z for all other types of changes.

Git branches

Branches are in the format of X.Y. Each version of the repo is in its own branch. For example, version 1.0.0 and version 1.0.4 will be in the branch 1.0 - just different commits.

The master branch will have the latest released version of the repository.

Tags

There are two types of tags that are important:

  • dev-vX.Y.Z: This is a tag that signifies that the commit has been tested (though, it does not mean that the tests have all passed). The X.Y.Z in the tag corresponds exactly to the version of the commit. This tag can be removed and readded to retest.
  • vX.Y.Z: This is a tag that signifies that the commit has been released. This is only possible if the commit had a dev-vX.Y.Z tag and all tests had passed. Once released, this tag stays forever, and a corresponding dev-vX.Y.Z cannot be added again.