Chapter 7. Making a release

Table of Contents

Creating a source code release
Creating a documentation release

This chapter describes the steps necessary to create a software release of LCDproc. It is intended to guide the release manager when creating a new release.

Creating a source code release

Procedure 7.1. Steps to create a new software release of LCDproc

  1. Update year of release in HEAD. The following files need to be updated:

    • server/main.c

    • clients/lcdproc/main.c

    • docs/lcdproc-user/bookinfo.docbook

    • docs/lcdproc-dev/bookinfo.docbook

  2. Make a backup of the CVS repository to the local disk. This is needed if something goes wrong. Run: rsync -av 'lcdproc.cvs.sourceforge.net::cvsroot/lcdproc/*' .

  3. Check out the CVS stable release branch. Run: cvs -d:ext:<your_sf_userid>@lcdproc.cvs.sourceforge.net:/cvsroot/lcdproc checkout -r stable-0-5-x -d lcdproc-0-5-x lcdproc and change into the stable-0-5-x directory.

  4. Merge HEAD to stable. This step is only required if the release will be done from HEAD.

    1. Run: cvs -q update -j stable-0-5-x -j HEAD

    2. Revert files that need to retain their version number after merge. Due to some wired import of external files, some files always get their $Id$ tag updated, even if there has been no change. The following files should be reverted to their previous version (given that there has really no change happened):

      • clients/examples/lcdident.pl

      • clients/metar/lcdmetar.pl

      • contrib/interface-demo2/interface.c

      • contrib/interface-demo2/nstrcmp.c

      Run cvs update -C on these files.

    3. Update version numbers for stable branch. See Files that need version numbers updated for the list of affected files.

    4. Commit everything. Run: cvs commit -m "Sync with HEAD"

    1. Tag the stable tree to indicate the file revision where the branch was made. This eases later diffs against that point.

      Run: cvs tag LCDPROC_0_5_A_BP (where A is the version number of the next release and _BP means branch point).

      Note

      Tag names are all uppercase with underscores to separate elements!

    2. Create a release branch in CVS. Run: cvs tag -b lcdproc-0-5-A

      Note

      Release branch names are all lowercase with hyphens to separate elements!

    3. Now you have created a branch from which the new release will done. Before continuing either checkout this new branch to a new working directory or update the current one by running: cvs update -r lcdproc-0-5-A

  5. Update version numbers for release and commit the changes. See Files that need version numbers updated for the list of affected files.

  6. Set a CVS tag for the release. Run: cvs tag LCDPROC_0_5_A_RELEASE where A is the version number of the next release.

  7. Export the release source tree as anonymous. This step is intended to check if all files are correctly tagged with the new release in the source tree.

    Run: cvs -d :pserver:anonymous@lcdproc.cvs.sourceforge.net:/cvsroot/lcdproc -z3 export -r LCDPROC_0_5_A_RELEASE lcdproc

  8. Create the release tarball by running:

      
        sh autogen.sh
        ./configure
        make distcheck
      
      
  9. Test the newly created release tarball at least once. Try to build and install it with all drivers enabled. Better: Try to build and install with several library options turned on and off.

  10. Create the release notes. The release notes should be an easy to read summary of changes in this release. The ChangeLog file is not very good as release notes as it is just a chronological list of things that happen.

    The release notes should talk about:

    • Fingerprint (SHA-1) of the release tarball

    • Known bugs

    • New drivers

    • Other important changes within drivers, the server core and clients

    • Everything else the user has to now for upgrading his installed version

    grouped by topics of interest.

  11. Upload the new release and release notes to Sourceforge.

  12. Announce the new release.

    Send notice about the new release to the LCDproc mailing list () and the lcdproc-announce mailing list on Sourceforge (). Also mention the new release on the LCDproc website download and front page.

Files that need version numbers updated

  • BUGS

  • ChangeLog

  • configure.in

  • server/menuscreens.c

  • docs/lcdproc-dev/bookinfo.docbook

  • docs/lcdproc-dev/driver-api.docbook

  • docs/lcdproc-dev/introduction.docbook

  • docs/lcdproc-user/bookinfo.docbook

  • docs/lcdproc-user/how-to-obtain.docbook