Autoconf, Automake, and Libtool: Documentation and ChangeLogs

| ## 5.5 Documentation and ChangeLogs As with any software project, it is important to maintain documentation as the project evolves--the documentation must reflect the current state of the software, but it must also accurately record the changes that have been made in the past. The GNU coding standard rigorously enforces the maintenance of documentation. Automake, in fact, implements some of the standard by checking for the presence of a ``ChangeLog'` file when `automake` is run! A number of files exist, with standardized filenames, for storing documentation in GNU packages. The complete GNU coding standard, which offers some useful insights, can be found at http://www.gnu.org/prep/standards.html. Other projects, including in-house projects, can use these same tried-and-true techniques. The purpose of most of the standard documentation files was outlined earlier See section 5.2 Generated Output Files, but the ``ChangeLog'` deserves additional treatment. When recording changes in a ``ChangeLog'`, one entry is made per person. Logical changes are grouped together, while logically distinct changes (ie. `change sets') are separated by a single blank line. Here is an example from Automake's own ``ChangeLog'`:
    1999-11-21  Tom Tromey  <tromey@cygnus.com>

            * automake.in (finish_languages): Only generate suffix rule
            when not doing dependency tracking.

            * m4/init.m4 (AM_INIT_AUTOMAKE): Use AM_MISSING_INSTALL_SH.
            * m4/missing.m4 (AM_MISSING_INSTALL_SH): New macro.

            * depend2.am: Use @SOURCE@, @OBJ@, @LTOBJ@, @OBJOBJ@,
            and @BASE@.  Always use -o.
Another important point to make about ``ChangeLog'` entries is that they should be brief. It is not necessary for an entry to explain in details why a change was made, but rather what the change was. If a change is not straightforward then the explanation of why belongs in the source code itself. The GNU coding standard offers the complete set of guidelines for keeping ``ChangeLog'`s. Although any text editor can be used to create ChangeLog entries, Emacs provides a major mode to help you write them.

This document was generated by Gary V. Vaughan on February, 8 2006 using texi2html