Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Current »

We use Semantic Versioning for our projects. This wiki page documents some additional conventions that we follow where there are complicating issues.

We will use the Semantic Versioning recommendations for alpha or maintenance releases, but that's not what's covered here. The conventions expressed in this document are for situations not covered in that guide.

Forks

When we have a project that we need to fork, where we want to make changes on the fork, but have our version numbers follow along with the origin's version numbers, we will use this convention:

X.Y.Z~<project>x.y.z

Example, where the "platform" project is forked off into a "platform-cqa" repository to maintain an alternate feature set that we don't want to deploy with the main application:

3.1.0~cqa1.0.0

In that case, if we make more changes based on that release, we might increment our version to 3.1.0~cqa1.1.0. If there's a new release of "platform" as 3.1.1, then our next version would be 3.1.1~cqa1.0.0, and so on.

The tilde character should not be processed by SemVer-aware tools as a metadata separator ("+") or a pre-release separator("-"). The part after the tilde should not be thrown away as would happen with build metadata, and should sortĀ higher than the base version rather than lower.

More examples:

  • 3.1.0-a1 < 3.1.0
  • but 3.1.0 < 3.1.0~cqa1.0.0
  • and 3.1.0~cqa1.0.0 < 3.1.0~cqa1.0.1

See theĀ SemVer sort order section.




  • No labels