In the galaxy of the Dolibarr project, there are several actors with different levels / grades.
The number of developers is important so contributions and changes, for any project that wants to reach a certain level of quality, must be controlled and validated (both for functional needs and for coding).
For this reason, the write access on the source (
CVS) is limited and governed by an organization that is described in the following.
Each developer has a ''grade'' depending on seniority and the past. The level of authorization of a person on the project increases with the stages of promotion in grade.
The course of a Dolibarr developer passes through these steps, which are classified by a title familiar to fans of science fiction. Here are the steps.
It is important to understand that this organization has the sole purpose of improving the quality of Dolibarr and it is necessary that it is rigorously used. So do not be offended if, as a developer, you can not have a
CVS write access for some time.
The ranks of contributors to the Dolibarr project are:
Easy to start tasks are task with property "Task opened to external developers" that is set to "yes". If value is "no", forget it, this means task will be processed by a developer with grade Jedi.
At your first accepted patch (included in
CVS by an Admiral, Jedi or Yoda), you automatically enter into the family of '''Fighters''' of the Dolibarr alliance.
The number of hunters is not limited. The more we are, the more we will be strong.
<span id="Z-6PO">'''* Z-6PO'''</span>
If you are fluent in a language not or poorly translated into Dolibarr, a '''Jedi''' or '''Yoda''' will grant
CVS access to your Savannah login, so you can make changes and commits directly into the CVS of the project.
Go on http://savannah.nongnu.org to create an account and claim to be part of project as a Z-6PO for your language.
You can also read page [[Developer_FAQ#Get.2Fupdate_the_development_CVS_version|Get/update the development CVS version]] to know how to use the
CVS server to commit your changes on language files. But commits must be limited to changes for translations purposes.
This grade can be obtained quickly enough. Just ask it on mailing list.
<span id="Admiral">'''* Admiral'''</span>
Only after a variable time (which can be very long) to the rank of a Fighter, and many patches of suitable quality had been sent, a Yoda in place allows you to make
CVS commits extended for cause of any patch.
You have become an '''Admiral''' of the Dolibarr alliance.
This title can't be asked, it is obtained by a decision or proposal of a '''Jedi''' or '''Yoda''' who believes that you have submitted enough patch to be a serious '''Admiral'''.
CVS access, however, must be used to commit translations or bug fixes reported on Savannah (BUG tracker http://savannah.nongnu.org/bugs/?group=dolibarr) or forum (such as personal fixes or fixes submitted by a '''Fighter''').So all CVS commits you do must necessarily include in the description (the commit log field), the issue of Savannah bug corrected or the title of the forum message indicating the problem. Only a translation escapes this constraint (no restrictions for translations). Failure to observe this constraint may lead to downgrade to the rank of '''Fighter'''.
For submission of new features, an Admiral must necessarily proceed on the principle of patches sent to the ML.
<span id="Jedi">'''* Jedi'''</span>
This is even after a variable time (probably the longest of all) to the rank of Admiral, and the quality of
CVS bug fixes or patches sent is satisfactory, that a Yoda will tell you that you are authorized to perform commits without restrictions, included new features, however you will still have to explain to all Yoda what you want to do to give back a "go".
You will then become a '''Jedi'''.
There may be temporary restrictions on commits, defined by a Yoda, for example due to a close release.
If you want to know what you can do to start or help Dolibarr development, read instead chapter [[Developer_FAQ#How_to_be_an_official_developer]]. If you already read it and want to distribute a patch, this chapter is for you.
== '''With a
CVS write access ''' ==For the moment, CVS write access are restricted (number of commits is already active). If you have this access, you can use it, but if and only if you use it to commit changes you are granted to with your developer grade (See [[Developer FAQ#How to be an official developer]] for information on different grades).If you don't have CVS access (your grade must be [[Developer FAQ#Soldier|Soldier]] or [[Developer FAQ#Fighter|Fighter]]), it is necessary to follow the following steps...
If you have a
CVS write access, see [[#Get/update project sources]] for information to use CVS.
== '''With no
CVS write access''' ==With no write CVS access (with no savannah developer account), it is necessary to generate and send by mail a patch file to the developer mailing-list '''dolibarr-dev'''. This is how to generate a patch file:
''For all OS:'' [[Image:Logo_windows.png|20px]] [[Image:Logo_ubuntu.png|20px]] [[Image:Logo_apple.png|20px]]
This is the ''best method'' to work to build such a patch file:
- First, you must have a directory containing last reference version of Dolibarr (the result of a
CVS update or simply the files resulting of uncompressing a dolibarr.tgz snapshot). We will cal this directory '''old_dir'''. You can get this snapshot for current developed version on [http://www.dolibarr.org/downloads/ Dolibarr official web site in download area - development version].
- Then, you must have a second directory, from same source, that will contains Dolibarr directories, in which you will make all you files. We will call this directory '''new_dir'''.
''For Windows:'' [[Image:Logo_windows.png|20px]]
If you work on Windows, another method (not so nice than previous) is also possible. Install the open source compare tools called Winmerge (this tool is able to build patch with format ''diff -Naur''). Then compare with WinMerge the reference file and modified file and choose in menu ''"Tools - Generate patch"''. Add an output filename like ''"mypatch.patch"'', click on box ''"Append"'' and
hcoose option ''"Format Unified"''. Then click on ''"Ok"''.
Eventually restart for each modified file.
Finally, you will get a file ''mypatch.patch'' that contains all changes with goode format.