xref: /libtiff-4.0.7/HOWTO-RELEASE (revision e9b10eff)
1HOWTO-RELEASE:
2
3Notes on releasing.
4
50. Make sure that you have current FSF releases of autoconf, automake,
6   and libtool packages installed under a common installation prefix
7   and that these tools are in your executable search path prior to
8   any other installed versions.  Versions delivered with Linux may be
9   altered so it is best to install official FSF releases. GNU 'm4'
10   1.4.16 is needed in order to avoid bugs in m4. These packages may
11   be downloaded from the following ftp locations:
12
13     m4       - ftp://ftp.gnu.org/pub/gnu/m4
14     autoconf - ftp://ftp.gnu.org/pub/gnu/autoconf
15     automake - ftp://ftp.gnu.org/pub/gnu/automake
16     libtool  - ftp://ftp.gnu.org/pub/gnu/libtool
17
18   It is recommended to install m4 before autoconf, since the later
19   requires the former.
20
21   Release builds should only be done on a system with a functioning
22   and correctly set system clock and on a filesystem which accurately
23   records file update times.  Use of GNU make is recommended.
24
251. Commit any unsaved changes.
26
272. Create html/vX.X.html and add it to cvs with 'cvs add html/vX.X.html'.
28   Take ChangeLog entries and html-ify in there.
29   Easist thing to do is take html/vX.(X-1).html and use it as a template.
30
313. Add vX.X.html file to the list of EXTRA_DIST files in the html/Makefile.am.
32
334. Update html/index.html to refer to this new page as the current release.
34
355. Increment the release version in configure.ac.  Put 'alpha' or
36   'beta' after the version, if applicable.  For example:
37
38     4.0.0
39      or
40     4.0.0beta7
41
42   Version should be updated in two places: in the second argument of the
43   AC_INIT macro and in LIBTIFF_xxx_VERSION variables.
44
456. Update library ELF versioning in configure.ac (LIBTIFF_CURRENT,
46   LIBTIFF_REVISION, and LIBTIFF_AGE).  These numbers have nothing to
47   do with the libtiff release version numbers.
48
49   Note that as of libtiff 4.X, proper ELF versioning is used so
50   please follow the rules listed in configure.ac.  At a bare minimum,
51   you should increment LIBTIFF_REVISION for each release so that
52   installed library files don't overwrite existing files.  If APIs
53   have been added, removed, or interface structures have changed,
54   then more care is required.
55
567. Increment the release version in CMakeLists.txt.  Change the
57   'project' property similar to
58
59     # Project version
60     project(tiff VERSION 4.0.5 LANGUAGES C)
61
628. Update library ELF versioning in CMakeLists.txt.  This is a raw ELF
63   SO version specification similar to:
64
65     # Library version (unlike libtool's baroque scheme, WYSIWYG here)
66     set(SO_COMPATVERSION 5)
67     set(SO_VERSION 5.2.2)
68
699. Add an entry to Changelog similar to:
70
71     * libtiff 4.0.0 released.
72
7310. In the source tree do
74
75     ./autogen.sh
76
77   This step may be skipped if you have already been using a
78   maintainer build with current autoconf, automake, and libtool
79   packages.  It is only needed when updating tool versions.
80
8111. It is recommended (but not required) to build outside of the source
82   tree so that the source tree is kept in a pristine state.  This
83   also allows sharing the source directory on several networked
84   systems.  For example:
85
86     mkdir libtiff-build
87     cd libtiff-build
88     /path/to/libtiff/configure --enable-maintainer-mode
89
90   otherwise do
91
92     ./configure --enable-maintainer-mode
93
9412. In the build tree do
95
96     make release
97
98   This will update "RELEASE-DATE", "VERSION", and libtiff/tiffvers.h
99   in the source tree.
100
10113. In the source tree, verify that the version info in RELEASE-DATE,
102   VERSION and libtiff/tiffvers.h is right.
103
10414. In the build tree do
105
106      make
107      make distcheck
108
109    If 'make distcheck' fails, then correct any issues until it
110    succeeds.
111
112    Two files with names tiff-version.tar.gz and tiff-version.zip will
113    be created in the top level build directory.
114
11515. In the source tree do
116
117      'cvs commit'.
118
11916. In the source tree do
120
121      cvs tag Release-v4-0-0
122
123    (or the appropriate name for the release)
124
12517. Copy release packages from the build tree to the
126    ftp.remotesensing.org ftp site.
127
128      scp tiff-*.tar.gz tiff-*.zip \
129    	 [email protected]:/osgeo/download/libtiff
130
13118. Announce to list, [email protected]
132
133