Xfce Wiki

Sub domains
 

This is an old revision of the document!


Making a Release

Before you start with this, make sure you understand the release model all developers should follow for core components.

Version Numbering

Stable releases

Stable releases are created from the stable branch of the repository. So before you start make sure you are working in this branch.

# get the stable branch
git checkout --track -b xfce-4.10 remotes/origin/xfce-4.10
 
# pull the latest changes
git pull --rebase

Now make sure all the bug fixes are committed and pushed to the remote repository. You can check this at git.xfce.org as well.

For the version number the micro version is increased by 1. So 4.10.2 becomes 4.10.3.

Development releases

Unstable releases are created from the master branch, which is in this period in feature-freeze. There we use an odd minor number. So the first development release is for example 4.11.0, then 4.11.1 etc.

Build the tarball

If you are sure all the fixes are committed in the correct branch, its time to prepare the release.

Update NEWS

Update the NEWS, AUTHORS, README, THANKS, HACKING etc. files to credits are given where due.

Update version number

Open configure.ac.in or configure.in.in and update the version number. Also remove git from the ?_version_tag variable.

Update the ChangeLog

All core modules have a Makefile.am rule to generate the ChangeLog during distcheck. But if this is not the case, either add the rule or dump the git log in the ChangeLog

# put the git log in ChangeLog
git log > ChangeLog
 
# commit
git commit ChangeLog -m "Update ChangeLog"
 
# send to remote
git push

Compile the code

./autogen.sh --enable-gtk-doc
make distcheck

If everything is ok distcheck will tell you the abc.x.y.z.tar.bz2 tarball is ready. If not fix the error(s) and commit the changes before running distcheck again.

Tag release

If the tarball is build successfully, it is time to tag the release in GIT.

# make sure there are not pending changes
git status
 
# if not, commit them
git commit -a -m "Updates for the x.y.z release." && git push
 
# tag the release (annotated tag is required)
git tag -a abc.x.y.z
 
# send tag to remote
git push --tags abc.x.y.z

For more information read the git tag manual.

Upload the tarball

  1. Open https://releases.xfce.org/ in your browser, log in with your Xfce HTTPS credentials.
  2. Click on Release New Version link next to your project.
  3. Follow the instructions presented to you by the release manager software to upload the abc.x.y.z.tar.bz2 tarball with the SHA1 checksum you can generate with sha1sum abc.x.y.z.tar.bz2 in a terminal.
    • For the announcements, please only pick mailing lists that make sense. Everything should be announced on announce@xfce.org and xfce@xfce.org.
  4. Make a nice summary of the new features or just paste the contents of the NEWS file.

Post release

  1. Add the git back to ?_version_tag() in the configure.am.in file, commit and push the change.
  2. Don't forget to add the version to your project on http://bugzilla.xfce.org/.
  3. Possibly switch back to the master branch.
  4. Celebrate 8-).