2009-05-05 This text summarizes some points to pay attention to when a new release of sane-backends is planned. Timetable (approximate periods): Day 0: Announcement of upcoming release on sane-devel including timetable Day 14: Feature freeze (only bugfixes + documentation updates) Day 28: Code freeze (only fixes for bugs that can destroy hardware, can cause compilation problems or render a backend completely unusable, and documentation updates are allowed) Day 35: Release Before the release: * set :new :yes on any new backend .desc files * Make sure that config.guess and config.sub are up-to-date (get them from savannah.gnu.org/projects/config) * configure.in: increase version number * configure.in: remove 'git' from textual version number * configure.in: set is_release=yes * OPTIONAL: aclocal.m4: recreate by running aclocal * OPTIONAL: include/sane/config.h.in: recreate (autoheader in root of checkout) * DONT run autoreconf, it will overwrite our custom ltmain.sh * configure: recreate by running autoconf * NEWS: update and enter date of release * sane-backends.lsm: update * ChangeLog: set release marker * git commit -a * tag git with release tag; e.g.: 'git tag -a RELEASE_1_0_15' * probably DONT want to git push here, cause alioth will rebuild it's local checkout needlessly Making the release: * make tar.gz, sane-backends-x.y.z.lsm, and .md5sum with "make sane-backends" * unpack tar.gz in temporary directory * make diff from last release by unpacking it also in temporary directory and running e.g. diff -uNr sane-backends-1.0.14 sane-backends-1.0.15 > sane-backends-1.0.14-1.0.15.diff * check that the diff applies cleanly to the old version * gzip the diff * install devel headers required to build optional backends (1284,gphoto,etc) * check that the new version .tar.gz can be compiled * upload these files together with the .diff.gz to the FTP/HTTP servers (at the moment: alioth.debian.org, ftp files are in /srv/alioth.debian.org/chroot/ftproot/pub/sane/ ) Announcing the release: * checkout the sane/website.git module and: * copy sane-backends.html to sane-backends-"old-version".html * update sane-supported-devices.html with link to above "old" file * rebuild sane-backends.html and sane-mfgs.html (make -C doc html-pages) * use man2html from http://hydra.nac.uci.edu/indiv/ehood/man2html.html to rebuild html man pages (make -C doc html-man) (no other version works) * add md5 sum to sane-md5sum.txt * check and update platforms page (sane-support.html) * add announcement to index.html * git commit -a && git push * check that website was updated automatically. if not, see: /org/alioth.debian.org/chroot/home/groups/sane/bin/update-htdocs.sh * rebuild descriptions.db (make -C doc descriptions.db) * scp doc/descriptions.db to alioth: /org/alioth.debian.org/chroot/home/groups/sane/search/release * write announcements sane-devel, maybe others (e.g. freshmeat), include the md5 hash After the release: * move ChangeLog to ChangeLog-"version" * start a new ChangeLog * add ChangeLog-"version" to EXTRA_DIST in Makefile.in and Makefile.am * configure.in: bump textual version & add 'git' suffix * configure.in: bump V_REV * configure.in: set is_release=no * configure: regenerate with autoconf * remove the ':new' tag from any new backends .desc files * git add new files and commit * git push --tags