RELEASING ========= When making a new release; - Verify that you don't have uncommitted changes; both: $ git diff HEAD and: $ git diff --stat 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 --enable-profile --enable-gles1 --enable-gles2 --enable-gl --enable-xlib-egl-platform --enable-glx $ make all $ make install And verify that the code builds and installs from a clean Git snapshot. - Run checks including running the conformance tests: $ make check - Test with all of the pipeline backends: $ COGL_DEBUG=disable-arbfp make check $ COGL_DEBUG=disable-arbfp,disable-fixed make check - Test with the GLES2 driver: $ COGL_RENDERER=EGL_XLIB COGL_DRIVER=gles2 \ bash -c 'for x in `./tests/conform/test-conformance -l`; do ./tests/conform/test-conformance -p $x > /dev/null \ || echo "FAILED: $x"; done' Note that some of these tests are currently known to fail. Please make a note of these failures in the release notes and verify that no new failures have appeared since the last release. - Test with Clutter: Since we haven't migrated all the Cogl unit tests from Clutter yet, you should now build Clutter against Cogl and run the conformance tests: $ ./autogen.sh $ make all $ make test - Test cross-compiling for Windows: Please use the build/mingw/mingw-fetch-dependencies.sh with a fresh build directory to make sure that all of the download links still work. - Update the release documentation: - NEWS: new feature details, bugs fixed, acknowledgements - Use git shortlog -n -s to get the list of authors - The following bash snippet may help with extracting the list of bugs closed: URLS=$(git log $1|grep bugzilla|sort|uniq) for i in $URLS do ID=$(echo $i|cut -d'=' -f2) TITLE=$(wget --quiet -O - $i|grep -e '.*'|sed -e 's/Bug [0-9]\+ – \(.*\)<\/title>/\1/') echo " #$ID - $TITLE" done - README: dependencies, any behavioural changes relevant to developers; then commit the changes. - Read the release comments in configure.ac - Bump cogl_1_minor_version to the next even number - Don't change the 2.0 version number - Update the libtool versioning - Update the cogl_release_status status to "release" or "snapshot" as appropriate. - 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 cogl_1_micro_version to the next odd number - Revert cogl_release_status to "git" - Push the branch and then the tag, e.g.: $ git push origin master $ git push origin 1.7.0 - Announce release to the waiting world on the blog and mailing lists. Use the template printed by `make release-publish`.