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