Introduction
This is a short summary for the steps to release a new version of KMess.
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; a nice extra is offering a quick direct link to download the latest kmess.pot file like this.
- Add translations as they come :)
Testing the application
Before a release can be done, make sure KMess passes all of the following tests:
- Create an new user account to start with a 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
- Meebo
- 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, for both the manual and website's Screenshots page.
- Make sure the code compiles against your version's minimum requirements: e.g. for KMess 2.0, Qt 4.4.0 and KDE 4.1
Before branching
Files to update
- Files which need to be updated (remember to also update the version number):
- ChangeLog
- NEWS
- FEATURES
- Optionally, also the package creation descriptor files: kmess.spec, kmess.lsm, autopackage/default.apspec
- Add release tagline to:
- ChangeLog
- NEWS
- Make sure the authors, contributors and translator names are up to date in:
- AUTHORS (for translations)
- the about dialog (main.cpp).
- the docbook manual
- the website's people page
- Run includemocs
Branching
- create a branch for the release
ver="2.0" svn copy https://kmess.svn.sourceforge.net/svnroot/kmess/trunk/kmess https://kmess.svn.sourceforge.net/svnroot/kmess/branches/kmess/kmess-$ver.x
- If the default build type is set in the main CMakeLists.txt, comment it out, to default to a release build.
Releasing
Building the tarball
- Checkout SVN in a fresh directory:
ver="2.0" mkdir kmess-$ver svn checkout https://kmess.svn.sourceforge.net/svnroot/kmess/branches/kmess/kmess-$ver.x kmess-$ver
- Change the ownership for the entire SVN copy to user root, group root, and the permissions for files and directories.
chown -R root:root . find -type d -exec chmod 755 {} ; find -type f -exec chmod 644 {} ; - Again, make sure the code compiles against your version's minimum requirements. When it doesn't work, commit fixes to SVN and start over. This avoids releasing the wrong code.
- Port all fixes in the branch over to trunk.
- If the default build type is set in the main CMakeLists.txt, comment it out, to default to a release build.
- Tag the version in SVN:
svn copy https://kmess.svn.sourceforge.net/svnroot/kmess/branches/kmess/kmess-$ver.x https://kmess.svn.sourceforge.net/svnroot/kmess/tags/kmess/kmess-$ver
- Create the tarball.
cd .. rm -f kmess-$ver.tar.gz tar zcvf kmess-$ver.tar.gz --exclude=.svn kmess-$ver/
- Build the autopackage:
cd kmess-$ver/ makeinstaller make clean cd ..
Done!
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
- Add them to the file releases in the Source Forge project admin panel.
- The "ChangeLog" entry should contain 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
- Update the database (kmess_statistics) so that all download links link to the correct new files
- 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
- Wikipedia
- sourceforge
- All developer blogs possibly!
- 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
3 years ago.
Example of a good announcement
-
create-release.sh
(1.7 kB) - added by diederik
2 years ago.
More automated building of the release
