Which Version of Version (Buckminster)
Many things are versioned, and there are many different concepts that include the word "version". Here we try to bring clarity to the various,,,eh - versions ;)
A plain version is a version string like "4.5.0" or "titanic-47b". It is parsed and understood by a Version Type.
A version selector is a more qualified reference to a version of a component state in a repository. It is something like "3.1.0/LATEST" or "main/3.1.0". The selector can refer to a state that can change over time, or to a fixed state (using a changenumber or a timestamp).
See Version Selector for more info.
A version designator is a reference to one or several plain versions. It uses OSGi notation to describe an inclusive or exclusive range. An example is [3.0.1, 4.5.0]. For more information see Version Designator. Note that even if the designator is based on OSGi syntax, the interpretation of the plain version strings in the range is performed by a Version Type.
A version type is a class that understands a plain version. It is capable of comparing plain versions of the same type and order them. Is "titanic-27" later than "AndreaDoria-42"? For more information see Version Type