RELEASING
=========

When making a new release;

 - Verify that you don't have uncommitted changes; both:

     $ git diff HEAD

   and:

     $ git log master..origin/master

   should be empty.

 - Clean your work directory:

     $ git clean -xdf

   This ensures that you don't have stale files lying around.

 - Run:

     $ ./autogen.sh --enable-gtk-doc
     $ make all
     $ make check

   And verify that the code builds from a clean Git snapshot.

 - Update the release documentation:

     - NEWS: new feature details, bugs fixed, acknowledgements
     - README: dependencies, any behavioural changes relevant to
       developers;

   The commit the changes.

 - Bump clutter_micro_version to the next even number; if this is a stable
   release, bump up clutter_interface_version by one as well. Then commit
   the changes.

 - Run:

     $ make release-publish

   which will:

     - do sanity checks on the build
     - distcheck the release
     - tag the repository with the version number
     - upload the tarball to the remote server (needs SSH account)

 - Bump clutter_micro_version to the next odd number; if this is a stable
   release, bump up clutter_interface_version by one as well. Then commit
   the changes.

 - Push the branch and then the tag, e.g.:

     $ git push origin master
     $ git push origin 1.2.4

 - Announce release to the waiting world on the blog and mailing lists