Development guide

Version numbering

Tools

SDF3 releases are assigned a version number based on the date at which the release is created. The version format is as follows: YY.MM. So, a release created on March 7th, 2011 will have version number 11.03.
The version number of the SDF3 release is stored inside the file 'version.h' which is located in the project root directory. It is not allowed to embed or hard-code the version number in any other location inside the source code.
All executables must report a version number when the '-v' or '--version' command line switch is supplied.

The tooling is assigned a version number based on the year and month of the release. This makes it easy to identify the date at which the release was produced. Moreover, this scheme will also make it easy to assess whether a particular function is embedded inside the tool. In general, algorithms will be present in any release after the corresponding technique has been published. Finally, a date-based version numbering scheme avoids the need for defining complex rules on when a major or minor version number needs to be increased.

File format

The top-level element in the SDF3 file format must have an attribute "version". The value of this attribute indicates the version number of the file format. The version number consists of a major version number and a minor version number separated through a colon ('.').
An increment in the minor version number is made when a change in made in the file format which does not affect the backward compatibility of the format.
An increment in the major version number is made when a change in made in the file format which does affect the backward compatibility of the format.

The file format will remain compatible accross all minor versions within a particular major version. This enforces backward compatibility within the evolving file format. This should provide users with the required flexibility to extend the file format for their own purpose.

The SDF3 tool release will be compatible with the latest file format. As soon as the major version number is increased, all previous file formats will reach their end-of-file.

This rule allows developers to use relatively simple XML parsers and data structures without having to consider many different file formats. Having a simple file format and data structures is essential for quickly developing new research ideas.