Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  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-<version> -m "" -u <committer>
  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-<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.  
  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 ---
  217.