Difference between revisions of "PIM/Akonadi/Release Howto"
m |
m (38 revisions imported) |
||
(27 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
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. | 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 | + | == Step 0: Make sure all unit tests pass == |
− | Run the | + | Run make test every time before committing and especially before making a release to avoid the embarassing emails from Jenkins. Seriously, how hard is it to remember this? |
− | + | == Step 1: Changelog, NEWS, version number == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | First, update the NEWS file. It should contain a high-level summary of the changes since the last release. | ||
+ | To obtain the full log of all changes since the last release, run the following command or have a look in ''gitk'': | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | git log vx.y.(z-1).. | ||
+ | </syntaxhighlight> | ||
+ | Finally, update the version number in the top-level CMakeLists.txt and Mainpage.dox and commit/push all your changes. | ||
== Step 2: Tagging/Branching == | == Step 2: Tagging/Branching == | ||
− | Tagging a major (pre-)release, i.e. a release from | + | Tagging a major (pre-)release, i.e. a release from master is done with the following commands: |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | git checkout master | ||
+ | git tag -a vx.y.z -m "Akonadi x.y.z" | ||
+ | git push | ||
+ | git push --tags | ||
+ | </syntaxhighlight> | ||
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: | ||
− | < | + | <syntaxhighlight lang="bash"> |
− | + | git checkout x.y | |
− | </ | + | git tag -a vx.y.z -m "Akonadi x.y.z" |
+ | git push | ||
+ | git push --tags | ||
+ | </syntaxhighlight> | ||
=== Creating a new stable branch === | === Creating a new stable branch === | ||
Line 39: | Line 40: | ||
A new stable branch is created by the following command: | A new stable branch is created by the following command: | ||
− | < | + | <syntaxhighlight lang="bash"> |
− | + | git checkout -b x.y | |
− | </ | + | # do modifications as described above |
+ | git push origin x.y | ||
+ | </syntaxhighlight> | ||
Afterwards perform the following steps: | Afterwards perform the following steps: | ||
− | * increment the version number in | + | * increment the version number in master |
− | |||
− | == Step | + | == Step 2.5: Get translations == |
− | + | Ping Albert, he will show you how to do it. Then update this guide so that we don't have to ping him again. | |
− | + | == Step 3: Tarball Creation == | |
− | |||
− | |||
− | + | Run the following command to create the tarball: | |
− | < | + | <syntaxhighlight lang="bash"> |
− | + | git archive --format=tar --prefix=akonadi-x.y.z/ vx.y.z | bzip2 -9 > akonadi-x.y.z.tar.bz2 | |
− | + | </syntaxhighlight> | |
− | --- | ||
− | |||
− | |||
− | + | == Step 4: Upload == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Upload the tarball to ftp://upload.kde.org/incoming/, using e.g. the following command: | |
− | < | + | <syntaxhighlight lang="bash"> |
− | ./ | + | ftp -u ftp://upload.kde.org/incoming/ akonadi-x.y.z.tar.bz2 |
− | </ | + | </syntaxhighlight> |
− | + | Afterward, create a KDE Sysadmin ticket at https://sysadmin.kde.org/tickets/ (department "download.kde.org") and fill in the following information in the form: | |
− | + | * Name of the tarball: akonadi-x.y.z.tar.bz2 | |
− | + | * SHA-256 sums for the tarball | |
− | + | * Intended destination is stable/akonadi/src/. | |
− | |||
− | |||
− | |||
− | + | Wait for the request to be processed (you'll get an email notification) and the mirrors to propagate the new file (~2h). | |
== Step 5: Bugzilla == | == Step 5: Bugzilla == | ||
Line 124: | Line 86: | ||
TODO | TODO | ||
− | == Step 7: Dirk == | + | == Step 7: <s>Dirk</s>Albert == |
− | Finally, apologize to Dirk for being late again with the release ;-) | + | Finally, apologize to <s>Dirk</s>Albert for being late again with the release ;-) |
[[Category:Akonadi]] [[Category:PIM]] | [[Category:Akonadi]] [[Category:PIM]] |
Latest revision as of 13:01, 11 March 2016
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 0: Make sure all unit tests pass
Run make test every time before committing and especially before making a release to avoid the embarassing emails from Jenkins. Seriously, how hard is it to remember this?
Step 1: Changelog, NEWS, version number
First, update the NEWS file. It should contain a high-level summary of the changes since the last release. To obtain the full log of all changes since the last release, run the following command or have a look in gitk:
git log vx.y.(z-1)..
Finally, update the version number in the top-level CMakeLists.txt and Mainpage.dox and commit/push 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 -a vx.y.z -m "Akonadi x.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 -a vx.y.z -m "Akonadi x.y.z"
git push
git push --tags
Creating a new stable branch
A new stable branch is created by the following command:
git checkout -b x.y
# do modifications as described above
git push origin x.y
Afterwards perform the following steps:
- increment the version number in master
Step 2.5: Get translations
Ping Albert, he will show you how to do it. Then update this guide so that we don't have to ping him again.
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 to ftp://upload.kde.org/incoming/, using e.g. the following command:
ftp -u ftp://upload.kde.org/incoming/ akonadi-x.y.z.tar.bz2
Afterward, create a KDE Sysadmin ticket at https://sysadmin.kde.org/tickets/ (department "download.kde.org") and fill in the following information in the form:
- Name of the tarball: akonadi-x.y.z.tar.bz2
- SHA-256 sums for the tarball
- Intended destination is stable/akonadi/src/.
Wait for the request to be processed (you'll get an email notification) and the mirrors to propagate the new file (~2h).
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: DirkAlbert
Finally, apologize to DirkAlbert for being late again with the release ;-)