[cvs] [Wiki] changed: Doc/Dev

Jan Schneider jan at horde.org
Sun Nov 29 23:42:50 UTC 2009


jan  Sun, 29 Nov 2009 18:42:50 -0500

Modified page: http://wiki.horde.org/Doc/Dev
New Revision:  1.69
Change log:  Fix double line breaks

@@ -1,253 +1,127 @@
  [[toc]]
-
-

  + Horde Developer Documentation
-
-

  ++ 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))
-
  * ((Doc/Dev/VimRC|Vim configuration useful for Horde Development))
-
  * ((Doc/Dev/SMIME|S/MIME debugging))
-
-

  ++ 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. 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:** 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 [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]
-
  horde-fw-symlinks.php --src [Location of horde CVS HEAD]/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 [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]
-
  horde-fw-symlinks.php --src [Location of horde CVS HEAD]/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. All 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  
config/horde.local.php file 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:
-
-

  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:
-
  <code>
-
  pear channel-discover pear.horde.org
-
  </code>
-
-

  <code>
-
  export CVSROOT=:pserver:cvsread at anoncvs.horde.org:/repository
-
  cvs login (password is 'horde')
-
  cvs checkout -dP horde
-
  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
-
  cvs checkout framework
-
  pear install -f framework/devtools/package.xml
-
  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 ../horde-git/framework
-
  horde-fw-symlinks.php --src ../horde-hatchery/framework
-
  horde-fw-symlinks.php
-
  </code>
-
-

  Then continue with the installation steps in docs/INSTALL.
-
-

  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 (the directory  
created by the CVS checkout):
-
-

  <code>
-
  cvs update -dP
-
  cd ../horde-git && git pull --rebase
-
  cd ../horde-hatchery && git pull --rebase
-
-

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

  **Q:** Why does the sidebar not collapse/Why can't I switch tabs on  
the config screen/Why do certain links not work?
-
-

  **A:** Make sure your 'jsfs' and 'jsuri' entries in  
horde/config/registry.php are correct. They are actually no needed  
anymore at all, unless you really know what you are doing.  
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