Release Numbering Scheme


1. STABLE RELEASES

Invenio stable releases use the classical major.minor.patchlevel
release version numbering scheme that is commonly used in the
GNU/Linux world and elsewhere.  Each release is labelled by

     major.minor.patchlevel

release version number.  For example, a release version 4.0.1 means:

       4 - 4th major version, i.e. the whole system has been already
           4th times either fully rewritten or at least in its very
           essential components.  The upgrade from one major version
           to another may be rather hard, may require new prerequisite
           technologies, full data dump, reload and reindexing, as
           well as other major configuration adapatations, possibly
           with an important manual intervention.

       0 - 0th minor version, i.e. the first minor release of the 4th
           major rewrite.  (Increments go usually 4.1, 4.2, ... 4.9,
           4.10, 4.11, 4.12, ... until some important rewrite is done,
           e.g. the database philosophy dramatically changes, leading
           to a non-trivial upgrade, and then we have either higher
           4.x in the series or directly 5.0.0.)  The upgrade from one
           minor version to another may be laborious but is relatively
           painless, in that some table changes and data manipulations
           may be necessary but they are somewhat smaller in nature,
           easier to grasp, and possibly done by a fully automated
           script.

       1 - 1st patch level release to 4.0 series, fixing bugs in 4.0.0
           but not adding any substantially new functionality.  That
           is, the only new functionality that is added is that of a
           bug fix nature.  The upgrade from one patch level to
           another is usually very straightforward.

           (Packages often seem to break this last rule, e.g. Linux
           kernel adopting new important functionality (such as
           ReiserFS) within the stable 2.4.x branch.  It can be easily
           seen that it is somewhat subjective to judge what is
           qualitatively more like a minor new functionality and what
           is more like a patch to the existing behaviour.  We have
           tried to distinguish this with respect to whether the table
           structure and/or the technology change require small or
           large upgrade jobs and eventual manual efforts.)

So, if we have a version 4.3.0, a bug fix would mean to release 4.3.1,
some minor new functionality and upgrade would mean to release 4.4.0,
some important database structure rewrite or an imaginary exchange of
Python for Common Lisp would mean to release 5.0.0, etc.

2. DEVELOPMENT RELEASES

The Invenio development releases as well as CVS snapshot tarballs
that are labelled by:

     major.minor.patchlevel.YYYYMMDD

where YYYYMMDD is the date when the development release or the CVS
snapshot tarball was produced.  These releases are not officially
supported and they can change dramatically from one YYYYMMDD to
another.  You can test them, but do not rely on them in production
environment unless you know what you are doing.

- end of file -