wiki:Dev_ReleaseManagement

Version 2 (modified by till, 4 years ago) (diff)

refined with feedback from Thomas

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

Create a branch

version

version legend:

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

creating a new release branch

svn cp trunk/ branches/release-x.y
svn del branches/release-x.y/bin/dumpschema.php
svn del branches/release-x.y/bin/makedoc.sh
svn del branches/release-x.y/tests
  • edit branches/release-x.y/CHANGELOG
  • edit branches/release-x.y/README and remove SVN disclaimer
  • bump up RoundCube's version in config/main.inc.php.dist
  • bump up RoundCube's version in index.php
  • bump up RoundCube's version in program/include/iniset.php
svn ci -m "new x.y release branch"
svn cp branches/release-x.y tags/release-x.y
svn ci -m "new x.y release tag"

The differences between branches and tags is the following:

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

creating a tag after a fix

svn ci -m " * important security fix in x.y release" branches/release-x.y
svn cp branches/release-x.y tags/release-x.y.z

Create Download

Major Relase

svn export http://trac.roundcube.net/branches/release-x.y ./roundcubemail
tar -cf roundcubemail-x.y.tar ./roundcubemail
gzip roundcubemail-x.y.tar
rm -rf ./roundcubemail
  • the version naming should obviously match the branch/tag
  • distribute release on SourceForge?
  • adjust naming in case of a "hotfix" / "patch"

Minor Release / Hotfix

  • repeat entire process
  • supply a patch in addition:
svn diff branches/release-x.y tags/x.y.z > ./roundcubemail-patch-x.y.z.patch
gzip ./roundcubemail-patch-x.y.z.patch

Announcements

  • write news entry on SourceForge?
  • post on Twitter (Till)
  • email announce@, dev@ and users@

TBD

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