Antmod distinguishes two levels of versioning:
See the Versioning Concepts reference for more information.
Releases are versioned using correct filenames for release descriptors, along with the CVS or Subversion revision of that release descriptor file.
You are advised to use three digits for the filename, for example "somerelease/2.1.3.xml":
Whenever a release is packaged, the name of the release package (in case of .tar.gz) will be:
somerelease-2.1.3-r326.tar.gz
This package name includes (1) the release name, (2) the release version, and (3) the revision of the release descriptor in the SCM Repository. The SCM revision is made available by Antmod using the property ${antmod.release.scm.revision}, which can be used in any part of your own Ant buildfiles as well (if using buildtype "java"). Including the SCM revision allows you to change the same release descriptor - being the same release version - and still uniquely identify the contents of the release by being able to retrieve the exact SCM revision of the release descriptor file at a later point in time.
In Antmod, modules are versioned using SCM revisions. There are two kinds of SCM revisions: (1) tags, and (2) branches. Depending on the SCM provider being used, these result in the proper tag or branch mechanism; read more in Repository Providers.
In Antmod the conventions for tags and branches are:
If a 2-digit branch is checked out, the developer can still make changes and affect everyone else referring to that 2-digit number. Consequence: a 2-digit version can still change.
If a 3-digit tag is checked out, the developer cannot make changes in that version. In that case, the developer has to refert to the HEAD of that branch (using the 'startwork' command), make changes there, and promote the version. After that, the release manager can incorporate the new 3-digit tag in the release descriptor.