tizen 2.3.1 release
[framework/graphics/freetype.git] / docs / release
1 How to prepare a new release
2 ----------------------------
3
4 . include/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 . After pushing the new release,  tag the git repositories (freetype2,
45   freetype2-demos) with
46
47     git tag VER-<version> -m "" -u <committer>
48
49   and push the tags with
50
51     git push --tags
52
53 . Check with
54
55     git clean -ndx
56
57   that the git directory is really clean  (and remove extraneous files
58   if necessary).
59
60 . Say `make  dist' in both the  freetype2 and freetype2-demos  modules
61   to generate the .tar.gz, .tar.bz2, and .zip files.
62
63 . Create     the     doc    bundles    (freetype-doc-<version>.tar.gz,
64   freetype-doc-<version>.tar.bz2,    ftdoc<version>.zip).    This   is
65   everything in
66
67     <freetype-web git repository>/freetype2/docs
68
69   except the `reference' subdirectory.   Do *not* use option `-l' from
70   zip!
71
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).
76
77     #!/bin/sh
78
79     VERSION=2.5.1
80     SAVANNAH_USER=wl
81     SOURCEFORGE_USER=wlemb
82
83     #####################################################################
84
85     GPG='/usr/bin/gpg --batch --no-tty'
86
87     version=`echo $VERSION | sed "s/\\.//g"`
88
89     FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \
90                        freetype-$VERSION.tar.bz2 \
91                        ft$version.zip"
92     FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \
93                        ft2demos-$VERSION.tar.bz2 \
94                        ftdmo$version.zip"
95     FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \
96                     freetype-doc-$VERSION.tar.bz2 \
97                     ftdoc$version.zip"
98
99     PACKAGE_LIST="$FREETYPE_PACKAGES \
100                   $FT2DEMOS_PACKAGES \
101                   $FTDOC_PACKAGES"
102
103     set -e
104     unset passphrase
105
106     PATH=/empty echo -n "Enter GPG passphrase: "
107     stty -echo
108     read -r passphrase
109     stty echo
110     echo
111
112     for f in $PACKAGE_LIST; do
113       if test ! -f $f; then
114         echo "$0: Cannot find \`$f'" 1>&2
115         exit 1
116       else
117         :
118       fi
119     done
120
121     for f in $PACKAGE_LIST; do
122       echo "Signing $f..."
123       rm -f $f.sig
124       echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f
125     done
126
127     FREETYPE_SIGNATURES=
128     for i in $FREETYPE_PACKAGES; do
129       FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig"
130     done
131
132     FT2DEMOS_SIGNATURES=
133     for i in $FT2DEMOS_PACKAGES; do
134       FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig"
135     done
136
137     FTDOC_SIGNATURES=
138     for i in $FTDOC_PACKAGES; do
139       FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig"
140     done
141
142     SIGNATURE_LIST="$FREETYPE_SIGNATURES \
143                     $FT2DEMOS_SIGNATURES \
144                     $FTDOC_SIGNATURES"
145
146     scp $PACKAGE_LIST $SIGNATURE_LIST \
147       $SAVANNAH_USER@dl.sv.nongnu.org:/releases/freetype/
148
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/
155
156     # EOF
157
158 . Prepare a  README for SourceForge  and upload it  with the following
159   script (with updated `$VERSION' and $SOURCEFORGE_USER variables).
160
161     #!/bin/sh
162
163     VERSION=2.5.1
164     SOURCEFORGE_USER=wlemb
165
166     #####################################################################
167
168     rsync -avP -e ssh README \
169       $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
170
171     # EOF
172
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.
176
177 . Copy the reference files (generated by `make dist') to
178
179     <freetype-web git repository>/freetype2/docs/reference
180
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
184
185     freedesktop.org://srv/freetype.freedesktop.org/www
186
187 . Announce new release on freetype-announce@nongnu.org and to relevant
188   newsgroups.
189
190 ----------------------------------------------------------------------
191
192 Copyright 2003, 2005-2007, 2009, 2011-2014 by
193 David Turner, Robert Wilhelm, and Werner Lemberg.
194
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
199 and accept it fully.
200
201
202 --- end of release ---