blob: 65ce078e881d13148774f9d5563ee12dfe6448d9 [file] [log] [blame]
Werner Lembergf9d864a2003-07-25 05:57:21 +00001How to prepare a new release
2----------------------------
3
Werner Lembergf99d8462006-02-26 17:50:59 +00004. include/freetype/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR,
5 and FREETYPE_PATCH.
Werner Lembergf9d864a2003-07-25 05:57:21 +00006
Werner Lemberg87a5a432007-01-17 12:44:39 +00007. Update version numbers in all files where necessary (for example, do
Werner Lemberg53935932007-01-31 08:53:02 +00008 a grep for both `2.3.1' and `231' for release 2.3.1).
Werner Lembergf99d8462006-02-26 17:50:59 +00009
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000010. builds/unix/configure.raw: Update `version_info'.
Werner Lembergf9d864a2003-07-25 05:57:21 +000011
12. docs/CHANGES: Document differences to last release.
13
14. README: Update.
15
Werner Lemberge42dbce2003-11-09 08:37:14 +000016. docs/VERSION.DLL: Document changed `version_info'.
Werner Lembergf9d864a2003-07-25 05:57:21 +000017
Werner Lembergdeee58f2009-07-15 07:58:00 +020018. ChangeLog: Announce new release (both in the freetype2 and
19 freetype2-demos modules).
Werner Lemberge42dbce2003-11-09 08:37:14 +000020
Werner Lembergdeee58f2009-07-15 07:58:00 +020021. Clone the git archive to another directory with
22
23 git clone -l -s . ../freetype2.test
24
25 or something like this and run
Werner Lemberg1e1b6df2007-07-07 07:30:40 +000026
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++
31
32 sh autogen.sh
33 make distclean; ./configure; make
34 make distclean; ./configure CC=g++; make
35
Werner Lembergdeee58f2009-07-15 07:58:00 +020036 in the cloned repository to test compilation with both gcc and g++.
Werner Lemberg1e1b6df2007-07-07 07:30:40 +000037
Werner Lembergdeee58f2009-07-15 07:58:00 +020038. Test C++ compilation for freetype2-demos too (using `git clone' as
39 above).
Werner Lemberg1e1b6df2007-07-07 07:30:40 +000040
Werner Lembergdeee58f2009-07-15 07:58:00 +020041. Run src/tools/chktrcmp.py and check that there are no undefined
42 trace_XXXX macros.
suzuki toshiya313d4f42009-07-13 00:01:57 +090043
Werner Lemberg3c4e6ba2009-10-10 20:15:49 +020044. Tag the git repositories (freetype2, freetype2-demos) with
45
46 git tag VER-<version> -m "" -u <committer>
47
48 and push the tags with
49
50 git push --tags
Werner Lemberge42dbce2003-11-09 08:37:14 +000051
Werner Lemberg87a5a432007-01-17 12:44:39 +000052 TODO: Tag the home page CVS on savannah.nongnu.org.
53
Werner Lembergc6a66b42012-12-20 08:31:56 +010054. Check with
55
56 git clean -ndx
57
58 that the git directory is really clean (and remove extraneous files
59 if necessary).
60
Werner Lembergdeee58f2009-07-15 07:58:00 +020061. Say `make dist' in both the freetype2 and freetype2-demos modules
62 to generate the .tar.gz, .tar.bz2, and .zip files.
Werner Lemberg87a5a432007-01-17 12:44:39 +000063
64. Create the doc bundles (freetype-doc-<version>.tar.gz,
65 freetype-doc-<version>.tar.bz2, ftdoc<version>.zip). This is
66 everything below
67
68 freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/
69
70 except the `reference' subdirectory. Do *not* use option `-l' from
71 zip!
72
Werner Lembergbe54a682008-06-29 07:43:41 +000073. Run the following script (with updated `$VERSION', `$SAVANNAH_USER',
74 and $SOURCEFORGE_USER variables) to sign and upload the bundles to
75 both Savannah and SourceForge. The signing code has been taken from
76 the `gnupload' script (part of the automake bundle).
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000077
78 #!/bin/sh
Werner Lemberg87a5a432007-01-17 12:44:39 +000079
Werner Lembergbb18bf72011-11-15 08:34:54 +010080 VERSION=2.4.8
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000081 SAVANNAH_USER=wl
Werner Lembergbe54a682008-06-29 07:43:41 +000082 SOURCEFORGE_USER=wlemb
Werner Lemberg87a5a432007-01-17 12:44:39 +000083
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000084 #####################################################################
Werner Lemberg87a5a432007-01-17 12:44:39 +000085
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000086 GPG='/usr/bin/gpg --batch --no-tty'
87
88 version=`echo $VERSION | sed "s/\\.//g"`
89
Werner Lemberg3c4e6ba2009-10-10 20:15:49 +020090 FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \
91 freetype-$VERSION.tar.bz2 \
Werner Lembergdd9d7ca2009-10-10 21:19:35 +020092 ft$version.zip"
Werner Lemberg3c4e6ba2009-10-10 20:15:49 +020093 FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \
94 ft2demos-$VERSION.tar.bz2 \
Werner Lembergdd9d7ca2009-10-10 21:19:35 +020095 ftdmo$version.zip"
Werner Lemberg3c4e6ba2009-10-10 20:15:49 +020096 FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \
97 freetype-doc-$VERSION.tar.bz2 \
Werner Lembergdd9d7ca2009-10-10 21:19:35 +020098 ftdoc$version.zip"
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000099
Werner Lembergdd9d7ca2009-10-10 21:19:35 +0200100 PACKAGE_LIST="$FREETYPE_PACKAGES \
101 $FT2DEMOS_PACKAGES \
102 $FTDOC_PACKAGES"
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +0000103
104 set -e
105 unset passphrase
106
107 PATH=/empty echo -n "Enter GPG passphrase: "
108 stty -echo
109 read -r passphrase
110 stty echo
111 echo
112
113 for f in $PACKAGE_LIST; do
114 if test ! -f $f; then
115 echo "$0: Cannot find \`$f'" 1>&2
116 exit 1
117 else
118 :
119 fi
120 done
121
122 for f in $PACKAGE_LIST; do
123 echo "Signing $f..."
124 rm -f $f.sig
125 echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f
126 done
127
Werner Lemberg3c4e6ba2009-10-10 20:15:49 +0200128 FREETYPE_SIGNATURES=
129 for i in $FREETYPE_PACKAGES; do
130 FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig"
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +0000131 done
132
Werner Lemberg3c4e6ba2009-10-10 20:15:49 +0200133 FT2DEMOS_SIGNATURES=
134 for i in $FT2DEMOS_PACKAGES; do
135 FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig"
136 done
137
138 FTDOC_SIGNATURES=
139 for i in $FTDOC_PACKAGES; do
140 FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig"
141 done
142
Werner Lembergdd9d7ca2009-10-10 21:19:35 +0200143 SIGNATURE_LIST="$FREETYPE_SIGNATURES \
144 $FT2DEMOS_SIGNATURES \
145 $FTDOC_SIGNATURES"
Werner Lemberg3c4e6ba2009-10-10 20:15:49 +0200146
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +0000147 scp $PACKAGE_LIST $SIGNATURE_LIST \
148 $SAVANNAH_USER@dl.sv.nongnu.org:/releases/freetype/
149
Werner Lemberg3c4e6ba2009-10-10 20:15:49 +0200150 rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \
151 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
152 rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \
153 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/
154 rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \
155 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/
Werner Lemberg87a5a432007-01-17 12:44:39 +0000156
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +0000157 # EOF
158
Werner Lembergbb18bf72011-11-15 08:34:54 +0100159. Prepare a README for SourceForge and upload it with the following
160 script (with updated `$VERSION' and $SOURCEFORGE_USER variables).
Werner Lemberg87a5a432007-01-17 12:44:39 +0000161
Werner Lembergbb18bf72011-11-15 08:34:54 +0100162 #!/bin/sh
163
164 VERSION=2.4.8
165 SOURCEFORGE_USER=wlemb
166
167 #####################################################################
168
169 rsync -avP -e ssh README \
170 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
171
172 # EOF
173
174. On SourceForge, tag the just uploaded `ftXXXX.zip' and
175 `freetype-XXX.tar.bz2' files as the default files to download for
176 `Windows' and `Others', respectively.
Werner Lemberg87a5a432007-01-17 12:44:39 +0000177
178. Copy the reference files (generated by `make dist') to
179
180 freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/reference
181
182 and
183
184 shell.sf.net:/home/groups/f/fr/freetype/htdocs/freetype2/docs/reference
185
186 TODO: Create FreeType home page CVS on savannah.nongnu.org and
Werner Lembergf99d8462006-02-26 17:50:59 +0000187 update it accordingly.
Werner Lembergd88d5412003-11-12 15:16:02 +0000188
Werner Lemberg49f4d342005-06-16 19:07:08 +0000189 Write script to automatically do this.
Werner Lembergd88d5412003-11-12 15:16:02 +0000190
Werner Lemberg49f4d342005-06-16 19:07:08 +0000191 Mirror FreeType's savannah home page everywhere.
Werner Lembergd88d5412003-11-12 15:16:02 +0000192
Werner Lemberg87a5a432007-01-17 12:44:39 +0000193. Update
Werner Lemberg49f4d342005-06-16 19:07:08 +0000194
Werner Lemberg87a5a432007-01-17 12:44:39 +0000195 freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/index2.html
Werner Lemberg49f4d342005-06-16 19:07:08 +0000196
Werner Lemberg87a5a432007-01-17 12:44:39 +0000197 and copy it to
Werner Lembergf99d8462006-02-26 17:50:59 +0000198
Werner Lemberg87a5a432007-01-17 12:44:39 +0000199 shell.sf.net:/home/groups/f/fr/freetype/htdocs/index2.html
Werner Lemberg49f4d342005-06-16 19:07:08 +0000200
201. Announce new release on freetype-announce@nongnu.org and to relevant
202 newsgroups.
Werner Lemberg56c368c2005-06-04 23:00:25 +0000203
Werner Lembergf99d8462006-02-26 17:50:59 +0000204----------------------------------------------------------------------
Werner Lemberg56c368c2005-06-04 23:00:25 +0000205
Werner Lembergc6a66b42012-12-20 08:31:56 +0100206Copyright 2003, 2005-2007, 2009, 2011-2012 by
Werner Lemberg56c368c2005-06-04 23:00:25 +0000207David Turner, Robert Wilhelm, and Werner Lemberg.
208
Werner Lembergf99d8462006-02-26 17:50:59 +0000209This file is part of the FreeType project, and may only be used,
210modified, and distributed under the terms of the FreeType project
211license, LICENSE.TXT. By continuing to use, modify, or distribute
212this file you indicate that you have read the license and understand
213and accept it fully.
Werner Lemberg56c368c2005-06-04 23:00:25 +0000214
215
216--- end of release ---