Back to:
Every Lynx program has a version number, which appears whenever the program is executed.
Programs require version numbers in order to track updates, modifications, improvements and bug fixes and to keep documentation, parameter definitions and parameter files synchronised as the program evolves.
Whenever the source code of a program is updated, a new version number, date, programmer initials and details of modifications must be entered in the comments header section at the top of the program. The standard format should be strictly adhered to, see below:
V1.00 01/08/95 XX Origin Date ........... V1.29 10/09/96 YY Added some other modifications...
The first V character should be separated from the comment symbol at the beginning of the line by one whitespace character. XX and YY represent the programmer's initials.
In the case of C programs, the V will be the fourth character on the line, eg
/* V1.00 .
In the case of Pascal or Fortran programs the V will be the third character, eg
{ V1.01
or
C V1.02
For BASIC programs it will be the fifth character, and so on, eg
REM V1.03
The date should be separated from the version number by one whitespace character and be in the form DD/MM/YY. The years 2000, 2001 etc. will be represented by 00, 01 etc.
The description of the modifications made should be separated from the data by at least one whitespace character. If the description extends over more than one line, the second and subsequent lines should be left justified to the align with the first line.
Each digit in the program version numbers has a specific function :
In this context, "digits" can be either alpha characters (A to F) or numeric characters. Within the program source itself, the version number should be coded as a manifest string literal constant, eg in Pascal:
ProgVersion = 'V4.12';
Procedure and function libraries, although not executable, should follow the same general documentation rules as for program source code and should have a source code version number. Changes (bug fixes) to any code in the library require the third digit to be updated. Changes in the specifications of argument lists, or to the results of any procedure or function require the second digit to be incremented. Major restructuring requires the first digit to be changed.
INI files have a version=version range string in the [lynx] section of the file. The version string contains a version number or range of version numbers for the corresponding program or library module which uses the INI file.
The version range string is in the form of a comma delimited list, in which the individual list items can be either single version numbers, eg V4.56, or version number ranges, eg V1.00-V2.05. For example the string
version=V1.05,V2.00-V2.30,V3.0
Means "V1.05 or V3.0 or any version number in the range V2.00 to V2.30".
Where Lynx Exploration Archivist programs have parameters, these will be defined in the program's INI file. The [lynx] section of the INI file contains a version key which defines the range of program version numbers for which the INI file is valid.
Parameter files are matched with the corresponding INI file, by comparing their version number against the version range in the INI file. If the program's parameter definition is changed in some way (so that the internal variables are no longer compatible with the INI file), and the INI file's version range is correctly specified, then old parameter files will not match.
Parameter files can be read and written by the parameter editor, without any knowledge of a corresponding program version number - the version written into the parameter file will then be the highest version number in the range in the INI version string.
Help documentation for individual programs will normally be named with the program executable file name plus the appropriate extension. Versions of 3S/LEA later than 3S20 should use HTML as the preferred format for manuals, although the format used is selectable at run time on an individual program basis.
Program help documentation version numbers should only show the first two digits of the program version number (e.g. V1.2), because minor modifications to programs requiring the third digit to change do not entail changes to the manual