This section describes the release process of the stable Horde releases.
The decisions made for Horde 4 so far are:
Full minutes of the board meeting where this was discussed: http://lists.horde.org/archives/board/2008-October/000085.html
We have three git repositories:
The horde respository has stable code in it.
The horde-hatchery respository is a playground for new code and refactoring old code. Once a module a stabilized here, it's being moved to the horde repository.
The horde-support repository has maintainer and relase tools, and the git and svn hooks in it. Once we have update mechanisms in place, we'll add hordeweb there.
hordedoc is an open question.
Also, just a reminder that git push messages are going to firstname.lastname@example.org, not email@example.com.
Q: Are we going to keep the existing development model where we have a "master" server (i.e. cvs.horde.org) where we will build the releases? For our workflow, that seems to make the most sense - since we don't have a "master" user that checks all commits before integrating.
A: Yes. All HEAD commits are pushed to dev.horde.org:/horde/git/horde (or horde-hatchery, etc.), and we'll use branches to do local dev or to coordinate non-mainline work.
Q: How do I start from scratch with a git/cvs head install
A: Note that if this is the first time you've dealt with our framework libraries, you will need to discover our PEAR server before proceeding with the steps below:
pear channel-discover pear.horde.org
git clone --depth 1 git://dev.horde.org/horde/git/horde horde-git git clone --depth 1 git://dev.horde.org/horde/git/horde-hatchery cd horde-git/horde mkdir libs echo "<?php ini_set('include_path', dirname(__FILE__) . '/../libs' . PATH_SEPARATOR . ini_get('include_path'));" > lib/core.local.php horde-fw-symlinks.php --src ../framework horde-fw-symlinks.php --src ../../horde-hatchery/framework
Then continue with the installation steps in docs/INSTALL. Set the paths to the various Horde applications via the 'fileroot' and 'webroot' parameters in config/registry.php. If these directories do not live directly under git, you must create a config/horde.local.php file in this application and define HORDE_BASE in that file like this:
<?php define('HORDE_BASE', '[Full filesystem path to horde]');
After some time has passed you will want to update your working copy from the Horde servers. These commands will do that. The commands are to be executed from the base of the Horde installation (in the above setup, horde-git/horde):
git pull --rebase git --git-dir=../../horde-hatchery/.git --work-tree=../../horde-hatchery/ pull --rebase
Now we have to refresh the Framework library symlinks:
rm -rf libs/* php ../framework/devtools/horde-fw-symlinks.php php ../framework/devtools/horde-fw-symlinks.php --src ../../horde-hatchery/framework
Q: Why does the sidebar not collapse/Why can't I switch tabs on the config screen/Why do certain links not work?
Please see Horde 4 Conversion for more details on porting Horde 3 libraries to Horde 4.