Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3918 | Serge | 1 | How to prepare a new release |
2 | ---------------------------- |
||
3 | |||
4 | . include/freetype/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR, |
||
5 | and FREETYPE_PATCH. |
||
6 | |||
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). |
||
9 | |||
10 | . builds/unix/configure.raw: Update `version_info'. |
||
11 | |||
12 | . docs/CHANGES: Document differences to last release. |
||
13 | |||
14 | . README: Update. |
||
15 | |||
16 | . docs/VERSION.DLL: Document changed `version_info'. |
||
17 | |||
18 | . ChangeLog: Announce new release (both in the freetype2 and |
||
19 | freetype2-demos modules). |
||
20 | |||
21 | . Clone the git archive to another directory with |
||
22 | |||
23 | git clone -l -s . ../freetype2.test |
||
24 | |||
25 | or something like this and run |
||
26 | |||
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 | |||
36 | in the cloned repository to test compilation with both gcc and g++. |
||
37 | |||
38 | . Test C++ compilation for freetype2-demos too (using `git clone' as |
||
39 | above). |
||
40 | |||
41 | . Run src/tools/chktrcmp.py and check that there are no undefined |
||
42 | trace_XXXX macros. |
||
43 | |||
44 | . Tag the git repositories (freetype2, freetype2-demos) with |
||
45 | |||
46 | git tag VER- |
||
47 | |||
48 | and push the tags with |
||
49 | |||
50 | git push --tags |
||
51 | |||
52 | TODO: Tag the home page CVS on savannah.nongnu.org. |
||
53 | |||
54 | . Check with |
||
55 | |||
56 | git clean -ndx |
||
57 | |||
58 | that the git directory is really clean (and remove extraneous files |
||
59 | if necessary). |
||
60 | |||
61 | . Say `make dist' in both the freetype2 and freetype2-demos modules |
||
62 | to generate the .tar.gz, .tar.bz2, and .zip files. |
||
63 | |||
64 | . Create the doc bundles (freetype-doc- |
||
65 | freetype-doc- |
||
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 | |||
73 | . 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). |
||
77 | |||
78 | #!/bin/sh |
||
79 | |||
80 | VERSION=2.4.8 |
||
81 | SAVANNAH_USER=wl |
||
82 | SOURCEFORGE_USER=wlemb |
||
83 | |||
84 | ##################################################################### |
||
85 | |||
86 | GPG='/usr/bin/gpg --batch --no-tty' |
||
87 | |||
88 | version=`echo $VERSION | sed "s/\\.//g"` |
||
89 | |||
90 | FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \ |
||
91 | freetype-$VERSION.tar.bz2 \ |
||
92 | ft$version.zip" |
||
93 | FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \ |
||
94 | ft2demos-$VERSION.tar.bz2 \ |
||
95 | ftdmo$version.zip" |
||
96 | FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \ |
||
97 | freetype-doc-$VERSION.tar.bz2 \ |
||
98 | ftdoc$version.zip" |
||
99 | |||
100 | PACKAGE_LIST="$FREETYPE_PACKAGES \ |
||
101 | $FT2DEMOS_PACKAGES \ |
||
102 | $FTDOC_PACKAGES" |
||
103 | |||
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 | |||
128 | FREETYPE_SIGNATURES= |
||
129 | for i in $FREETYPE_PACKAGES; do |
||
130 | FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig" |
||
131 | done |
||
132 | |||
133 | 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 | |||
143 | SIGNATURE_LIST="$FREETYPE_SIGNATURES \ |
||
144 | $FT2DEMOS_SIGNATURES \ |
||
145 | $FTDOC_SIGNATURES" |
||
146 | |||
147 | scp $PACKAGE_LIST $SIGNATURE_LIST \ |
||
148 | $SAVANNAH_USER@dl.sv.nongnu.org:/releases/freetype/ |
||
149 | |||
150 | 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/ |
||
156 | |||
157 | # EOF |
||
158 | |||
159 | . Prepare a README for SourceForge and upload it with the following |
||
160 | script (with updated `$VERSION' and $SOURCEFORGE_USER variables). |
||
161 | |||
162 | #!/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. |
||
177 | |||
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 |
||
187 | update it accordingly. |
||
188 | |||
189 | Write script to automatically do this. |
||
190 | |||
191 | Mirror FreeType's savannah home page everywhere. |
||
192 | |||
193 | . Update |
||
194 | |||
195 | freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/index2.html |
||
196 | |||
197 | and copy it to |
||
198 | |||
199 | shell.sf.net:/home/groups/f/fr/freetype/htdocs/index2.html |
||
200 | |||
201 | . Announce new release on freetype-announce@nongnu.org and to relevant |
||
202 | newsgroups. |
||
203 | |||
204 | ---------------------------------------------------------------------- |
||
205 | |||
206 | Copyright 2003, 2005-2007, 2009, 2011-2012 by |
||
207 | David Turner, Robert Wilhelm, and Werner Lemberg. |
||
208 | |||
209 | This file is part of the FreeType project, and may only be used, |
||
210 | modified, and distributed under the terms of the FreeType project |
||
211 | license, LICENSE.TXT. By continuing to use, modify, or distribute |
||
212 | this file you indicate that you have read the license and understand |
||
213 | and accept it fully. |
||
214 | |||
215 | |||
216 | --- end of release --- |