RELEASING ========= When making a new release; == Add version defines + macros if applicable == - If it's a new stable release that increments the Cogl minor version remember to add a new COGL_VERSION_1_X define to cogl/cogl-version.h and update cogl/cogl-macros.h accordingly == Update the documentation == - Update the NEWS with: - 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: - Grep the source code for "XXX: ONGOING BUG" and add a section about workarounds for un-resolved upstream bugs. 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. == Update the package version == - Read the release comments in configure.ac - Bump cogl_1_micro_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. == Test the 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-wayland-egl-platform --enable-glx \ --enable-wayland-egl-server --enable-cogl-gst $ 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 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. == Make the release == - Run: $ make release-publish Note: if you want to break this into multiple steps see build/autotools/Makefile.am.release for details. You may prefer to first `make release-check` and then manually use `make release-tag`, `make release-upload` and `make release-message`. `make release-publish` 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) == Prepare for the next development branch == - 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`.