How to release kipi & co. ---------------------------------------- 1. Before the final release 2. Release libkipi 3. Release libkexiv2 4. Release kipi-plugins 5. Notes on svn2cl 6. Notes on new release script (create_tarball.rb) ---------------------------------------- 1. Before the final release ---------------------------------------- Some days before releasing the final, remember to announce the translations commit deadline to kde-i18-doc@kde.org. ---------------------------------------- 2. Release libkipi ---------------------------------------- a) Update release info libkipi/libkipi.lsm libkipi/libkipi/version.h libkipi/libkipi.pc.in To do that you can use the "prepare_libkipi.rb" script, change the release version ("version" and "version_n" fields) and run it. Don't forget to commit your changes :) b) Update Changelog - to do that use the "release_kipi_changelog.sh" script release_kipi_changelog.sh libkipi oldest-revision-or-date new-release-version - edit Changelog and modify the wrong lines (if any) - Commit your changes c) Build the source tarball - go into makerelease directory - run "create_tarball.rb -p libkipi -v X.Y.Z" with X.Y.Z as the right package version or - use the "release_libkipi.rb" edit the script and change the "version" field if you're releasing an svn snapshot set "usesvnver" to "yes" run it and get libkipiXXX.tar.bz2 d) Uncompress and test the tarball - check if all the files are right in - check if the file RELEASE.rev is in and with the right revision number - check if it builds correctly. - diff headerfiles installed in <incdir>/kde/libkipi/ with last release and check for binary compatibility (see e.g., http://developer.kde.org/documentation/other/binarycompatibility.html) Every API change should be refleced in a changed version-info in libkipi/libkipi/Makefile.am (see e.g., http://www.gnu.org/software/libtool/manual.html#Versioning) e) Upload tarball for testing Before an official release upload the tarball for testing used sites are digikam3rdparty.free.fr or www.linux.it/~anaselli/kipi-plugins - depends on who is releasing :) Send a mail to kde-imaging@kde.org and digikam-devel@kde.org to have a feedback from pakagers before posting an offical release annoucement. f) Upload tarbal on SF and update kipi site official site for uploading the release is http://sourceforge.net/projects/kipi web page to be update is http://extragear.kde.org/apps/kipi/ to update this last you have to get, change and commit it from XXX@svn.kde.org/home/kde/trunk/www/areas/extragear/apps/kipi Send a mail to announce the official release. ---------------------------------------- 3. Release libkexiv2 ---------------------------------------- a) Update release info libkexiv2/libkexiv2.lsm libkexiv2/version.h libkexiv2/libkexiv2.pc.in libkexiv2/Makefile.am libkexiv2/ChangeLog To do that you can use the "prepare_libkexiv2.rb" script, change the release version ("version", "version_n", "version_info" and "chlog_rev" fields) and run it. Don't forget to fix Changelog and commit your changes :) c) Build the source tarball - go into makerelease directory - run "create_tarball.rb -p libkexiv2 -v X.Y.Z" with X.Y.Z as the right package version or - use the "release_libkexiv2.rb" edit the script and change the "version" field if you're releasing an svn snapshot set "usesvnver" to "yes" run it and get libkexiv2XXX.tar.bz2 d) Uncompress and test the tarball - check if all the files are right in - check if the file RELEASE.rev is in and with the right revision number - check if it builds correctly. - diff headerfiles installed in <incdir>/kde/libkexiv2/ with last release and check for binary compatibility (see e.g., http://developer.kde.org/documentation/other/binarycompatibility.html) Every API change should be refleced in a changed version-info in libkexiv2/Makefile.am (see e.g., http://www.gnu.org/software/libtool/manual.html#Versioning) e) Upload tarball for testing Before an official release upload the tarball for testing used sites are digikam3rdparty.free.fr or www.linux.it/~anaselli/kipi-plugins - depends on who is releasing :) Send a mail to kde-imaging@kde.org and digikam-devel@kde.org to have a feedback from pakagers before posting an offical release annoucement. f) Upload tarbal on SF and update kipi site official site for uploading the release is http://sourceforge.net/projects/kipi web page to be update is http://extragear.kde.org/apps/kipi/ to update this last you have to get, change and commit it from XXX@svn.kde.org/home/kde/trunk/www/areas/extragear/apps/kipi Send a mail to announce the official release. ---------------------------------------- 4. Release kipi-plugins ---------------------------------------- a) Update release info kipi-plugins/kipi-plugins.lsm kipi-plugins/common/include/pluginsversion.h (kipi-plugins/ChangeLog) To do that you can use the "prepare_kipiplugins.rb" script, change the release version ("version" field) and run it. Using svn2cl (http://ch.tudelft.nl/~arthur/svn2cl/) you can add ChangeLog info with this script as well, to do that follow the instructions: - set usesv2cl to "yes" - set svn2cl, svnbase, svnroot according to your account - set chlog_rev to the last revision (+1) of the last release (look at ChangeLog file, last commit) - use the script as usual and skip step b) - edit ChangeLog and modify the wrong lines (if any) Don't forget to commit your changes. b) Update ChangeLog - if you're using svn2cl you can do that at step a) - to do that use the "release_kipi_changelog.sh" script release_kipi_changelog.sh kipi-plugins oldest-revision-or-date new-release-version - edit Changelog and modify the wrong lines (if any) - Commit your changes c) Build the source tarball - go into makerelease directory - run "create_tarball.rb -p kipi-plugins -v X.Y.Z" with X.Y.Z as the right package version or - use the "release_kipi-plugins.rb" edit the script and change the "version" field and check the "addPo" one for po files if you're releasing an svn snapshot set "usesvnver" to "yes" run it and get kipi-pluginsXXX.tar.bz2 d) Uncompress and test the tarball - check if all the files are right in - check if the file RELEASE.rev is in and with the right revision number - check if it builds correctly. e) Upload tarball for testing Before an official release upload the tarball for testing used sites are digikam3rdparty.free.fr or www.linux.it/~anaselli/kipi-plugins - depends on who is releasing :) Send a mail to kde-imaging@kde.org and digikam-devel@kde.org to have a feedback from pakagers before posting an offical release annoucement. f) Upload tarbal on SF and update kipi site official site for uploading the release is http://sourceforge.net/projects/kipi web page to be update is http://extragear.kde.org/apps/kipi/ to update this last you have to get, change and commit it from XXX@svn.kde.org/home/kde/trunk/www/areas/extragear/apps/kipi Send a mail to announce the official release at least to: - kde-extra-gear@kde.org - kde-announce@kde.org - kde-imaging@kde.org - digikam-devel@kde.org - gwenview-general@lists.sourceforge.net ---------------------------------------- 5. Notes on svn2cl ---------------------------------------- Latest versions (>= 0.9) of svn2cl offer the --ignore-message-starting option and --ignore-message-starting=SVN_SILENT should work. Programmers often write SVN_SILENT or CVS_SILENT (obsolete) everywhere in the commit comment, that means such an option could not work. Moreover it can be used only once, so just to skip SVN_SILENT or CVS_SILENT not both. The easiest way was to to hack into svn2cl.xsl (mine is /usr/share/svn2cl/svn2cl.xsl). Add the following lines: <!-- skip entries where the message contains SVN_SILENT --> <xsl:template match="logentry[contains(msg,'SVN_SILENT')]"> </xsl:template> <!-- skip entries where the message contains SILENT --> <xsl:template match="logentry[contains(msg,'SILENT')]"> </xsl:template> just before the template: <!-- format one entry from the log --> <xsl:template match="logentry"> ... ---------------------------------------- 6. Notes on new release script (create_tarball.rb) ---------------------------------------- You can find new release script, called create_tarball.rb, under libs/makerelase directory. This script makes other release ones obsolete. Usage: create_tarball [options] -u, --user USERNAME svn account -w, --https Using https instead of svn+ssh -n, --noaccount Using svn://anonsvn.kde.org/ instead of svn+ssh -p, --package NAME Package name -v, --version VER Package version -h, --help Show this usage statement Package name is mandatory Package information is into config.ini (same directory as above). Example of usage: ./create_tarball.rb -p libkexiv2 -v 0.1.7