RFC:Versioning

From Valkyrien Skies Wiki


This RFC is a work in progress and is not finalized. Use the Discussion tab to discuss it with other users. [Help?]

Summary

Establish a consistent set of rules for release versions.

Motivation

Valkyrien Skies releases are currently confusing and inconsistent, ranging from 0.8.7 to 0.9.5_universal to 0.9_pre_6. This is confusing for newcomers and makes releases hard to follow.

Detailed Design

Valkyrien Skies should follow a modified Semantic Versioning. Versions can be of the form

MAJOR-MINOR-PATCH-[alpha|beta|rc(ITERATION)]

Major, minor, and patch versions can be incremented independently of each other at any time, (hence collectively referred to as the "release version"). However, if an alpha/beta/release-candidate is released for a "release version", that release version may not be downgraded (e.g., once an beta is released for a "release version", then more alphas may not be released).

Observe the example order of versions below

  • 0.9.0-alpha1
  • 0.9.1-alpha1
  • 0.9.1-alpha2
  • 0.9.1-beta1 <-- upgraded from alpha to beta
  • 0.9.1-beta2
  • 0.9.1-rc1 <-- upgraded from beta to release-candidate
  • 0.9.1 <-- upgraded from release-candidate to stable
  • 1.0.0-alpha1
  • 1.0.0 <-- upgraded from alpha to version
  • 0.10.0 <-- (older versions can still be updated)
  • 0.9.2 <-- (older versions can still be updated)
  • 0.9.1-beta3 <-- (this is illegal! you can't downgrade a release)

Drawbacks

None right now

Alternatives

None right now

Unresolved Questions

None right now