Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | How to prepare a new release |
michael@0 | 2 | ---------------------------- |
michael@0 | 3 | |
michael@0 | 4 | . include/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR, |
michael@0 | 5 | and FREETYPE_PATCH. |
michael@0 | 6 | |
michael@0 | 7 | . Update version numbers in all files where necessary (for example, do |
michael@0 | 8 | a grep for both `2.3.1' and `231' for release 2.3.1). |
michael@0 | 9 | |
michael@0 | 10 | . builds/unix/configure.raw: Update `version_info'. |
michael@0 | 11 | |
michael@0 | 12 | . docs/CHANGES: Document differences to last release. |
michael@0 | 13 | |
michael@0 | 14 | . README: Update. |
michael@0 | 15 | |
michael@0 | 16 | . docs/VERSION.DLL: Document changed `version_info'. |
michael@0 | 17 | |
michael@0 | 18 | . ChangeLog: Announce new release (both in the freetype2 and |
michael@0 | 19 | freetype2-demos modules). |
michael@0 | 20 | |
michael@0 | 21 | . Clone the git archive to another directory with |
michael@0 | 22 | |
michael@0 | 23 | git clone -l -s . ../freetype2.test |
michael@0 | 24 | |
michael@0 | 25 | or something like this and run |
michael@0 | 26 | |
michael@0 | 27 | make distclean; make devel; make |
michael@0 | 28 | make distclean; make devel; make multi |
michael@0 | 29 | make distclean; make devel CC=g++; make CC=g++ |
michael@0 | 30 | make distclean; make devel CC=g++; make multi CC=g++ |
michael@0 | 31 | |
michael@0 | 32 | sh autogen.sh |
michael@0 | 33 | make distclean; ./configure; make |
michael@0 | 34 | make distclean; ./configure CC=g++; make |
michael@0 | 35 | |
michael@0 | 36 | in the cloned repository to test compilation with both gcc and g++. |
michael@0 | 37 | |
michael@0 | 38 | . Test C++ compilation for freetype2-demos too (using `git clone' as |
michael@0 | 39 | above). |
michael@0 | 40 | |
michael@0 | 41 | . Run src/tools/chktrcmp.py and check that there are no undefined |
michael@0 | 42 | trace_XXXX macros. |
michael@0 | 43 | |
michael@0 | 44 | . Tag the git repositories (freetype2, freetype2-demos) with |
michael@0 | 45 | |
michael@0 | 46 | git tag VER-<version> -m "" -u <committer> |
michael@0 | 47 | |
michael@0 | 48 | and push the tags with |
michael@0 | 49 | |
michael@0 | 50 | git push --tags |
michael@0 | 51 | |
michael@0 | 52 | . Check with |
michael@0 | 53 | |
michael@0 | 54 | git clean -ndx |
michael@0 | 55 | |
michael@0 | 56 | that the git directory is really clean (and remove extraneous files |
michael@0 | 57 | if necessary). |
michael@0 | 58 | |
michael@0 | 59 | . Say `make dist' in both the freetype2 and freetype2-demos modules |
michael@0 | 60 | to generate the .tar.gz, .tar.bz2, and .zip files. |
michael@0 | 61 | |
michael@0 | 62 | . Create the doc bundles (freetype-doc-<version>.tar.gz, |
michael@0 | 63 | freetype-doc-<version>.tar.bz2, ftdoc<version>.zip). This is |
michael@0 | 64 | everything in |
michael@0 | 65 | |
michael@0 | 66 | <freetype-web git repository>/freetype2/docs |
michael@0 | 67 | |
michael@0 | 68 | except the `reference' subdirectory. Do *not* use option `-l' from |
michael@0 | 69 | zip! |
michael@0 | 70 | |
michael@0 | 71 | . Run the following script (with updated `$VERSION', `$SAVANNAH_USER', |
michael@0 | 72 | and $SOURCEFORGE_USER variables) to sign and upload the bundles to |
michael@0 | 73 | both Savannah and SourceForge. The signing code has been taken from |
michael@0 | 74 | the `gnupload' script (part of the automake bundle). |
michael@0 | 75 | |
michael@0 | 76 | #!/bin/sh |
michael@0 | 77 | |
michael@0 | 78 | VERSION=2.5.1 |
michael@0 | 79 | SAVANNAH_USER=wl |
michael@0 | 80 | SOURCEFORGE_USER=wlemb |
michael@0 | 81 | |
michael@0 | 82 | ##################################################################### |
michael@0 | 83 | |
michael@0 | 84 | GPG='/usr/bin/gpg --batch --no-tty' |
michael@0 | 85 | |
michael@0 | 86 | version=`echo $VERSION | sed "s/\\.//g"` |
michael@0 | 87 | |
michael@0 | 88 | FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \ |
michael@0 | 89 | freetype-$VERSION.tar.bz2 \ |
michael@0 | 90 | ft$version.zip" |
michael@0 | 91 | FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \ |
michael@0 | 92 | ft2demos-$VERSION.tar.bz2 \ |
michael@0 | 93 | ftdmo$version.zip" |
michael@0 | 94 | FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \ |
michael@0 | 95 | freetype-doc-$VERSION.tar.bz2 \ |
michael@0 | 96 | ftdoc$version.zip" |
michael@0 | 97 | |
michael@0 | 98 | PACKAGE_LIST="$FREETYPE_PACKAGES \ |
michael@0 | 99 | $FT2DEMOS_PACKAGES \ |
michael@0 | 100 | $FTDOC_PACKAGES" |
michael@0 | 101 | |
michael@0 | 102 | set -e |
michael@0 | 103 | unset passphrase |
michael@0 | 104 | |
michael@0 | 105 | PATH=/empty echo -n "Enter GPG passphrase: " |
michael@0 | 106 | stty -echo |
michael@0 | 107 | read -r passphrase |
michael@0 | 108 | stty echo |
michael@0 | 109 | echo |
michael@0 | 110 | |
michael@0 | 111 | for f in $PACKAGE_LIST; do |
michael@0 | 112 | if test ! -f $f; then |
michael@0 | 113 | echo "$0: Cannot find \`$f'" 1>&2 |
michael@0 | 114 | exit 1 |
michael@0 | 115 | else |
michael@0 | 116 | : |
michael@0 | 117 | fi |
michael@0 | 118 | done |
michael@0 | 119 | |
michael@0 | 120 | for f in $PACKAGE_LIST; do |
michael@0 | 121 | echo "Signing $f..." |
michael@0 | 122 | rm -f $f.sig |
michael@0 | 123 | echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f |
michael@0 | 124 | done |
michael@0 | 125 | |
michael@0 | 126 | FREETYPE_SIGNATURES= |
michael@0 | 127 | for i in $FREETYPE_PACKAGES; do |
michael@0 | 128 | FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig" |
michael@0 | 129 | done |
michael@0 | 130 | |
michael@0 | 131 | FT2DEMOS_SIGNATURES= |
michael@0 | 132 | for i in $FT2DEMOS_PACKAGES; do |
michael@0 | 133 | FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig" |
michael@0 | 134 | done |
michael@0 | 135 | |
michael@0 | 136 | FTDOC_SIGNATURES= |
michael@0 | 137 | for i in $FTDOC_PACKAGES; do |
michael@0 | 138 | FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig" |
michael@0 | 139 | done |
michael@0 | 140 | |
michael@0 | 141 | SIGNATURE_LIST="$FREETYPE_SIGNATURES \ |
michael@0 | 142 | $FT2DEMOS_SIGNATURES \ |
michael@0 | 143 | $FTDOC_SIGNATURES" |
michael@0 | 144 | |
michael@0 | 145 | scp $PACKAGE_LIST $SIGNATURE_LIST \ |
michael@0 | 146 | $SAVANNAH_USER@dl.sv.nongnu.org:/releases/freetype/ |
michael@0 | 147 | |
michael@0 | 148 | rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \ |
michael@0 | 149 | $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/ |
michael@0 | 150 | rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \ |
michael@0 | 151 | $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/ |
michael@0 | 152 | rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \ |
michael@0 | 153 | $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/ |
michael@0 | 154 | |
michael@0 | 155 | # EOF |
michael@0 | 156 | |
michael@0 | 157 | . Prepare a README for SourceForge and upload it with the following |
michael@0 | 158 | script (with updated `$VERSION' and $SOURCEFORGE_USER variables). |
michael@0 | 159 | |
michael@0 | 160 | #!/bin/sh |
michael@0 | 161 | |
michael@0 | 162 | VERSION=2.5.1 |
michael@0 | 163 | SOURCEFORGE_USER=wlemb |
michael@0 | 164 | |
michael@0 | 165 | ##################################################################### |
michael@0 | 166 | |
michael@0 | 167 | rsync -avP -e ssh README \ |
michael@0 | 168 | $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/ |
michael@0 | 169 | |
michael@0 | 170 | # EOF |
michael@0 | 171 | |
michael@0 | 172 | . On SourceForge, tag the just uploaded `ftXXX.zip' and |
michael@0 | 173 | `freetype-XXX.tar.bz2' files as the default files to download for |
michael@0 | 174 | `Windows' and `Others', respectively. |
michael@0 | 175 | |
michael@0 | 176 | . Copy the reference files (generated by `make dist') to |
michael@0 | 177 | |
michael@0 | 178 | <freetype-web git repository>/freetype2/docs/reference |
michael@0 | 179 | |
michael@0 | 180 | . Update the `freetype-web' repository. `git push' then automatically |
michael@0 | 181 | triggers an update of the public web pages within ten minutes, due |
michael@0 | 182 | to a cron script (on wl@freedesktop.org) that rsyncs with |
michael@0 | 183 | |
michael@0 | 184 | freedesktop.org://srv/freetype.freedesktop.org/www |
michael@0 | 185 | |
michael@0 | 186 | . Announce new release on freetype-announce@nongnu.org and to relevant |
michael@0 | 187 | newsgroups. |
michael@0 | 188 | |
michael@0 | 189 | ---------------------------------------------------------------------- |
michael@0 | 190 | |
michael@0 | 191 | Copyright 2003, 2005-2007, 2009, 2011-2013 by |
michael@0 | 192 | David Turner, Robert Wilhelm, and Werner Lemberg. |
michael@0 | 193 | |
michael@0 | 194 | This file is part of the FreeType project, and may only be used, |
michael@0 | 195 | modified, and distributed under the terms of the FreeType project |
michael@0 | 196 | license, LICENSE.TXT. By continuing to use, modify, or distribute |
michael@0 | 197 | this file you indicate that you have read the license and understand |
michael@0 | 198 | and accept it fully. |
michael@0 | 199 | |
michael@0 | 200 | |
michael@0 | 201 | --- end of release --- |