summaryrefslogtreecommitdiff
path: root/doc/releases.txt
blob: 320c8a007c2a386d28fec1b0564dc958cac661b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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