===========================================================================
|| Horde Release Process Notes                                           ||
===========================================================================

$Horde: horde/docs/RELEASE,v 1.14 2003/08/04 18:46:41 slusarz Exp $


Here are the steps I use when cutting a new release:

-   Examine */docs/CHANGES files:

    --  Add the word SECURITY in front of any security-related changes,
        and move them to the top, to draw attention to them.

    --  Cull out the most important ones, and prepare the text of an
        announcement.

-   Examine */README and docs/* files, and update the version if necessary.

-   Set the CVSROOT environment variable to a user with commit privs
    (e.g. user@cvs.horde.org:/repository), and change to an empty directory.

-   Create the tarballs/patches using (HEAD) horde/scripts/make-tarball.pl:

    --  Must be run as root (to set file ownership).

    --  Can optionally add "--nocommit" to do a "dry run" that will not
        make any CVS changes.

    --  Example commands (omit "--branch" when building HEAD):

        # make-tarball.pl --module=horde --version=2.<n> --branch=RELENG_2
        # make-tarball.pl --module=imp --version=3.<n> --branch=RELENG_3
        # make-tarball.pl --module=turba --version=1.<n> --branch=RELENG_1

-   Get the MD5 checksum of the resulting tarballs, and add to the
    announcement text.

-   Copy the resulting tarballs to ftp://ftp.horde.org/pub/<module>/tarballs
    (the /horde/ftp/pub/... directory on the ftp.horde.org server):

    --  Make sure group is "horde" and permissions are "rw-rw-r--" so that
        other team members can write to them.

    --  Update the "latest" symbolic links; for example:

        $ cd .../pub/horde/tarballs
        $ ln -sf horde-2.<n>.tar.gz horde-latest.tar.gz
        $ cd .../pub/imp/tarballs
        $ ln -sf imp-3.<n>.tar.gz imp-latest.tar.gz
        $ cd .../pub/turba/tarballs
        $ ln -sf turba-1.<n>.tar.gz turba-latest.tar.gz

-   Copy the resulting patch files to ftp://ftp.horde.org/pub/<module>/patches
    (the /horde/ftp/pub/... directory on the ftp.horde.org server):

    --  Make sure group is "horde" and permissions are "rw-rw-r--" so that
        other team members can write to them.

-   Update the web site (hordeweb CVS directory):

    --  Edit top-level hordeweb/main.html

    --  For Horde, under hordeweb/horde edit:

        horde.html

    --  For IMP, under hordeweb/imp edit:

        3.0/2002 (or current year) 3.0/latest.html 3.0/supported.html
        download/download.html

    --  For Turba, under hordeweb/turba edit:

        content.txt download/download.html

    --  If applicable, under hordeweb/source edit:

        versions.html

-   Publish the announcement to the relevant Horde lists (including
    "announce").

-   Create a freshmeat.net announcement.

-   Add new sentinels to the top of the <module>/docs/CHANGES files.

    [TODO: automate the sentinel add in the make-tarball.pl script.]


** Guidelines for release candidates (RCs):

* The last time we introduced a bug with code from a new minor release so
we had to release another version right after. This might always happen if
there is more than one change since the last release or if the changes were
done recently.

* If we have a security leak that needs to be plugged immediately, it is
the common way to release a new minor version that *only* contains the fix
for that leak.

* RCs are necessary for every release (except 3) because many translators
only update their translations when there is a new (minor) release cycle
starting because they don't translate on CVS versions.


** Example format for announcement messages:

The Horde Team is pleased to announce the official release of the
[MODULE NAME] version [VERSION].

[MODULE DESCRIPTION]

Major new changes in this release:

    - [CHANGE 1]
    - [CHANGE 2]
    ...

The full list of changes can be viewed here:

    [CHORA LINK TO CHANGES PAGE]

The [MODULE] [VERSION] distribution is available from the following locations:

    [FTP LINK]
    [HTTP LINK]

Patches against version [PREV VERSION] are available at:

    [FTP LINK]
    [HTTP LINK]

Or, for quicker access, download from your nearest mirror:

    http://www.horde.org/mirrors.php

MD5 sums for the packages are as follows:

    MD5 ([FILENAME]) = [MD5 SUM]
    MD5 ([FILENAME_2]) = [MD5 SUM_2]

Enjoy!
