devel-versioning.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sat, 17 Sep 2011 01:44:15 +0300
changeset 996 bc510bb02ba6
parent 950 06221010c81d
child 1003 4b8b3daac0db
permissions -rw-r--r--
.msc and .cpl run from command line.

=================
 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