1 How to prepare a new release
2 ----------------------------
4 . include/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR,
7 . Update version numbers in all files where necessary (for example, do
8 a grep for both `2.3.1' and `231' for release 2.3.1).
10 . builds/unix/configure.raw: Update `version_info'.
12 . docs/CHANGES: Document differences to last release.
16 . docs/VERSION.DLL: Document changed `version_info'.
18 . ChangeLog: Announce new release (both in the freetype2 and
19 freetype2-demos modules).
21 . Clone the git archive to another directory with
23 git clone -l -s . ../freetype2.test
25 or something like this and run
27 make distclean; make devel; make
28 make distclean; make devel; make multi
29 make distclean; make devel CC=g++; make CC=g++
30 make distclean; make devel CC=g++; make multi CC=g++
33 make distclean; ./configure; make
34 make distclean; ./configure CC=g++; make
36 in the cloned repository to test compilation with both gcc and g++.
38 . Test C++ compilation for freetype2-demos too (using `git clone' as
41 . Run src/tools/chktrcmp.py and check that there are no undefined
44 . After pushing the new release, tag the git repositories (freetype2,
47 git tag VER-<version> -m "" -u <committer>
49 and push the tags with
57 that the git directory is really clean (and remove extraneous files
60 . Say `make dist' in both the freetype2 and freetype2-demos modules
61 to generate the .tar.gz, .tar.bz2, and .zip files.
63 . Create the doc bundles (freetype-doc-<version>.tar.gz,
64 freetype-doc-<version>.tar.bz2, ftdoc<version>.zip). This is
67 <freetype-web git repository>/freetype2/docs
69 except the `reference' subdirectory. Do *not* use option `-l' from
72 . Run the following script (with updated `$VERSION', `$SAVANNAH_USER',
73 and $SOURCEFORGE_USER variables) to sign and upload the bundles to
74 both Savannah and SourceForge. The signing code has been taken from
75 the `gnupload' script (part of the automake bundle).
81 SOURCEFORGE_USER=wlemb
83 #####################################################################
85 GPG='/usr/bin/gpg --batch --no-tty'
87 version=`echo $VERSION | sed "s/\\.//g"`
89 FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \
90 freetype-$VERSION.tar.bz2 \
92 FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \
93 ft2demos-$VERSION.tar.bz2 \
95 FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \
96 freetype-doc-$VERSION.tar.bz2 \
99 PACKAGE_LIST="$FREETYPE_PACKAGES \
106 PATH=/empty echo -n "Enter GPG passphrase: "
112 for f in $PACKAGE_LIST; do
113 if test ! -f $f; then
114 echo "$0: Cannot find \`$f'" 1>&2
121 for f in $PACKAGE_LIST; do
124 echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f
128 for i in $FREETYPE_PACKAGES; do
129 FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig"
133 for i in $FT2DEMOS_PACKAGES; do
134 FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig"
138 for i in $FTDOC_PACKAGES; do
139 FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig"
142 SIGNATURE_LIST="$FREETYPE_SIGNATURES \
143 $FT2DEMOS_SIGNATURES \
146 scp $PACKAGE_LIST $SIGNATURE_LIST \
147 $SAVANNAH_USER@dl.sv.nongnu.org:/releases/freetype/
149 rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \
150 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
151 rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \
152 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/
153 rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \
154 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/
158 . Prepare a README for SourceForge and upload it with the following
159 script (with updated `$VERSION' and $SOURCEFORGE_USER variables).
164 SOURCEFORGE_USER=wlemb
166 #####################################################################
168 rsync -avP -e ssh README \
169 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
173 . On SourceForge, tag the just uploaded `ftXXX.zip' and
174 `freetype-XXX.tar.bz2' files as the default files to download for
175 `Windows' and `Others', respectively.
177 . Copy the reference files (generated by `make dist') to
179 <freetype-web git repository>/freetype2/docs/reference
181 . Update the `freetype-web' repository. `git push' then automatically
182 triggers an update of the public web pages within ten minutes, due
183 to a cron script (on wl@freedesktop.org) that rsyncs with
185 freedesktop.org://srv/freetype.freedesktop.org/www
187 . Announce new release on freetype-announce@nongnu.org and to relevant
190 ----------------------------------------------------------------------
192 Copyright 2003, 2005-2007, 2009, 2011-2014 by
193 David Turner, Robert Wilhelm, and Werner Lemberg.
195 This file is part of the FreeType project, and may only be used,
196 modified, and distributed under the terms of the FreeType project
197 license, LICENSE.TXT. By continuing to use, modify, or distribute
198 this file you indicate that you have read the license and understand
202 --- end of release ---