PIM/Akonadi/Release Howto: Difference between revisions

From KDE Community Wiki
< PIM‎ | Akonadi
(git command for tarball creation)
(partial update to git)
Line 2: Line 2:


== Step 1: Changelog, NEWS, version number ==
== Step 1: Changelog, NEWS, version number ==
{{warning|This needs to be ported to Git!}}


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):
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):
Line 20: Line 22:
== Step 2: Tagging/Branching ==
== 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:
Tagging a major (pre-)release, i.e. a release from master is done with the following commands:
 
<code bash>
svn cp $SVNPROTOCOL://[email protected]/home/kde/trunk/kdesupport/akonadi $SVNPROTOCOL://[email protected]/home/kde/tags/akonadi/x.y.z
</code>


<code bash>
<code bash>
git checkout master
git checkout master
git tag vx.y.z
git tag vx.y.z
git push
git push --tags
git push --tags
</code>
</code>
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:
For a stable release, that is a release from a stable branch, the command looks like this:


<code bash>
<code bash>
svn cp $SVNPROTOCOL://[email protected]/home/kde/branches/akonadi/x.y $SVNPROTOCOL://[email protected]/home/kde/tags/akonadi/x.y.z
git checkout x.y
git tag vx.y.z
git push
git push --tags
</code>
</code>




=== Update the kdesupport-for-4.x tag ===
=== Update the kdesupport-for-4.x tag ===
{{warning|This needs to be ported to Git!}}


It might also be needed to update the latest kdesupport-for-4.x tag with the new release. Use the following commands for that:
It might also be needed to update the latest kdesupport-for-4.x tag with the new release. Use the following commands for that:
Line 52: Line 53:


=== Creating a new stable branch ===
=== Creating a new stable branch ===
{{warning|This needs to be ported to Git!}}


A new stable branch is created by the following command:
A new stable branch is created by the following command:
Line 65: Line 68:
== Step 3: Tarball Creation ==
== Step 3: Tarball Creation ==


You need the tarball creation script from ''kdesdk'' for that.
Run the following command to create the tarball:
 
<code bash>
cd KDE/kdesdk/scripts/createtarball
</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
docs        = no
translations= no
remove      = makechangelog
</code>
 
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
docs        = no
translations= no
remove      = makechangelog
</code>
 
Then, run the ''create_tarball'' script:
 
<code bash>
./create_tarball.rb -u $SVNUSER -a akonadi
</code>
 
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?
 


<code bash>
<code bash>

Revision as of 14:45, 19 December 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

Warning

This needs to be ported to Git!


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 master is done with the following commands:

git checkout master git tag vx.y.z git push git push --tags

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

git checkout x.y git tag vx.y.z git push git push --tags


Update the kdesupport-for-4.x tag

Warning

This needs to be ported to Git!


It might also be needed to update the latest kdesupport-for-4.x tag with the new release. Use the following commands for that:

svn rm $SVNPROTOCOL://[email protected]/home/kde/tags/kdesupport-for-4.x/akonadi svn cp $SVNPROTOCOL://[email protected]/home/kde/tags/akonadi/x.y.z $SVNPROTOCOL://[email protected]/home/kde/tags/kdesupport-for-4.x/akonadi

Creating a new stable branch

Warning

This needs to be ported to Git!


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

Run the following command to create the tarball:

git archive --format=tar --prefix=akonadi-x.y.z/ vx.y.z | bzip2 -9 > akonadi-x.y.z.tar.bz2

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: Announcements

Update channel topic on #akonadi.

TODO

Step 7: Dirk

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