== 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`
. 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-<ver>.tgz --prefix=graphite2-<ver>/ <ver>`
. `git archive -o graphite2-minimal-<ver>.tgz --prefix=graphite2-<ver>/ <ve>
   include src LICENSE COPYING README.md`
. `sha1sum graphite2-<ver>.tgz graphite2-minimal-<ver>.tgz >
   graphite2-<ver>.sha1sum`
. Then push up to http://sf.net/projects/silgraphite/files/graphite2 and
  https://github.com/silnrsi/graphite/releases

=== 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.
