DPML
Version Builds
HomeUtilitiesStationMetro
Versioned Builds
Tutorial Objective

The default version assigned to build artifacts is the constant string SNAPSHOT. The purpose of this tutorial is to present the mechanisms available to control default version identifiers and the techniques used in decimal versioning.

Version Generation Styles
snapshot Assignes an opaque version identifier equal to the the constant string SNAPSHOT (e.g. acme-clock-SNAPSHOT). This is the default system behaviour unless modified by a command line option of project property.
opaque Assignes an opaque version identifier equal to argument supplied in conjunction with the -version build command-line option. For example the result of declaring the string DEMO3 as the argument to -version would be acme-clock-DEMO3.
decimal Assignes an decimal version identifier composed of a sequence of [major].[minor].[micro] integer values where each value is resolved from the respective project.major.version, project.minor.version, and project.micor.version properties. For example the result of declaring 2, 1, and 0 as the respective values of the major, minor and micro project properties in conjunction with the -decimal command line option would be acme-clock-2.1.0.
mixed Assignes an decimal version identifier as a prefix followed by the "-" character and an opaque identifier. For example the result of declaring major, minor and micro properties of 2, 1, and 0 in a project defintion in conjunction with the -decimal command line option and a -version option argument of RC1 would be acme-clock-2.1.0-RC1.
Summary

Using any variation of the opaque or decimal version strategies presented above results in the generation of artifacts with qualtified identities. While Depot does not ensure that these identities are unique - developers can leverage the build -l -consumers option in order to establish the implications of changes on consumer projects. Based on this information, micro, minor and major version values can be managed (although it is recognized that the overall management of historical published versions versus current build version information is an topic that could result in new management tools).