Changes

Jump to navigation Jump to search
Line 124: Line 124:  
== Versioning scheme ==
 
== Versioning scheme ==
   −
Except [[Documentation Team/Services/Native packages usage|wrappers]] for native packages(in that case, service version is version of particular native package), services use followed scheme:
+
There could be two different versioning scheme for services.
   −
<compatibility-version>.<version>-<revision>
+
=== Upstream versions ===
   −
* the major version, ''compatibility-version'' service.info field<br>exposes the fact of API/ABI/data-format backward compatibility breakage<br>only digits are allowed
+
If service is just a wrapper around existed project with its own versioning scheme then there is even no need in any mentioning of versions in service.info file. Particular version will be chosen on every ''0sugar dist*'' command invoking or will be fetched from native packaging systems(if service doesn't provide binaries and [[Documentation Team/Services/Native packages usage|only]] contains information about already well packaged in various GNU/Linux distributions).
* the minor version, ''version'' service.info field<br>reflect on adding new features that don't break backward compatibility<br>only digits are allowed
  −
* the micro version is a revision number<br>auto incremented number
     −
Micro version is beeing changed by ''0sugar push'' command. It has through numbers(like Subversion revision).
+
=== Native versions ===
   −
Commands ''dist'' and ''dist-bin'' rewrite releases with the same ''compatibility-version.version'' versions and don't remove other releases.
+
The rest of services will use scheme:
   −
'''NOTE''': Be careful, some services and activities could be stuck to particular ''compatibility-version.version'' versions of your service, so do not delete stable releases manually from ''dist/*.xml'' feed files and [[#Bugfix_releases|mark]] them as [[#Stability_status|buggy/insecure]] if they don't work in declared sugar environments.
+
<version>-<revision>
 +
 
 +
* <version> is a ''version'' field from service.info file
 +
* <revision> is an auto incremented number which is beeing changed by ''0sugar push'' command (like Subversion revision)
 +
 
 +
Commands ''dist'' and ''dist_bin'' rewrite releases with the same ''version'' versions and don't remove other releases.
 +
 
 +
[[#Library_section|Libraries]] have also ''age'' parameter which is [http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html#Libtool-versioning libtool] like age version part. ''age'' won't be exposed in version string but will be present in feed files and 0sugar will check it while deciding what dependency version should be chosen.
    
== Stability status ==
 
== Stability status ==

Navigation menu