            On preparing the FreeFont package for release.

1)  Makefile

    The command
    	make
    will build the TrueType font files in the sfd directory.
    The command
        make package
    creates four archive files: one tarball of sources (SFD files), a zip
    of TrueType fonts, a tarball of OpenType fonts, and a zip of WOFF 
    format fonts. The naming convention is:

        freefont-src-yyyymmdd.tar.gz
        freefont-ttf-yyyymmdd.zip
        freefont-otf-yyyymmdd.tar.gz
        freefont-woff-yyyymmdd.zip

    where yyyymmdd is the year, month and date of release.

    The Makefile also has other targets, for building individual components
    of the distribution.

2)  Checking for font problems

    It is important to execute all the available tests before release,
    and make the fonts pass all of them.  Toward this goal the fonts
    should also be checked before commits.

    The first check is the FontForge "Verifiy" command.
    Beyond that are its checks in "Find Problems...".

    Several further FreeFont checks are executed by 
    	make tests

    Note that failure of some of these will result in visible problems
    when the font is used.  For example, failure of some of the "ATT"
    checks may cause whole font features in the lookups to be silently
    shut off by the font rendering software.

3)  Adding files to the download area

    The gnupload script, which has some connection to automake, is the 
    neatest way to upload files to Savannah.  You may have to acquire it
    from somebody.

    Requires 'ncftp'

    /bin/sh ~/bin/gnupload --to ftp.gnu.org:freefont freefont-otf-20080324.zip

    It prompts for a PGP password, creates the signature files required
    by the Savannah upload procedures, and uploads all of them.

4)  Creating detached signature file, as in the "raw" upload procedures:

    http://www.gnu.org/prep/maintain/maintain.html#Automated-Upload-Registration

    gpg -b freefont-ttf-20060126.zip

    This creates a "detached GPD binary signature" file freefont-ttf.tar.gz.sig

5)  Commiting a SVN file

    svn co svn+ssh://user_name@svn.savannah.gnu.org/freefont/trunk/freefont

    cd freefont/sfd
    svn commit FreeSans.sfd

6)  a) Tagging a release in SVN

    svn copy svn://svn.savannah.gnu.org/freefont/trunk \
               svn://svn.savannah.gnu.org/freefont/tags/RELEASE_20120503 \
	             -m "Tagging the 03.05.2012 release."

    b) Tagging a release in CVS

    cvs rtag RELEASE_TAG_NAME freefont

    Removing a tag

    cvs rtag -d RELEASE_TAG_NAME freefont

    Retrieving a tagged release

    cvs checkout -P -r RELEASE_TAG_NAME freefont

7)  Using Change Log mode in Emacs

    C-x 4 a adds a new entry to the change log file

8)  New release procedures
	Update the Changelog.
	Review the AUTHORS and CREDITS files for competeness.
        Ensure that "make tests" completes cleanly.

	Tag new releases with tag named RELEASE_date, where date is the date.
	Add release date field value to bug report field "Release".
	Upload the archive files to Savannah.

	Write to freefont-announce@gnu.org
	Write to info-gnu@gnu.org
	Write to pkg-fonts-devel@lists.alioth.debian.org, 
		and Debian freefont-ttf packager

	Mark "Fix in source" bug reports as "Fixed"

9) Adding ssh keys to Savannah
	Otherwise get errors like
		Permission denied (publickey).
		cvs [checkout aborted]: end of file from server
	Log in as Savannah project admin
	Click My Account Conf (from menu list on far left)
	Edit the (n) SSH Public Keys registered
	Paste in a public rsa key (can have up to 5)
	Click Update.

10) Adding binaries (such as TrueType fonts) to CVS, as for web pages
	Remember to add with the -kb flag,
		cvs add -kb myfont.ttf
	or it will mess the binary up and waste days of your life.

$Id: maintenance.txt 2267 2012-05-03 11:57:14Z Stevan_White $
