== Release Process ==

These notes are not necessarily part of the manual. They are here for code developers to remember to do the right thing when it comes to release day.

. make and make docs
. make fuzztest and check .log file results
. The first line of the Changelog must be the version number. This is so that packagers can extract the version number from the source.
. Make sure the version numbers in the #defines reflect the release number in includes/graphite2/Font.h
. Make sure the libtool version numbers are correct in src/CMakeLists.txt
. Test build perl wrapper
. Update debian-src/changelog with version of x.y.z-1~palaso1
. Ensure the build.palaso.org gives a clear build for all Graphite targets including Linux packages.
. Run the build.palaso.org Graphite Linux Packages - tarball manually. This triggers the debian package builds.

=== Distribution locations ===

The release is done by:

. git tag -s <version>
. git archive -o graphite2-<version>.tgz --prefix=graphite2-<version>/ <version>
. git archive -o graphite2-minimal-<version>.tgz --prefix=graphite2-<version>/ <version> include src LICENSE COPYING README.md
. sha1sum graphite2-<version>.tgz graphite2-minimal-<version>.tgz > graphite2-<version>.sha1sum
. Then push up to sf.net/projects/silgraphite and projects.palaso.org/graphiteng-dev

=== How to do a test pdebuild ===

Here's a sample script to do from the project root directory.

----
mkdir debianbuild
cd debianbuild
cp ../graphite2-x,y.z.tgz graphite_x.y.z.orig.tar.gz
mkdir build
cd build
cp -a ../../debian-src debian
pdebuild
----

== Anticipated API Changes ==

Here are the things we will probably change in the API once we come to the conclusion that we have got to change the API for some really important reason.


