wiki:Dev_ReleaseManagement

Version 5 (modified by thomasb, 4 years ago) (diff)

--

How do we release a new version of RoundCube? This document aims to provide an answer.

Creating a new release

Version

version legend:

  • x.y.z
  • x = major
  • y = minor
  • z = fix (0 can be omitted)

1. Creating a release branch

svn cp -m "new x.y release branch" http://svn.roundcube.net/trunk/roundcubemail http://svn.roundcube.net/branches/release-x.y

Check out the release branch and remove development stuff:

svn co http://svn.roundcube.net/branches/release-x.y
svn del bin/dumpschema.php
svn del bin/makedoc.sh
svn del tests
  • edit CHANGELOG: only keep the changes since last release
  • edit README: remove SVN disclaimer
  • bump up version in index.php
  • bump up version in program/include/iniset.php
  • bump up version in config/main.inc.php.dist ('useragent')
  • commit the changes
    svn ci -m "Remove development stuff and update versions"
    

2. Create Package

Major Relase

svn export http://svn.roundcube.net/branches/release-x.y ./roundcubemail-x.y
tar czf roundcubemail-x.y.tar.gz ./roundcubemail-x.y
md5_file roundcubemail-x.y.tar.gz
  • the version naming should obviously match the branch/tag
  • the folder name should include the version
  • distribute release on SourceForge?

Minor Release/Hotfix?

  • commit changes to the existing release branch
  • repeat the packaging and distribution process
  • adjust naming in case of a hotfix or patch
  • supply a patch in addition:
svn diff http://svn.roundcube.net/tags/roundcubemail/vx.y http://svn.roundcube.net/branches/release-x.y > ./roundcubemail-patch-x.y.z.patch
gzip ./roundcubemail-patch-x.y.z.patch
  • distribute patch on SourceForge

2.1 Create GPL package

TBD.

3. Tagging released files

svn cp -m "Tagging files for x.y.z" http://svn.roundcube.net/branches/release-x.y http://svn.roundcube.net/tags/roundcubemail/vx.y.z

The differences between branches and tags are the following:

  • branch may be "patched" or "hotfixed"
  • a tag is just a snapshot and may not be altered
  • in case you apply a fix to a branch, please create a new tag from it

4. Announcements

  • update downloads page on roundcube.net
  • write news entry on SourceForge
  • email announce@, dev@ and users@
  • update project page in freshmeat.net
  • post on Twitter (Till)

TBD

  • encourage maintainers to subscribe to announce@
  • seperately ping distros
  • maybe a PEAR package with replacement tasks? (@package_version@)

Snapshots

...