Introduction
This is a short summary for the steps to release a new version of KMess.
Note it's recommended to compile KMess in a slackware 10.0 buildroot. It doesn't have to be a compile system, just enough files to compile.
Some weeks before the release
- When the featureset for your release is done, and only bug-fixes are going to be done before releasing, enter string freeze.
- Update the kmess.pot file, with the SVN /po/ folder tools, maketrans/mergetrans.
- Look at the latest translators from SVN here and here to find out which translators have to be contacted.
- Send them a mail telling that the latest version is going to be released soon, and politely ask them if they can contribute again by translating the app; also offering a quick direct link to download the latest kmess.pot file like this.
- Add translations as they come :)
Before branching
Files to update
- Files which need to be updated:
- ChangeLog
- NEWS
- FEATURES
- AUTHORS (for translations)
- Make sure the authors, contributors and translator names are up to date in:
- the about dialog (main.cpp).
- the docbook manual
- the website's people page
- Set <UI version="3.1" ..> in *.ui files. check using:
find . -name *.ui | xargs grep 'version='
- If the default build type is set in the main CMakeLists.txt, comment it out, to default to a release build.
- Run includemocs
Testing the application
- Create an new user account to start with an clean fresh ~/.kde folder.
- Test the contact list:
- creating a group
- creating a contact
- moving a contact
- copying a contact
- removing a contact from a group
- removing a contact completely
- Test P2P support with new clients.
- Test receiving / sending of:
- pictures
- emoticons
- files
- Fake various situations:
- sending a second file over the same direct connection (should re-use the DC).
- sending two file invitations at the same time (should wait until the DC is up).
- aborting a file transfer by the sender.
- aborting a file transfer by the receiver.
- have a slow DC invitation startup (should start file transfer after some timeout).
- close the DC half-way the transfer (should continue over the SB).
- let the DC fail to write a message (should resend it over the SB).
- Check the logs for warnings.
- Clients to test with:
- Windows Live Messenger
- MSN 7.5 (optional)
- aMSN
- Pidgin-IM
- Kopete.
- e-messenger
- Mercury Messenger
- emesene
- Test receiving / sending of:
- Test right-to-left support with chat styles:
cd kmess/styles for i in */*.xsl; do name=`dirname $i`; xsltproc $i examplemessage.xml > $name/test.html; done konqueror */test.html
- Test for memory leaks.
- Review the manual for missing items.
- Create screenshots, both for the manual and website later on.
- Make sure the code compiles against KDE 3.2 (e.g. using Slackware 10.0).
- Add release tagline to:
- ChangeLog
- NEWS
Branching
- create a branch for the release
ver="1.5" svn copy http://kmess.svn.sourceforge.net/svnroot/kmess/trunk/kmess http://kmess.svn.sourceforge.net/svnroot/kmess/branches/kmess/kmess-$ver.x
- Update version in:
- configure.in.in
- Doxyfile
- kmess.spec
- kmess.lsm
- autopackage/default.apspec
- cmake/config-kmess.h.in
Releasing
Building the tarball
- Checkout SVN in a fresh directory:
ver="1.5" mkdir kmess-$ver svn checkout http://kmess.svn.sourceforge.net/svnroot/kmess/branches/kmess/kmess-$ver.x kmess-$ver
- Create or update the configure script: This also updates version from configure.in.in.
cd kmess-$ver/ make -f Makefile.dist
- Remove autom4te.cache.
rm -Rf autom4te.cache chown -R root:root .
- Create the tarball.
cd .. rm -f kmess-$ver.tar.gz tar zcvf kmess-$ver.tar.gz --exclude=.svn kmess-$ver/
- Verify whether it compiles with KDE 3.2. This can be done in Slackware 10.0, using:
rpmbuild -tb kmess-$ver.tar.gz
When it doesn't work, commit fixes to SVN and start over. This avoids releasing the wrong code. - Build the autopackage:
cd kmess-$ver/ makeinstaller make clean cd ..
- Create the slackware package for klik://
rpmbuild -tb "kmess-$ver.tar.gz"
- Port all fixes in the branch over to trunk.
- Finally tag the version in SVN:
svn copy http://kmess.svn.sourceforge.net/svnroot/kmess/branches/kmess/kmess-$ver.x http://kmess.svn.sourceforge.net/svnroot/kmess/tags/kmess/kmess-$ver
Uploading
- Write a good announcement. Look at previous versions. Copy this in Kate (or some notepad), you'll need it many times to create each package with the file releases.
- FTP the files to upload.sourceforge.net
- One source tarball
- The autopackage installer
- The slackware 10.0 package for klik://
- Add them to the file releases in the admin panel.
- The "ChangeLog" entry should contains the items of the NEWS file.
- The description should contain the hand-written announcement.
- Use the same package type + architecture as previous releases.
After the release
Updating the website
- Update ./resources/version.xml
- Run make
- See if the new download links are correct.
- Update the screenshots
- Move the old screenshots to a new plain page.
- Update the screenshots in the visual guide.
- Make sure the Changelogs appear (should happen by make parsing the latest NEWS file)
- Update the homepage text, move old releases to the archive.
- Upload the contents
make make upload
The announcement
- Update the sites:
- freshmeat
- kde-apps.org (also posts at kde-announce-apps () kde ! org nowadays)
- autopackage
- klik://
- Wikipedia
- sourceforge
- Post an announcement to kmess-devel () lists.sourceforge ! net. For a good example, see the attached example of Decibel.
Previous announcements
Attachments
-
releasenotes_0.4.0.txt
(5.4 kB) - added by diederik
16 months ago.
Example of a good announcement
-
create-release.sh
(1.7 kB) - added by diederik
10 months ago.
More automated building of the release
