[[toc]]
++ Overviews
((Doc/Dev/Filesystem|Filesystem structure))
((Doc/Dev/Configuration|Configuration files))
((Doc/Dev/Framework|Framework modules))
((Doc/Dev/SpecialFiles|Special files))
((Doc/Dev/Globals|Global constants and objects))
((Doc/Dev/Registry|The Registry))
((Doc/Dev/DesignPatterns|Design patterns))
++ Development
[CreatingYourFirstModule Creating your own module]
((Doc/Dev/Themes|Creating new themes))
((Doc/Dev/Layout|Understanding and changing the layout))
((Doc/Dev/LegacyApps|How to use Horde from custom, non-Horde PHP applications or websites))
((Doc/Dev/SOAP|Using Horde as a SOAP server, including complex types))
((Doc/Dev/Emacs|Emacs configurations for Horde))
++ Libraries
((Doc/Dev/FilePDFPackage|File_PDF::))
((Doc/Dev/FeedPackage|Horde_Feed::))
((Doc/Dev/FormPackage|Horde_Form::))
((Doc/Dev/FrameworkPackage|Horde::, Registry::))
((Doc/Dev/MIMEPackage|MIME:: Using the MIME API to create or parse MIME messages))
((Doc/Dev/MobilePackage|Horde_Mobile::))
((Doc/Dev/PermsPackage|Perms:: Using the extensible permissions API))
((Doc/Dev/TemplatePackage|Horde_Template:: - Horde 3.2+))
((Doc/Dev/TemplatePackageOld|Horde_Template:: - pre-Horde 3.2))
((Doc/Dev/UtilPackage|Util::))
[http://dev.horde.org/ API Documentation]
++ Dev Stuff
((Doc/Dev/DAV|WebDAV/GroupDAV/CalDAV Documentation))
((Doc/Dev/Benchmarks))
[http://cvs.horde.org/dimp/docs/dev/?sa=1 DIMP Development Documentation]
((Doc/Dev/CopyrightLicense|Copyright and license 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
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
Q: How do I start from scratch with a git/cvs head install
A:
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
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.