Xfce Wiki

Sub domains
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
contribute:dev:make-a-release [2014/03/05 15:44] – [Update the ChangeLog] nickcontribute:dev:make-a-release [2023/02/24 10:04] (current) – [Making a Release] skunnyk
Line 1: Line 1:
 +~~NOTOC~~
 ====== Making a Release ====== ====== Making a Release ======
  
-Before you start with this, make sure you understand the [[http://www.xfce.org/about/releasemodel|release model]] all developers should follow for core components.+  * **[[#Version Numbering|Version Numbering]]** 
 +  * **[[#Build the tarball|Build the tarball]]** 
 +  * **[[#Tag release|Tag release]]** 
 +  * **[[#Upload the tarball|Upload the tarball]]** 
 +  * **[[#Post release|Post release]]** 
 + 
 +Before you start with this, make sure you understand the [[https://www.xfce.org/about/releasemodel|release model]] all developers should follow for core components. 
 + 
 +<note important>Note that xfce provides [[https://gitlab.xfce.org/xfce/xfce4-dev-tools/-/blob/master/helpers/xfce-do-release.in|xfce-do-release]], an automated release-script which guides you through all steps required to release a xfce component. 
 + 
 +That prevents mistakes and helps to get a clean build (by building in a container). It will catch all translation updates and pre-write a NEWS file for you by using the commit messages. Best use it over the manual release process when possible. 
 + 
 +Install 'xfce4-dev-tools' to make use of it !</note> 
 + 
 +----
  
 ===== Version Numbering ===== ===== Version Numbering =====
Line 11: Line 26:
 <file bash> <file bash>
 # get the stable branch # get the stable branch
-git checkout --track -b xfce-4.10 remotes/origin/xfce-4.10+git checkout --track -b xfce-4.14 remotes/origin/xfce-4.14
  
 # pull the latest changes # pull the latest changes
Line 17: Line 32:
 </file> </file>
  
-Now make sure all the bug fixes are committed and pushed to the remote repository. You can check this at [[http://git.xfce.org|git.xfce.org]] as well.+Now make sure all the bug fixes are committed and pushed to the remote repository. You can check this at [[http://gitlab.xfce.org|gitlab.xfce.org]] as well.
  
-For the version number the //micro// version is increased by 1. So 4.10.2 becomes 4.10.3.+For the version number the //micro// version is increased by 1. So 4.12.2 becomes 4.12.3.
  
 ==== Development releases ==== ==== 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.+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.15.0, then 4.15.1 etc. 
 + 
 +[[|Back to Top]] 
 +----
  
 ===== Build the tarball ===== ===== Build the tarball =====
Line 29: Line 47:
 If you are sure all the fixes are committed in the correct branch, its time to prepare the release. If you are sure all the fixes are committed in the correct branch, its time to prepare the release.
  
-==== Update NEWS ====+==== Update NEWS, Release Notes, & Translations  ====
  
-Update the NEWSAUTHORSREADMETHANKSHACKING etcfiles to credits are given where due.+As of Xfce version 4.15.0[[https://gitlab.xfce.org/xfce/xfce4-dev-tools|xfce-dev-tools]] contains several Bash helper scripts to assist in building your release:  
 + 
 +  * **[[https://gitlab.xfce.org/xfce/xfce4-dev-tools/-/blob/master/helpers/xfce-do-release|xfce-do-release]] ** - Main helper script. Checks versionstagscommits and pushes changeslogs into and uploads to release manager. 
 +  * **[[https://gitlab.xfce.org/xfce/xfce4-dev-tools/-/blob/master/helpers/xfce-get-release-notes|xfce-get-release-notes]] ** - Complementary to xfce-get-translations and gets all the commits that aren't translation updates. 
 +  * **[[https://gitlab.xfce.org/xfce/xfce4-dev-tools/-/blob/master/helpers/xfce-get-translations|xfce-get-translations]] ** - Gets all language updates to a repository since a specified commit or tag. 
 +  * **[[https://gitlab.xfce.org/xfce/xfce4-dev-tools/-/blob/master/helpers/xfce-update-news|xfce-update-news]] **
  
 ==== Update version number ==== ==== Update version number ====
  
-Open ''configure.ac.in'' or ''configure.in.in'' and update the version numberAlso remove ''git'' from the ''?_version_tag'' variable.+  - 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 ==== +==== Compile the code ====
- +
-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+
  
 <file bash> <file bash>
-# put the git log in ChangeLog +./autogen.sh --enable-gtk-doc 
-git log > ChangeLog +make distcheck
- +
-# commit +
-git ci ChangeLog -m "Update ChangeLog" +
- +
-# send to remote +
-git push+
 </file> </file>
-==== 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 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.
 +
 +[[|Back to Top]]
 +----
  
 ===== Tag release ===== ===== Tag release =====
  
-If the tarball is build successfully, it is time to tag the release in GIT.+If the tarball is build successfully, it is time to tag the release in git.
  
-  # make sure there are not pending changes +<file bash> 
-  git status +# 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 [[http://git-scm.com/docs/git-tag|git tag manual]].+# 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 
 +</file> 
 + 
 +For more information read the [[https://git-scm.com/docs/git-tag|git tag manual]]. 
 + 
 +[[|Back to Top]] 
 +----
  
 ===== Upload the tarball ===== ===== Upload the tarball =====
Line 81: Line 103:
   - Click on ''Release New Version'' link next to your project.   - Click on ''Release New Version'' link 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.bz2'' in a terminal.   -  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.+    * For the announcements, please only pick mailing lists that make sense. Everything should be announced on xfce-announce@xfce.org and xfce@xfce.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 ''NEWS'' file.   - Make a nice summary of the new features or just paste the contents of the ''NEWS'' file.
 +
 +[[|Back to Top]]
 +----
  
 ===== Post release ===== ===== Post release =====
  
   - Add the ''git'' back to ?_version_tag() in the ''configure.am.in'' file, commit and push the change.   - Add the ''git'' back to ?_version_tag() in the ''configure.am.in'' file, commit and push the change.
-  - Don't forget to add the version to your project on [[http://bugzilla.xfce.org/]]. 
   - Possibly switch back to the ''master'' branch.   - Possibly switch back to the ''master'' branch.
   - Celebrate  8-).   - Celebrate  8-).
  
 +[[|Back to Top]]
 +----
 +[[:contribute:dev:start:|Back to main Xfce Development Information page]]