[cvs] [Wiki] changed: Doc/Dev

Michael Slusarz slusarz at horde.org
Wed Aug 5 17:41:03 UTC 2009


slusarz  Wed, 05 Aug 2009 13:41:03 -0400

Modified page: http://wiki.horde.org/Doc/Dev
New Revision:  1.62
Change log:  Updates to recent code changes; make some comments more  
authoratative and less wishy-washy; have include_path use the libs dir

@@ -46,37 +46,43 @@
  ++ 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.
+**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 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:
+**A:** 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.

  <code>
-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 [Location of horde CVS HEAD]/framework  
--dest [A PHP include directory]
+horde-fw-symlinks.php --src [Location of horde-git]/framework --dest  
[A PHP include directory]
+horde-fw-symlinks.php --src [Location of horde-hatchery]/framework  
--dest [A PHP include directory]
  </code>

  * 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.

  <code>
-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
+horde-fw-symlinks.php --src [Location of horde CVS HEAD]/framework  
--dest [A PHP include directory]
+horde-fw-symlinks.php --src [Location of horde-git]/framework --dest  
[A second PHP include directory]
+horde-fw-symlinks.php --src [Location of horde-hatchery]/framework  
--dest [A second PHP include directory]
  </code>

-* 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.
+* 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.
+
+* Using symlinks is the best solution.  From the base horde install,  
add a symlink to the Git application folder.  Then you must create a  
lib/base.local.php in this application and define HORDE_BASE in that  
file like this:
+
+<code>
+<?php
+define('HORDE_BASE', '[Full filesystem path to horde]');
+</code>

  **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:
+**A:** These steps only work on case sensitive file systems, see above:

  <code>
  export CVSROOT=:pserver:cvsread at anoncvs.horde.org:/repository
  cvs login (password is 'horde')
@@ -88,9 +94,9 @@
  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__) .  
'/../horde-git/framework' . PATH_SEPARATOR . dirname(__FILE__) .  
'/../horde-hatchery/framework' . PATH_SEPARATOR .  
ini_get('include_path'));" > lib/core.local.php
+echo "<?php ini_set('include_path', dirname(__FILE__) . '/../libs' .  
PATH_SEPARATOR . ini_get('include_path'));" > lib/core.local.php
  </code>

  Note that if this is the first time you've dealt with our framework  
libraries, you will need to discover our PEAR server before performing  
the pear install above:
  <code>
@@ -104,19 +110,16 @@
  cd horde-git && git pull --rebase && cd ..
  cd horde-hatchery && git pull --rebase && cd ..

  # Now we have to refresh the Framework library symlinks:
+cd ../horde
+rm -rf libs/*
  horde-fw-symlinks.php
  horde-fw-symlinks.php --src ../horde-git/framework
  horde-fw-symlinks.php --src ../horde-hatchery/framework
  </code>

  Then continue with the installation steps in docs/INSTALL.

  **Q:** Why does the sidebar not collapse/Why can't I switch tabs on  
the config screen/Why do certain links not work?
-**A:** To minimize commits and SCM growth we are no longer providing  
minimized !JavaScript files in the js/ directory.  Instead you will  
need to use the source !JavaScript files directly.  To do this you  
will need to add a line for each installed application that provides a  
!JavaScript file.  Start with the following lines and expand as  
necessary, added to the bottom of config/registry.php:
-<code>
-$this->applications['horde']['jsuri'] =  
$this->applications['horde']['webroot'] . '/js/src';
-$this->applications['imp']['jsuri'] =  
$this->applications['horde']['webroot'] . '/js/src';
-$this->applications['kronolith']['jsuri'] =  
$this->applications['horde']['webroot'] . '/js/src';
-$this->applications['chora']['jsuri'] =  
$this->applications['horde']['webroot'] . '/js/src';
-</code>
+
+**A:** Make sure your 'jssrc' and 'jsuri' entries in  
horde/config/registry.php are correct.  Applications no longer come  
shipped with javascript source files in js/src - they all live  
directly under js/ now.



More information about the cvs mailing list