Developer FAQ

From Dolibarr ERP CRM Wiki
Revision as of 15:03, 21 June 2016 by Rdoursenaud (talk | contribs) (New path)
Jump to navigation Jump to search

This page contains some frequently asked questions related to Dolibarr development. For frequently asked questions on other topics, read page User FAQ.

How to be an official developer

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 must be controlled and validated (both for functional needs and for coding). For this reason, the write access on the source (GIT) 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 GIT write access for some time.

The ranks of contributors to the Dolibarr project are:

* Soldier

The first thing that a person willing to help needs to be familiar with the rules and standards developments. By reading the Developer documentation, you have shown sufficient willingness to automatically become Soldier (grade level Soldier). Most people that are interested in Dolibarr development are in this category.

This grade is obtained without higher validation. It is a grade of principle, to start.

The next step is to submit your first patch, starting with simple ones, on the dev Mailing List (see chapter Submit a patch, work and help on Dolibarr development for the procedure) or on the forum (Preferred Mailing List).

You can find easy to do patches (easy hacks) on the TODO tracker:

Easy to start tasks have the property "Task opened to external developers" set to "yes". If the value is "no", forget it, this means the task will be processed by a Jedi-grade developer.

The number of soldiers is not limited. The more we are, the stronger we will be. The soldiers are the main force of the Dolibarr alliance.

Due to the nature of this level, it is not possible to establish a list of all Dolibarr actors with this grade (list always changing and too long).

* Z-6PO

If you are fluent in a language not present or poorly translated into Dolibarr, and know how to use GIT, you can use GIT to fork project locally and use push system tp publish your changes/adds. If you don't know, send your changes done on last version of language files on dolibarr-dev mailing-list (Subscribe from page However, first solution using GIT push is preferred.

The Dolibarr core team may add you, after several push, as official Z-6PO on page Category:Z-6PO.

* Admiral

Only after you've held the rank of Soldier for a variable time (which can be very long), you've submitted many patches of suitable quality, a Yoda in place allows you to make GIT commits extended for cause of any patch. You have become an Admiral of the Dolibarr alliance.

This title can't be requested. It is obtained by a decision or proposal of a Jedi or Yoda who believes that you have submitted enough patches to be a serious Admiral. An Admiral GIT access, however, must be used to commit translations or bug fixes that are reported on bug tracker ( or forum (such as personal fixes or fixes submitted by a Soldier). So all GIT commits you do must necessarily include in the description (the commit log field), the issue of 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 Soldier.

Obtaining the rank of Admiral is as rare as limited. Dolibarr quality can not be achieved without a limited number of Admirals, but this is still compatible with having a very high number of developers (Soldiers), contributing through patches.

A list of Dolibarr contributors with this grade is available on page Category:Admiral

* Jedi

Only after holding the rank of Adminral for a variable time (probably the longest of all), and the quality of GIT bug fixes or patches sent is satisfactory, a Yoda will tell you that you are authorized to perform commits without restrictions, including 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.

This title can't be asked, it is obtained by a proposal of another Jedi or by a Yoda.

This privilege is exceptional. Dolibarr quality can not be achieved without a limited number of Jedi, but this is not compatible with a high number developers (Soldiers) contributing with patches.

A list of Dolibarr contributors with this grade is available on page Category:Jedi

* Yoda

There are about 1 to 5 Yoda. It's the overall management of project development. This ranking is obtained by inheritance or vote. For example, it can be achieved after a vote organized by a Yoda making retirement.

A list of Dolibarr contributors with this grade is available on page Category:Yoda

* And Darth Vader?

There are some parasitic people that pollute the forum or mailing-list with aggressive messages, which slows the development of Dolibarr rather than offering constructive criticism to help improve. Some are very strong bad liver and bad tone. Such people are Darth Vaders. Fortunately, statistically, there is only one or two Darth Vader per year ...

Current team

See page Dolibarr Project to know list of current people that work on Dolibarr, with their current grade.

Start a development

Read first completely the Developer documentation to know all rules a developer must respect. You can also read following FAQ.

Get/update project sources

See page FAQ Get,update GIT project sources.

How to create a new skin

For this, see page Skins

How to develop my own menu system

For this, see page Menus system

How to develop my own module

To develop your own numbering module, see Create numbering module.

To develop your own document model, PDF or other, see Create a PDF document template or Create an ODT document template.

To develop your own business module (screens, tables), see page Module development.

How to add/complete a translation

For this, see page Translator documentation

Change my numbering system after start

If the new numbering system does not conflict with the old one, to change the numbering rule, just go to menu Setup - Modules - Invoice setup and choose the new numbering rule in the list.

If the new rule can create conflicts with old one, it will be necessary to rename old existing references. This can be done by a SQL request. For example, to go from numbering module Jupiter (FYYYYMM99) to Terre (FAYYMM-999), you can run the following request:

update llx_facture set facnumber=concat('FA',substr(facnumber,4,4),'-',substr(facnumber,8))
where facnumber like 'F%' and facnumber not like 'FA%';

For example, to rename references from model FAYYMM999 to Terre (FAYYMM-999), you can run the following request:

update llx_facture set facnumber=concat('FA',substr(facnumber,3,4),'-',substr(CONCAT('0000',substr(facnumber,7)),-4))
where facnumber like 'FA%' and facnumber not like '%-%';

Submit a patch, work and help on Dolibarr development

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.

  • Because you probably don't have this role (your grade is Jedi or Admiral or Soldier), it is necessary to use the "Fork" feature of GitHub. Then you can make a "Pull Request" from GitHub to ask to have your patch merged into develop branch.

More information on page:

How to package and deploy a module

See page Module development.

This process works also to generate a package to submit it on the market place.

How to be informed on news and what happens on Dolibarr project ?

See page FAQ How to be informed on news about Dolibarr project

Migrate my Mysql database to PostgreSQL

See page FAQ Migrate my Mysql database to PostgreSQL