# Using Version Qualifiers

Eclipse bundles and features have version numbers of the form major.minor.micro.qualifier. The qualifier segment of the version is often used to indicated a specific build. If you set your feature or plug-in version qualifier to "`qualifier`" (ie a version of `1.0.0.qualifier`), then PDE build will automatically replace the word "qualifier" with a generated qualifier.

## Controlling the Generated Qualifier

The value of the generated qualifier is determined by the first of the following items that apply:

1. If the property `forceContextQualifier` is set in your build configuration build.properties file, then the value of this property is used as the qualifier. This property can also be set on the command line with -D when invoking ant.
2. If you are using map files to fetch your bundles from a repository, then the tag that was used to fetch the bundle will be used as the qualifier.
3. If neither forceContextQualifier nor map files are used, then the qualifier will be a time stamp in the form YYYYMMDDHHMM (ie 200605121600)

## Feature Version Suffixes

You can turn on the generation of qualifier suffixes for features by setting the property `generateFeatureVersionSuffix=true` in the build configuration build.properties file.
The idea of a version is that it should increment each time something changes, the version qualifier increments and captures changes from build to build. Features rarely change, however, they do contain plug-ins which may change often. When version suffixes are turned on, a feature version will have the form major.minor.micro.qualifier-suffix. The suffix is in effect the sum of the version qualifiers of all the features and plug-ins included by the feature. This means that when one of the included plug-ins increments its version, then the version of the feature will automatically increment as well. This is particularly useful when the feature is deployed via an update site.

## Final Versions

Occasionally there may be custom build steps that may require the actual final version used in the build. PDE Build will generate properties files containing the versions of the features and plug-ins that were built. These properties files can be loaded using the ant property task.

The files are named: finalPluginsVersions.properties, finalPluginsVersions.<config>.properties, finalFeaturesVersions.properties, and finalFeaturesVersions.<config>.properties. finalPluginsVersions.properties and finalFeaturesVersions.properties contain the versions for all of the plug-ins and features that were built. The <config> properties files contain the versions of plug-ins and features for specific build configurations.

The properties in these files have the form:

        <bundleSymbolicName> = <version>
        <bundleSymbolicName>_<first 3 segments of version> = <version>

If more than one versions of a plug-in or feature exists, then `<bundleSymbolicName>=<version>` refers to the plug-in or feature with the highest version.

Example:

        org.eclipse.pde.build = 3.3.0.v20070524
        org.eclipse.pde.build_3.3.0=3.3.0.v20070524
        org.eclipse.pde.build_3.2.1=3.2.1.r321_v20060823