.. _contribute_code:

Contribute code
===============

Anybody can take part to the `ZOO-Project <http://zoo-project.org>`__ developement and is welcome to:

 * Share new source code or correction
   
 * Create tickets to report bugs
   
 * Write a new feature request.

Submit new code
---------------

For new comers
**************

New source code or existing source code corrections (patches) should
be submitted using the ZOO-Project bug tracking system (`ZOO-Trac
<http://zoo-project.org/trac>`__ ).

Create a `new ticket <http://zoo-project.org/trac/newticket>`__ in
order to describe your code or patch and attach it to the ticket
(attach all the files required to use your code or patch). It will
then be checked and discussed with the developers, and can potentially
be integrated and merged with the trunk.

For registered developers
***************************

ZOO-Project registered developers have direct svn access and can:

* Commit fixes, enhancement and new source directly to trunk
  
* Create and commit to a new branch of the svn

ZOO-Project registered developers must accept and respect the :ref:`contribute_dev` when contributing code.

Bug tracking
--------------------------

General information
*********************

Bug reports and wishes can be submitted using the `ZOO-Trac <http://zoo-project.org/trac>`__ . This requires you to setup a user account (userid) using this section.

The following trackers are available:

* *defects* to report bugs and 'bad' features
* *enhancement* to describe feature wishes
* *task* to describe any different but relevant topic.

The following components are available:

* *Developemnt platform* to report bugs and 'bad' features
* *ZOO-Kernel* to report a bug or problem with the ZOO-Project WPS server
* *ZOO-Services* to report a bug or problem with the ZOO-Project WPS services
* *ZOO-API* to report a bug or problem with the ZOO-Project API
* *ZOO-Client* to report a bug or problem with the ZOO-Project Client
* *Documentation* to report a problem or suggest an enhancement to the documentation
  
Best practices
*********************

Please consider the following when submitting bugs or feature requests:

* Check if the bug is still persistent in svn trunk before reporting. If you use an older version, please consider upgrading.
* Before reporting a bug, please search if it is yet unknown in the bug tracking system.
* Give an appropriate, starightforward and understandable title to your ticket using the *Summary* field   
* Make sure the developers get all the needed information to recreate the bug using the *Description* field (e.g. tell about your configuration and explain every step to reproduce the bug).
* Select at least a *Type* of tracker and a *Component* for your new ticket.
* Report only one single bug by ticket.


