devel-versioning.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Fri, 19 Aug 2011 00:52:30 +0300
changeset 949 57b995de80b5
parent 948 23cb71bb2b5d
child 950 06221010c81d
permissions -rw-r--r--
Compatibility formula.

=================
 Version format.
=================
.. contents::

Release build version data.
===========================

 * Build number.
 * Build date.
 * Build version.
 * Branch-tag used.
 * Overnight build (Y/N).
 * QA tested (Y/N).
 * QA test results (Pass/Fail).
 * Location of full logs.

Order formula.
==============

if (A.major != B.major) return A.major > B.major;
if (A.minor != B.minor) return A.minor > B.minor;
if (A.patch != B.patch) return A.patch > B.patch;
if (A.special == B.special) return 0;
if (A.special == "") return 1;
if (B.special == "") return -1;
return A.special > B.special;

**NOTE** Accoding to this definition 1.0.1rc1 < 1.0.1rc10 < 1.0.1rc2 which is
non meaningful.

Compatibility formula.
======================

Assume that app linked with new version of lib. Thus

is_compatible_with_old(old, new) {
  if (old.major != new.major) return 0;
  if (old.minor > new.minor) return 0;
  return 1;
}

Assume that app linked with old version of lib. Thus

is_compatible_with_new(old, new) {
  if (old.major != new.major) return 0;
  return 1;
}

Reference.
==========

  https://developer.mozilla.org/en/toolkit_version_format
                Toolkit version format
  http://apr.apache.org/versioning.html
                APR's Version Numbering
  http://semver.org/
                Semantic Versioning