Next Up Previous Contents
Next: 4.6 Cross-references
Up: 4 The structure of the document
Previous: 4.4 Documenting code
[ID index][Keyword index]

4.5 History

Includes change, distribution, docdate, history, update, version.

In a large document which will be revised in future, it is important to preserve some document history. This means that readers can check which version of a document they are reading, and find what parts of it have changed since the last version they are familiar with.

The history element, within in the docinfo element (see Section 4.1), records the history of the document. It is available in most of the Starlink DTDs, but not all, and when it is omitted, the docdate element is required instead.

The history of a document is composed of a sequence of versions, distributions and changes. A document has a version number of the form docnumber.docversion-distribution. The document number is the number declared in the docnumber element, as assigned by the Starlink librarian. The document version indicates which edit of the document this is - a significant update to the document should be marked by incrementing the document version number. The release information marks a more minor update to a document.

All dates within these elements have the format dd-mmm-yyyy, where dd indicates a two-digit day number, mmm a three-letter month name (such as jan, feb and so on, in any mixture of case), and yyyy a four-digit year number. Let's keep things Gregorian - no Julian, French-revolutionary or Mayan dates, if you would be so kind.

Each of the three elements has paragraph content, to record brief notes about the change or distribution.

A version of a document (marked by a version element in the history) is a significant release of a document, perhaps describing new functionality in a package. The number attribute gives the version number to be attached to the document.

A distribution of a document (marked by a distribution element in the history) is a less significant update to a document, perhaps for distribution to readers for comments. The string attribute is a label for the distribution, and could be something like `draft1' or `comments-13', or `DR-0.7-8'.

Other changes to the document are labelled by a change element. These record an edit of a document without a corresponding change to a version number.

The distribution and change elements have an optional versionid attribute. This allows you to specify a label for this edit. Any update elements elsewhere in the text must attach themselves to one of these elements, using the versionid attribute.

For example:

<author id=ng>Norman
<editors>
<author id=mb>Martin
...
<history>
<version author=ng date='02-MAR-1999' number=0>Initial version
<distribution author=ng date='03-MAR-1999' string='comm-0.1'>Released
  to programmers for comment.
<change author=ng date='04-MAR-1999' versionid=post-0.1>Various tidyings
<version author=mb date='05-MAR-1999' number=1>First public release
...
<p><update versionid=post-0.1>Corrected typos and reexpressed
argument</update>In this section....
Presumably, the `comm-0.1' release of the document elicited some comments, and the resulting changes have been logged by the change element immediately following it. Any (optional) update elements scattered throughout the document (they can be children of the list structures, figures, tables, paragraphs, and the document body itself) can link back to this element to inherit its authorship and date. These updates could be collected together by an application, to generate a change log, or a `new in this release' section.


Next Up Previous Contents
Next: 4.6 Cross-references
Up: 4 The structure of the document
Previous: 4.4 Documenting code
[ID index][Keyword index]
The Starlink SGML Set
Starlink System Note 70
Norman Gray, Mark Taylor
21 April 1999. Release DR-0.7-13. Last updated 24 August 2001