Making a 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
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:<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.
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
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_A_BP
(where A 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
for the list of affected files.
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.
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 know 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.
Files that need version numbers updated
BUGS
ChangeLog
configure.ac
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
Creating a documentation release
Any release of LCDproc is accompanied the the user guide and developer guide.
Here is how to create these documentation packages.
Steps to create the documentation package
Get the release tarball and extract it (or change to the CVS directory
exported in and change to docs/lcdproc-user.
Create the documentation package by running:
xmlto -o lcdproc-0-5-A-user-html xhtml lcdproc-user.docbook
Create a tarfile of the documentation package:
tar -czf lcdproc-0-5-A-user-html.tar.gz
lcdproc-0-5-A-user-html
Repeat the above steps for the developers guide, replacing -user
with -dev
where appropriate.
Upload the files to the Sourceforge file release system.
The online documentation consists of the user and developer guide, each
converted to a single file for viewing online.
Steps to create the online documentation
Get the release tarball and extract it (or change to the CVS directory
exported exported in and change to docs/lcdproc-user.
Create the documentation file by running:
xmlto xhtml-nochunks lcdproc-user.docbook
Rename the file: mv lcdproc-user.html lcdproc-0-5-A-user.html
Repeat the above steps for the developers guide, replacing -user
with -dev
where appropriate.
Upload the files to our Sourceforge web site (not the file release system!)
and change htdocs/docs/index.html to point to the new
files.