1 How to prepare a new release
2 ----------------------------
4 . include/freetype/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 . Tag the git repositories (freetype2, freetype2-demos) with
46 git tag VER-<version> -m "" -u <committer>
48 and push the tags with
52 TODO: Tag the home page CVS on savannah.nongnu.org.
54 . Say `make dist' in both the freetype2 and freetype2-demos modules
55 to generate the .tar.gz, .tar.bz2, and .zip files.
57 . Create the doc bundles (freetype-doc-<version>.tar.gz,
58 freetype-doc-<version>.tar.bz2, ftdoc<version>.zip). This is
61 freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/
63 except the `reference' subdirectory. Do *not* use option `-l' from
66 . Run the following script (with updated `$VERSION', `$SAVANNAH_USER',
67 and $SOURCEFORGE_USER variables) to sign and upload the bundles to
68 both Savannah and SourceForge. The signing code has been taken from
69 the `gnupload' script (part of the automake bundle).
75 SOURCEFORGE_USER=wlemb
77 #####################################################################
79 GPG='/usr/bin/gpg --batch --no-tty'
81 version=`echo $VERSION | sed "s/\\.//g"`
83 FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \
84 freetype-$VERSION.tar.bz2 \
86 FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \
87 ft2demos-$VERSION.tar.bz2 \
89 FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \
90 freetype-doc-$VERSION.tar.bz2 \
93 PACKAGE_LIST="$FREETYPE_PACKAGES \
100 PATH=/empty echo -n "Enter GPG passphrase: "
106 for f in $PACKAGE_LIST; do
107 if test ! -f $f; then
108 echo "$0: Cannot find \`$f'" 1>&2
115 for f in $PACKAGE_LIST; do
118 echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f
122 for i in $FREETYPE_PACKAGES; do
123 FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig"
127 for i in $FT2DEMOS_PACKAGES; do
128 FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig"
132 for i in $FTDOC_PACKAGES; do
133 FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig"
136 SIGNATURE_LIST="$FREETYPE_SIGNATURES \
137 $FT2DEMOS_SIGNATURES \
140 scp $PACKAGE_LIST $SIGNATURE_LIST \
141 $SAVANNAH_USER@dl.sv.nongnu.org:/releases/freetype/
143 rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \
144 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
145 rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \
146 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/
147 rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \
148 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/
152 . Prepare a README for SourceForge and upload it with the following
153 script (with updated `$VERSION' and $SOURCEFORGE_USER variables).
158 SOURCEFORGE_USER=wlemb
160 #####################################################################
162 rsync -avP -e ssh README \
163 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
167 . On SourceForge, tag the just uploaded `ftXXXX.zip' and
168 `freetype-XXX.tar.bz2' files as the default files to download for
169 `Windows' and `Others', respectively.
171 . Copy the reference files (generated by `make dist') to
173 freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/reference
177 shell.sf.net:/home/groups/f/fr/freetype/htdocs/freetype2/docs/reference
179 TODO: Create FreeType home page CVS on savannah.nongnu.org and
180 update it accordingly.
182 Write script to automatically do this.
184 Mirror FreeType's savannah home page everywhere.
188 freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/index2.html
192 shell.sf.net:/home/groups/f/fr/freetype/htdocs/index2.html
194 . Announce new release on freetype-announce@nongnu.org and to relevant
197 ----------------------------------------------------------------------
199 Copyright 2003, 2005-2007, 2009, 2011 by
200 David Turner, Robert Wilhelm, and Werner Lemberg.
202 This file is part of the FreeType project, and may only be used,
203 modified, and distributed under the terms of the FreeType project
204 license, LICENSE.TXT. By continuing to use, modify, or distribute
205 this file you indicate that you have read the license and understand
209 --- end of release ---