Skip to content

Versioning, git and releases

Rishabh Poddar edited this page Sep 27, 2020 · 4 revisions

The following information applies to all the repositories of SuperTokens.

Versioning

All versions are in the X.Y.Z format:

  • Z changes: These are non-breaking changes. Usually, this means any changes that are not related to the API, configs, or anything that is user-facing.
  • Y changes: These are breaking changes, or if there is a change to any of the interfaces (FDI, CDI, plugin interface) associated with the repo
  • X changes: These are any major changes. Examples are a complete API rewrite, addition of a significant module (adding the feature of login / sign up from scratch).

From the user's point of view, all that matters is the X.Y version, since Z increments are completely non-breaking.

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.
Clone this wiki locally