PIM/Akonadi/Release Howto: Difference between revisions

From KDE Community Wiki
< PIM‎ | Akonadi
Line 55: Line 55:
</code>
</code>


Edit ''config.ini'' to use the right version, in the ''[akonadi]'' section. Then, run the ''create_tarball'' script:
Unfortunately, the ''createtarball'' script only works for modules in trunk, not for branches. So, you need the following minor patch for it:
 
<code diff>
Index: create_tarball.rb
===================================================================
--- create_tarball.rb  (revision 1056922)
+++ create_tarball.rb  (working copy)
@@ -88,7 +88,7 @@
 
############# START #############
 
-svnroot    = "#{svnbase}/trunk"
+svnroot    = "#{svnbase}/"
kde_version  = `svn ls svn://anonsvn.kde.org/home/kde/tags/KDE | sort | tail -n1 | cut -d "/" -f1`.chomp
#kde_version = '4.0.4'
</code>
 
Next, edit ''config.ini'' to contain the following for releases from trunk:
 
<code ini>
[akonadi]
mainmodule  = trunk/kdesupport
submodule  = akonadi
wholeModule = yes
version     = x.y.z
translations= no
remove      = makechangelog
</code>
 
Note that release from trunk work without the patch, in this case you have to remove the ''trunk/'' prefix from the ''mainmodule'' entry.
 
For releases from the branch, ''config.ini'' needs to contain the following:
 
<code ini>
[akonadi]
mainmodule  = branches/akonadi
submodule  = x.y
wholeModule = yes
version    = x.y.z
translations= no
remove      = makechangelog
</code>
 
Then, run the ''create_tarball'' script:


<code bash>
<code bash>
Line 64: Line 107:


Wait a bit and check the tarball created in the current directory. Should be ''akonadi-x.y.z.tar.bz2''.
Wait a bit and check the tarball created in the current directory. Should be ''akonadi-x.y.z.tar.bz2''.
TODO: can we simplify this by e.g. using CPack?


== Step 4: Upload ==
== Step 4: Upload ==

Revision as of 09:14, 20 January 2010

How to do a release of the Akonadi server? I ask that myself and then Tom every time I have to do it. So, finally document that here.

Step 1: Changelog, NEWS, version number

Run the makechangelog script in the source directory (which either is trunk or branches/akonadi/<version> depending on if you are doing a major (pre-)release or a minor one):

sh makechangelog

That will add all revisions since the last time to the ChangeLog file.


Next step is to update the NEWS file, run svn diff ChangeLog and summarize the changes for that.


Finally, update the version number in the top-level CMakeLists.txt and commit all your changes.


Step 2: Tagging/Branching

Tagging a major (pre-)release, i.e. a release from trunk is done with the following (server side and thus fast) svn command:

svn cp $SVNPROTOCOL://[email protected]/home/kde/trunk/kdesupport/akonadi $SVNPROTOCOL://[email protected]/home/kde/tags/akonadi/x.y.z

Obviously, replace protocol, username and version with appropriate values.


For a stable release, that is a release from a stable branch, the command looks like this:

svn cp $SVNPROTOCOL://[email protected]/home/kde/branches/akonadi/x.y $SVNPROTOCOL://[email protected]/home/kde/tags/akonadi/x.y.z

Creating a new stable branch

A new stable branch is created by the following command:

svn cp $SVNPROTOCOL://[email protected]/home/kde/trunk/kdesupport/akonadi $SVNPROTOCOL://[email protected]/home/kde/branches/akonadi/x.y

Afterwards perform the following steps:

  • increment the version number in trunk
  • adapt the SVN url in the makechangelog script in the new branch

Step 3: Tarball Creation

You need the tarball creation script from kdesdk for that.

cd KDE/kdesdk/scripts/createtarball

Unfortunately, the createtarball script only works for modules in trunk, not for branches. So, you need the following minor patch for it:

Index: create_tarball.rb

=======================================================

--- create_tarball.rb (revision 1056922) +++ create_tarball.rb (working copy) @@ -88,7 +88,7 @@

############# START #############

-svnroot = "#{svnbase}/trunk" +svnroot = "#{svnbase}/"

kde_version  = `svn ls svn://anonsvn.kde.org/home/kde/tags/KDE | sort | tail -n1 | cut -d "/" -f1`.chomp
#kde_version = '4.0.4'

Next, edit config.ini to contain the following for releases from trunk:

[akonadi] mainmodule = trunk/kdesupport submodule = akonadi wholeModule = yes version = x.y.z translations= no remove = makechangelog

Note that release from trunk work without the patch, in this case you have to remove the trunk/ prefix from the mainmodule entry.

For releases from the branch, config.ini needs to contain the following:

[akonadi] mainmodule = branches/akonadi submodule = x.y wholeModule = yes version = x.y.z translations= no remove = makechangelog

Then, run the create_tarball script:

./create_tarball.rb -u $SVNUSER -a akonadi

Add a -w there if you are using https instead of ssh to access subversion.

Wait a bit and check the tarball created in the current directory. Should be akonadi-x.y.z.tar.bz2.

TODO: can we simplify this by e.g. using CPack?

Step 4: Upload

Upload the tarball somewhere and notify Tom or Volker to move it to http://download.akonadi-project.org/ (unless you are one of those two, then upload directly).

Step 5: Bugzilla

Log into http://bugs.kde.org/, chose Edit Products -> Akonadi -> Add version and add the version you just released.

Step 6: Dirk

Finally, apologize to Dirk for being late again with the release ;-)