summaryrefslogtreecommitdiff
path: root/doc/releases.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/releases.txt')
-rw-r--r--doc/releases.txt81
1 files changed, 81 insertions, 0 deletions
diff --git a/doc/releases.txt b/doc/releases.txt
new file mode 100644
index 0000000..320c8a0
--- /dev/null
+++ b/doc/releases.txt
@@ -0,0 +1,81 @@
+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