Last Modified 2009-06-04 by Ben Klang

Horde Developer Documentation




Dev Stuff

Mini-FAQ for Horde 4 development

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. We'll figure this out as we work on Horde 4, to some extent, but my expectation is that we will all push commits 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 combine the CVS and Git trees so I can test/develop current Horde 4 code?

A: Some of this is still being worked out, and these instruction might change as development moves forward, but the current suggestion is:

  • Update/pull most recent changes into the various repositories
    • Use the horde-fw-symlinks.php script to link the various framework libraries to your include directory.

horde-fw-symlinks.php --src /var/www/html/horde/framework --dest /var/www/pear

horde-fw-symlinks.php --src /usr/local/githorde/framework --dest /var/www/pear

horde-fw-symlinks.php --src /usr/local/horde-hatchery/framework --dest /var/www/pear

  • Note that if your filesystem is NOT case sensitive (i.e. HFS+ on the Mac) then you will need to have two separate include directories - one for the CVS framework libraries and one for the Git framework libraries. You will need to make sure to put the Git include directory first in your include_path.

horde-fw-symlinks.php --src /var/www/html/horde/framework --dest /var/www/pear

horde-fw-symlinks.php --src /usr/local/githorde/framework --dest /var/www/gitpear

horde-fw-symlinks.php --src /usr/local/horde-hatchery/framework --dest /var/www/gitpear

  • For the actual Horde applications that have been moved to Git, there are a few options. You could either copy the application directory back and forth from your /horde directory, you could try to use a joint CVS/Git source tree, or you can symlink the application into your horde/ directory. Both methods have drawbacks. Issues with the first are obvious - you need to pull, copy, code, copy, push etc... The issue with second method is that you will either get lots of warnings about files that aren't tracked, or you could try to manage an ignore list for both CVS and Git. If you use a symlink, you will need to create a file base.local.php in the application's lib/ directory - and define your HORDE_BASE in that file.

Q: How do I start from scratch with a git/cvs head install


These steps only work on case sensitive file systems, see above:

cvs -d:pserver:cvs.horde.org:/repository checkout horde framework

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

pear install framework/devtools/package.xml

cd horde

mkdir libs


horde-fw-symlinks.php --src ../horde-git/framework

horde-fw-symlinks.php --src ../horde-hatchery/framework

echo "<?php ini_set('include_path', dirname(__FILE__) . '/../libs' . PATH_SEPARATOR . ini_get('include_path'));" > lib/core.local.php

Then continue with the installation steps in docs/INSTALL.

Related Sub Pages