====== How to Perform Individual Releases ====== Please see https://docs.xfce.org/contribute/dev/make-a-release for an up to date documentation! ===== Bugfix Releases ===== Let's assume that Olivier wants to do a bugfix release of ''xfwm4'' and that the previous release has been ''xfwm4'' 4.6.0. \\ If the 4.6.0 release was done correctly, there should be an ''xfce-4.6'' branch in the ''xfwm4'' repository. \\ These are the steps Olivier needs to go through for a proper release of ''xfwm4'' 4.6.1: ==== Preparations ==== - Check out the stable branch with git checkout --track -b xfce-4.6 remotes/origin/xfce-4.6 - Synchronize the branch with the public repository (for translations and fixes committed by others): git pull --rebase - Make sure the application compiles and that ./autogen.sh --enable-gtk-doc ... && make distcheck works; commit build fixes as needed - Update the NEWS, AUTHORS, README, THANKS, HACKING etc. files - **If your ChangeLog is not generated automatically**, update the ChangeLog from git with git log > ChangeLog ==== Bumping the Version and Generating the Release Tarball ==== - Update the major, minor and micro version to ''4'', ''6'' and ''1'' in the configure template (e.g. ''configure.in.in'') - If the component is or contains a library and there were new symbols added since the last release, update the libtool version in the configure template - Remove the ''git'' from ''xfwm4_version_tag'' in the configure script template - Rebuild the translation files (''po/*.pot?'') to update Project-Id-Version and prevent problems during make distcheck with ./autogen.sh --enable-gtk-doc ... - Make sure everything builds fine; fix problems locally without committing: ./autogen.sh --enable-gtk-doc ... && make distcheck There should now be a release tarball in the root directory of the component called ''xfwm4-4.6.1.tar.bz2''. ==== Committing and Tagging the Release ==== - Commit all local changes with a commit subject like this: Release 4.6.1! - After the commit, create an annotated tag for the release with git tag -a xfwm4-4.6.1 You can also sign the tag with a GPG key by adding an additional parameter to the ''git tag'' command. For more information about tagging read the ''[[http://www.kernel.org/pub/software/scm/git/docs/git-tag.html|git-tag]]'' manual. - Push the release commit and the tag with git push && git push --tags ==== Uploading the Release Tarball and Sending Announcements ==== - Compute the SHA1 checksum of the ''xfwm4-4.6.1.tar.bz2'' tarball generated by the last run of ''make distcheck'' with sha1sum xfwm4-4.6.1.tar.bz2 - Open https://releases.xfce.org/ in your browser, log in with your Xfce HTTPS credentials - Click on ''Release New Version'' link next to your project (''xfwm4'' in this case) - Follow the instructions presented to you by the release manager software to upload the ''xfwm4-4.6.1.tar.bz2'' tarball with the SHA1 checksum you computed before * For the announcements, please only pick mailing lists that make sense. Everything should be announced on ''announce@xfce.org'' and ''xfce@xfce.org''. Software affecting developers should be announced on ''xfce4-dev@xfce.org'' in addition, and so on. ==== After the Release ==== - Add the ''git'' back to ''xfwm4_version_tag()'' in the configure template; commit the change - Don't forget to add the version to your project on http://bugzilla.xfce.org/ - You might want to update the following websites: * Freshmeat * Gnomefiles * others - Switch back to the development branch using git checkout master - Celebrate ===== Development Releases =====