Version Converter (Buckminster)
< To: Buckminster Project
A Version Converter is responsible for (bidirectional) tranlation between a plain version (such as "4.5.0" or "titanic-27b") and a version selector such as "main/4.5.0" (which can be based on branchname, tag, changenumber, or timestamp).
|branch||creates a version selector referencing the latest version on a branch named from the plain version, i.e. "3.1.0" will be translated into "3.1.0/LATEST"|
|tag||creates a version selector referencing the plain version as a tag on the default branch. i.e. "3.1.0" will be translated into "main/3.1.0". With the tag converter it is possible to use a change number or timestamp instead of the tag.|
Regular expressions can be used when more complicated mappings are desired such as "3.1.0" into "main/v3_1_0-xyz" for a tag converter, or "3.1.0" into "three_one_zero/LATEST" for a branch converter. It is required that the mapping can be reversed without loss of information.
Version Converter and Component Reader
The versions designated by a component request are always converted to version selectors before they are passed to a component reader. A component reader will only understand version selectors.
Reader Specific Functionatlity
A reader defines a default branch - e.g. for CVS that will be "head", for SVN it will probably be "trunk", ClearCase will use "main", etc.
A component reader that connects to an non versioned artifact will only understand the notation <default branch>/LATEST. A reader that cannot combine branch with tag (such as Subversion) will use <default branch>/<tag> to denote a tag and <branch>/LATEST to denote a branch (those notations are the most common even when branches and tags indeed can be combined).
You will need to check the documentation for the reader you are using to be sure you understand how it works.
Extending Verison Converter
New version converters can be added using the Buckminster Extension Point org.eclipse.buckminster.core.versionConverters.