Contributing to HordeSo you want to contribute?
There are several ways you can contributing to Horde. We are always looking
for new poeple to help and not only in programming. There are plenty of
important tasks that don't involve writing or maintaining code, such as
documentation or localization.
As first steps you should:
- Get the code.
Either install a snapshot or do a
CVS checkout. It's important to always use CVS HEAD for new features.
- Find a bug to solve or a feature to implement.
Check the Horde Ticket Tracker for any
outstanding bugs or track down your own. It can be even missing
documentation or translations.
If you decide to implement a new feature, it might be worth discussing
it in the lists first, to test water, get feedback
from lead developers and see if anybody is already working on it or if
it fits at all into the general direction of the project. You can even
have a look over at the bounties page for
inspiration.
- Create a patch.
There are two ways to do a patch. You could make a copy of file you edit
beforehand, and create a patch with:
diff -u file.php.orig file.php > file.php.patch
or do it with CVS:
cvs diff -u file.php > file.php.patch
- Attach your patch to a new enhancement request in the Horde Ticket Tracker.
Be prepared to be met with a critical analysis of your patch.
In case your patch is refused, ask why and either correct your
patch or constructively argue your point. In case you receive no
feedback, try bumping the issue once after a week. We make every
effort to respond to all tickets, but please be patient. If your
patch does not cleanly fit into Horde's main codebase, you may
be asked to document it and upload it to a new Wiki page. That way it will
be available in a central place to others with the same
need.
As general points to remember:
- Respect the project coding standards, otherwise your patches will not be
commited. You can find the coding standards in your horde directory
under horde/docs/CODING_STANDARDS or directly from CVS.
- Work within the framework, that is use the available classes and
mechanisms (eg: preferences, permissions, forms, etc).
- Monitor the development and CVS mailing lists
and those of the applications you work on.
Lastly, remember that, although you work on the project on your own
goodwill, this does not grant you any specific privileges. The lead developers
make the final call. Sometimes, they may make decisions that you may not agree
with. Obviously, you are entitled to voice your opinion and argue your point,
but stay civil, do not drag it out and respect their decisions.
That's pretty much it. One last thing: do not do it for an ego boost, do
it for the love of coding. The unfortunate truth is that contributing to an
OSS project will most likely never get you the kind of fame Linus Torvalds or
RMS enjoy, nonetheless, as with any Open Source project, your contribution
will be greatly appreciated by the community.
Welcome aboard!
|