Table of Contents
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.
Procedure 7.1. Steps to create a new software release of LCDproc
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
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/*' .
Check out the CVS stable release branch. Run:
cvs -d:ext:
and change into the <your_sf_userid>
@lcdproc.cvs.sourceforge.net:/cvsroot/lcdproc checkout -r stable-0-5-x -d lcdproc-0-5-x lcdproc
stable-0-5-x
directory.
Merge HEAD to stable. This step is only required if the release will be done from HEAD.
Run:
cvs -q update -j stable-0-5-x -j HEAD
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.
Update version numbers for stable branch. See Files that need version numbers updated for the list of affected files.
Commit everything. Run: cvs commit -m "Sync with HEAD"
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_
(where A
_BPA
is the version number of the next
release and “_BP” means “branch point”).
Tag names are all uppercase with underscores to separate elements!
Create a release branch in CVS. Run:
cvs tag -b lcdproc-0-5-
A
Release branch names are all lowercase with hyphens to separate elements!
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
Update version numbers for release and commit the changes. See Files that need version numbers updated for the list of affected files.
Set a CVS tag for the release. Run: cvs tag LCDPROC_0_5_
where A
_RELEASEA
is the version number of the next release.
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
Create the release tarball by running:
sh autogen.sh
./configure
make distcheck
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.
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.
Upload the new release and release notes to Sourceforge.
Announce the new release.
Send notice about the new release to the LCDproc mailing list
(<lcdproc@lists.omnipotent.net>
) and the lcdproc-announce
mailing list on Sourceforge (<lcdproc-announce@lists.sourceforge.net>
).
Also mention the new release on the LCDproc website download and front page.