Making a Release
Before you start with this, make sure you understand the release model all developers should follow for core components.
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.12 remotes/origin/xfce-4.12 # 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.12.2 becomes 4.12.3.
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 the NEWS, AUTHORS, README, THANKS, HACKING etc. files to credits are given where due.
Update version number
- Edit the configure script template configure.ac.in.
- Set the package version (<package>_version_major, <package>_version_minor and <package>_version_micro) to the version you want to release.
- Remove git from <package>_version_tag.
- Check the build dependencies.
Update the ChangeLog
All core modules have a
Makefile.am rule to generate the
ChangeLog during distcheck. If this is not the case, add the rule to the Makefile.am file (see https://git.xfce.org/xfce/libxfce4ui/tree/Makefile.am#n20 for an example)
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.
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
- Open https://releases.xfce.org/ in your browser, log in with your Xfce HTTPS credentials.
- Click on
Release New Versionlink next to your project.
- 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.bz2in a terminal.
- For the announcements, please only pick mailing lists that make sense. Everything should be announced on email@example.com and firstname.lastname@example.org.
- Please note that you MUST subscribe to the announce mailling list before doing a release. Your first release mail need to be moderated by a list admin.
- Make a nice summary of the new features or just paste the contents of the
- Add the
gitback to ?_version_tag() in the
configure.am.infile, commit and push the change.
- Don't forget to add the version to your project on https://bugzilla.xfce.org/.
- Possibly switch back to the
- Add the version to the bugzilla component.
- Celebrate .