\documentclass{article}
\usepackage{ulem}
\pagestyle{headings}
\begin{document}
\part{ Horde Developer's FAQ}
\section{ Modifying or Extending an Existing Horde Application}
\tableofcontents

\subsection{ How can I get involved?}
This is Open Source software.  Many of us found our way here because we had a particular need (the "itch") and we wanted to fix it (the "scratch").  You are probably here because you have found such an itch and perhaps you have already even scratched it.  Read on below for different ways of getting your changes merged into the main Horde code repository.

\subsection{ I have found and/or fixed a bug}
First, check the Horde Bugtracker\footnote{http://bugs.horde.org} to see if someone else has already experienced the same problem you have.  This will likely save you a lot of time.  Bugs are being found and fixed constantly and the CVS repository is a moving target.

Next, figure out which version you are using currently.  If it is not the latest stable release, try updating to the latest stable release (in a test environment if possible) and see if the bug still exists.  If you are using CVS, \textsl{always} make sure you use the very latest checkout before reporting the bug or beginning to work on it.

If you have updated all of the software and still observe the bug, if you have checked the bug tracker and find no reference, it's time to dig in.  Before beginning work we suggest you open a ticket in the appropriate queue.  Make sure you take the time to clearly describe the bug and, if possible, explain how you propose to fix it.  This will allow the Horde developers to give feedback and suggestions on your approach and will likely save you time.

When you have tested your fix update the relevant ticket and attach your patch.  Please give us time to review your patch and consider our suggestions.  Remember that we are all volunteers here.  It may take a few days (or more if the fix is complex) to review and comment on your fix.  We may ask you to make changes in what you have submitted.  When all is well we will commit your change back into the Horde codebase and credit you where appropriate.

\subsection{ I want to implement/have implemented a new feature}
As mentioned above, first check to make sure you are using the most recent version of Horde and Framework.  If you have not yet begun work on your feature, send a note to the Horde Developers mailing list\footnote{http://lists.horde.org/mailman/listinfo/dev} and describe what you want to do.  Also make sure to see if anyone else is interested in collaborating with you or even if someone has already started their work initiative.

If the feature is relatively minor or requires minimal code changes open an \textsl{Enhancement} ticket in the Horde Bugtracker\footnote{http://bugs.horde.org} in the appropriate queue.  Describe the change to functionality and include a patch if possible.  The Horde developer team will review the ticket and make suggestions if necessary.  When the change has been accepted the patch will be applied and committed to CVS on your behalf, with credit given where due.

If the feature you wish to add is more complex or requires more involve code changes then, after initial discussion on the Horde-Dev mailing list, create a new page on the Horde Projects and Proposals\footnote{http://example.com/index.php?page=Project} page.  This will allow others who are interested to collaborate with you, including collections of links, attaching mockup graphics, code architecture discussion etc.

Please note that new features are always committed to the CVS HEAD branch first, so make sure that you are developing against an up-to-date CVS checkout. If your changes are small and applied to a piece of code that hasn't changed much since a release, we might accept a patch against a release version as an exception.

\end{document}
