• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1How 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/VERSIONS.TXT: 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
192Copyright 2003-2018 by
193David Turner, Robert Wilhelm, and Werner Lemberg.
194
195This  file is  part of  the FreeType  project, and  may only  be used,
196modified,  and distributed  under the  terms of  the  FreeType project
197license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
198this file you  indicate that you have read  the license and understand
199and accept it fully.
200
201
202--- end of release ---
203