FAQ Développeur: Difference between revisions

mNo edit summary
Tag: 2017 source edit
 
(209 intermediate revisions by 8 users not shown)
Line 1: Line 1:
== Récupérer/mettre à jour la version CVS développeur ==
<!-- BEGIN interlang links -->
'''Effectuer une sauvegarde de ses données et de sa configuration'''
<!-- Do NOT edit this section
    Links below are automatically managed by PolyglotBot
    You can edit links on the English source page : Developer_FAQ -->
[[en:Developer_FAQ]]
[[de:Entwickler_FAQ]]
[[es:FAQ_Desarrolladores]]
[[zh:开发者常见问题解答]]
<!-- END interlang links -->


'''Utilisation du CVS'''
[[Category:FAQ FR]]
{{TemplateDocDevFr}}
Cette page contient quelques questions-réponses en rapport avec le développement de Dolibarr. Pour des questions-réponses sur l'utilisation, consulter plutot la page [[FAQ Utilisateur]].


La première opération consiste à récupérer les dernières versions des sources CVS.
=Comment devenir développeur officiel=
Pour cela, voir la [http://www.dolibarr.fr/component/option,com_docman/task,cat_view/gid,64/Itemid,36/lang,fr/ Version CVS du jour].
Les nouveaux fichiers doivent écraser les anciens.


Pour récupérer la dernière version CVS, vous pouvez aussi directement utiliser [http://savannah.nongnu.org/cvs/?group=dolibarr le serveur CVS en mode anonyme], si vous disposez d'un client CVS (commande cvs sous linux, ou TortoiseCVS par exemple sous windows)
Dans la galaxie du projet Dolibarr, il existe plusieurs intervenants de différents niveaux/grades.
La commande script permettant de récupérer un snapshot intégral (sans suivi cvs) dans le répertoire courrant est:
Le nombre de développeurs et contributions est important, or tout projet qui veut atteindre un certain niveau de qualité se doit d'avoir une gestion contrôlée et des modifications validées des évolutions, aussi bien au niveau des besoins fonctionnels que du code.
''
Pour cette raison, les accès en écriture sur les sources (serveur GIT) sont limités et régis par une organisation qui est décrite dans les lignes qui suivent.
CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr
Chaque développeur a un '''grade''' qui dépend de son ancienneté et de ses contributions passées. Le niveau d'habilitation d'une personne sur le projet augmente avec les étapes de promotion de grade.
export CVSROOT
cvs -q export -r HEAD -d ./ dolibarr/
''
Pour récupérer uniquement les 3 dossiers principaux de Dolibarr:
''
CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr
export CVSROOT
cvs -q export -r HEAD -d ./htdocs dolibarr/htdocs
cvs -q export -r HEAD -d ./mysql dolibarr/mysql
cvs -q export -r HEAD -d ./external-libs dolibarr/external-libs
''


La commande permettant de mettre à jour localement la copie de travail CVS :
Le cursus d'un développeur Dolibarr passe donc par ces étapes, que l'on classe par un titre familier aux adeptes de science-fiction. Voici ces étapes.
''Sous linux (script shell):
CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr
export CVSROOT
cvs -q update -P -d
Sous Windows avec Tortoise cvs
"C:\Program Files\CVSNT\cvs.exe" -q update -P -d
CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr''
Et pour remettre au propre votre copie locale en annulant vos modifications sur les fichiers intégrés au cvs:
"C:\Program Files\CVSNT\cvs.exe" -q update -P -C -d
CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr


Si besoin, modifiez les droits de propriétaire des dossiers, pour que le serveur y ait accès.
Les grades des contributeurs au projet Dolibarr, et ce qu'il faut faire pour atteindre ce grade, sont définis sur la page suivante: [[Projet_Dolibarr#Les_r.C3.B4les_d.C3.A9veloppeurs|Projet Dolibarr]] dans la section '''Les rôles développeurs'''.


'''Restaurer sa configuration'''
=Qui développe Dolibarr=
Voir la page [[projet Dolibarr]] pour connaitre la liste des personnes, participant au projet Dolibarr, à chaque grade actuellement.


Restaurer le fichier de configuration (./htdocs/conf/conf.php) d'après sa sauvegarde si vous l'avez écrasé.
=Démarrer le développement=
 
Consulter intégralement la [[Documentation Développeur]] pour assimiler toutes les règles et principes imposées aux développeurs.
'''Mise a jour de la base'''
Vous pouvez aussi consulter les FAQ suivantes.
 
La deuxième étape consiste à migrer la base. Pour celà, il suffit d'appeler la page
http://maracinedolibarr/install/
et choisir l'option "Mise à jour".
 
Cette procédure de migration/mise à jour est conçue pour fonctionner quel que soit l'état de départ et peut être repassée plusieurs fois sans risque.
 
== Démarrer le développement ==


Consulter '''intégralement''' la [[Documentation Développeur]] pour assimiler toutes les règles et principes imposées aux développeurs.
=Récupérer/mettre à jour les sources du projet=
Vous pouvez aussi consulter les FAQ suivantes.
Voir la page [[FAQ Récupérer, mettre à jours les sources du projet]].


== Comment créer un nouveau theme ==
=Comment créer un nouveau theme=
Voir pour cela la page [[Themes]]
Voir pour cela la page [[Themes]]


=Comment développer mon propre module=
Pour développer son propre module de numérotation, voir [[Créer un module de numérotation]].


== Comment développer mon propre système de menu ==
Pour développer son propre modèle de document, PDF ou autre, voir [[Créer un modèle de document PDF]] ou [[Créer un modèle de document ODT]].
Voir pour cela la page [[Système_de_menus]]
 


== Comment développer mon propre module ==
Pour développer un module fonctionnel entier (écrans, tables), voir pour cela la page [[Développement module]].
Voir pour cela la page [[Developpement_module]]


 
=Comment ajouter ou compléter une traduction=
== Comment ajouter ou compléter une traduction ==
Voir pour cela la page [[Documentation_traducteur]]
Voir pour cela la page [[Documentation_traducteur]]


== Changer mon système de numérotation des factures en cours de route ==
=Changer mon système de numérotation des factures en cours de route=
Si le nouveau système de numérotation n'entre pas en conflit avec l'ancien, il suffit d'aller dans le menu Configuration - Modules - Configuration factures et prendre un nouveau modèle dans la liste.
Si le nouveau système de numérotation n'entre pas en conflit avec l'ancien, il suffit d'aller dans le menu Configuration - Modules - Configuration factures et prendre un nouveau modèle dans la liste.
Si le nouveau système rentre en conflit, il est nécessaire de renuméroter vos références existantes. Cela peut-être fait avec une requête SQL.
Si le nouveau système rentre en conflit, il est nécessaire de renuméroter vos références existantes. Cela peut-être fait avec une requête SQL.
Par exemple, pour passer de Jupiter (FYYYYMM99) à Terre (FAYYMM-999), vous pouvez exécuter la requête suivante:
Par exemple, pour passer de Jupiter (FYYYYMM99) à Terre (FAYYMM-999), vous pouvez exécuter la requête suivante:
<pre>
<source lang="sql">
update llx_facture set facnumber=concat('FA',substr(facnumber,4,4),'-',substr(facnumber,8))
update llx_facture set facnumber=concat('FA',substr(facnumber,4,4),'-',substr(facnumber,8))
where facnumber like 'F%' and facnumber not like 'FA%';
where facnumber like 'F%' and facnumber not like 'FA%';
</pre>
</source>


Par exemple, pour passer d'un modele FAYYMM999 à Terre (FAYYMM-999), vous pouvez exécuter la requête suivante:
Par exemple, pour passer d'un modele FAYYMM999 à Terre (FAYYMM-999), vous pouvez exécuter la requête suivante:
<pre>
<source lang="sql">
update llx_facture set facnumber=concat('FA',substr(facnumber,3,4),'-',substr(CONCAT('0000',substr(facnumber,7)),-4))
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 '%-%';
where facnumber like 'FA%' and facnumber not like '%-%';
</pre>
</source>


=Soumettre un patch, amélioration ou participer au développement=
Si vous cherchez comment commencer ou contribuer aux développements Dolibarr, lisez dans un premier temps le chapitre [[FAQ_Développeur#Comment devenir développeur officiel]]. Si votre patch est déjà prêt et voulez le diffuser, ce chapitre est pour vous.


== Soumettre un patch, amelioration ou participer au développement ==
==Avec un compte GitHub==
Les accès au dépot des sources en lecture est publique. La soumission de contributions dépend toutefois de votre niveau dans le projet.


* '''Avec accès CVS en écriture '''
*Si vous bénéficiez d'un grade Yoda (rarissime), et donc un accès en écriture direct au dépôt de référence, utilisez-le (Voir [[FAQ_D%C3%A9veloppeur#Comment_devenir_d.C3.A9veloppeur_officiel|FAQ Développeur - Devenir développeur officiel]] pour les différents grades).
A ce jour, les accès en écriture au CVS sont restreints (le nombre de commit étant déjà suffisamment dynamique). Il n'est pas exclu d'accueillir d'autres développeurs en modification à d'autres horizons. Si vous bénéficiez donc à l'heure actuelle d'un accès CVS en écriture, utilisez-le. Sinon, il est nécessaire de suivre la procédure qui suit (Modification du code, sans accès CVS en écriture)


* '''Sans accès CVS en écriture'''
*Si vous n'avez pas d'accès en écriture direct au dépôt de référence (cas général, votre grade est donc [[Developer FAQ#Soldier|Jedi]] ou [[Developer FAQ#Soldier|Admiral]] ou [[Developer FAQ#Soldier|Soldier]]), vous devez alors utiliser GitHub en « Forkant » le dépôt sur votre compte, puis en faisant une demande de « Pull Request » de votre branche sur le dépôt principal. C'est la méthode recommandée la plus propre et la plus performante. Voir pour plus d'info la page https://wiki.dolibarr.org/index.php/FAQ_Get,update_GIT_project_sources
Si vous n'avez pas de compte développeur, il est nécessaire de fournir par mail, votre fichier patch.  


Sous tout OS:
Note:  Si vous ne savez pas bien utiliser l'outil GIT et si votre modification est petite (porte sur un ou deux fichiers), sachez qu'il est possible simplement, en allant sur votre compte GitHub et sur votre repository "Forké" depuis l'interface Web de GitHub, de modifier le fichier en ligne. Une fois la modification faite, vous pouvez utiliser la fonction soumettre Pull Request pour la suggérer au projet. Un valideur l'intégrera alors sans effort si elle est valide.
 
*La procédure qui suit reste un alternative techniquement possible mais n'est plus pratiquée que pour les toutes petites modifications...
 
==Sans compte GitHub==
Sans compte GitHub, il est nécessaire de générer et fournir par mail, sur la mailing-list développeur '''dolibarr-dev''' votre fichier patch (Voir ici pour cela {{TemplateURLMLDev}}). Voici la procédure pour générer un fichier patch:
 
''Sous tout OS:'' [[Image:Logo_windows.png|20px]] [[Image:Logo_ubuntu.png|20px]] [[Image:Logo_apple.png|20px]]


Voici la ''méthode Pro'' selon laquelle travailler pour pouvoir générer un tel fichier patch:
Voici la ''méthode Pro'' selon laquelle travailler pour pouvoir générer un tel fichier patch:


- Avoir un répertoire qui contient la version de Dolibarr de référence (résultat de la mise à jour CVS ou bien tout simplement l'arborescence résultant de la décompression d'un snapshot tgz de Dolibarr). On appellera ce répertoire '''ancien_rep'''. Vous pouvez récupérer le snapshot de la version de dev en cours sur le  [http://www.dolibarr.org/component/option,com_docman/task,cat_view/gid,50/Itemid,36/lang,en/ site officiel de Dolibarr].
- Avoir un répertoire qui contient la version de Dolibarr de référence (résultat de la mise à jour GIT ou bien tout simplement l'arborescence résultant de la décompression d'un snapshot tgz de Dolibarr). On appellera ce répertoire '''ancien_rep'''. Vous pouvez récupérer le snapshot de la version de dev en cours sur le  [https://www.dolibarr.org/downloads/ site officiel de Dolibarr - espace téléchargement - version développement].


- Avoir un autre répertoire qui contient l'arborescence de Dolibarr mais dans laquelle vous faites ou avez fait vos modifications. On appellera ce répertoire '''nouveau_rep'''.
- Avoir un autre répertoire qui contient l'arborescence de Dolibarr mais dans laquelle vous faites ou avez fait vos modifications. On appellera ce répertoire '''nouveau_rep'''.


Pour générer le fichier patch, il suffit alors de lancer la commande '''diff''' (en standard sous Linux, fourni dans [http://www.cygwin.org cygwin] sous Windows) de la manière suivante:
Pour générer le fichier patch, il suffit alors de lancer la commande '''diff''' (en standard sous Linux, fourni dans [https://www.cygwin.org/cygwin cygwin] sous Windows) de la manière suivante:
<pre>
<source lang="bash">
diff -Naur --exclude=CVS --exclude=".#*" --exclude="*~" --exclude="*.bak" --exclude=conf.php --exclude=documents  ancien_rep nouveau_rep  > fichier.patch
diff -BNaur --exclude=CVS --exclude="*.patch" --exclude=".#*" --exclude="*~" --exclude="*.rej" \
</pre>
    --exclude="*.orig" --exclude="*.bak" --exclude=conf.php --exclude=documents  \
Envoyer votre patch sur la ML.
    ancien_rep nouveau_rep  > mypatch.patch
L'intégration de votre patch n'est toutefois pas garantie, pas plus que le délai.
</source>
Un script ksh réalisant cette commande est disponible dans le répertoire '''build/patch'''.
Envoyer votre patch sur la ML à l'adresse '''dolibarr-dev@nongnu.org'''.
L'intégration de votre patch n'est toutefois pas garantie, pas plus que le délai, mais si le patch est réalisé en suivant rigoureusement cette procédure, il a de forte chance d'être au moins testé (dans le cas contraire les chances sont proches de 0).


Sous Windows:
''Sous Windows:'' [[Image:Logo_windows.png|20px]]


Si vous êtes sous Windows, une ''méthode moins Pro'' mais qui donne le même résultat est la suivante. Installer l'excellent outil open source de comparaison Winmerge qui sait fabriquer des patchs au format ''diff -Naur''. Pour cela, comparer avec Winmerge le fichier référence et le fichier modifié et choisir dans le menu ''"Tools - Generate patch"'' (''Générer des retouches'' en version française). Saisir un nom de fichier comme ''"resultat.patch"'', cocher la case ''"Append"'' et choisir l'option ''"Format Unified"'' (''Style : unifié'' en version française). Cliquer sur ''"Ok"''.
Si vous êtes sous Windows, une ''méthode moins Pro'' mais qui donne le même résultat est la suivante. Installer l'excellent outil open source de comparaison Winmerge qui sait fabriquer des patchs au format ''diff -Naur''. Pour cela, comparer avec Winmerge le fichier référence et le fichier modifié et choisir dans le menu ''"Tools - Generate patch"'' (''Générer des retouches'' en version française). Saisir un nom de fichier comme ''"resultat.patch"'', cocher la case ''"Append"'' et choisir l'option ''"Format Unified"'' (''Style : unifié'' en version française). Cliquer sur ''"Ok"''.
Line 115: Line 103:
Au final, on obtient un beau fichier ''resultat.patch'' qui contient toutes les modifications au bon format.
Au final, on obtient un beau fichier ''resultat.patch'' qui contient toutes les modifications au bon format.


Au lieu de rechercher manuellement vos fichiers, si vous avez installé conjointement ''TortoiseCVS'' et ''Winmerge'', vous pouvez vous contenter de votre version modifiée sur votre ordinateur, et de la version CVS en ligne. Sous l'explorateur Windows, faites un clic droit sur le fichier qui doit être patché, et choisissez "CVS comparer" (pas WinMerge qui se trouve quelques lignes plus bas). Tortoise va lui-même lancer WinMerge. Puis reprenez la procédure décrite ci-dessus.
''Tester/Appliquer un patch''


'''Appliquer un patch'''
Pour appliquer un fichier patch sur une version non modifié afin d'intégrer les modifications décrites dans le fichier patch, vous pouvez utiliser l'utilitaire '''patch'''.
Si votre patch n'a pas encore été appliqué, mais que vous souhaitez de votre coté l'appliquer sur votre serveur linux fraichement mis à jour depuis la CVS, cela est possible grace à l'utilitaire patch.  
Imaginons que vous avez un répertoire des sources d'une version non modifiée de Dolibarr sur un serveur. Pour appliquer le patch, placer dans le répertoire racine de Dolibarr et lancez la commande:
En admettant que vous avez créé votre patch à partir du répertoire htdocs de votre copie locale du cvs modifiée par vos soins, et que vous avez envoyé votre patch (monfichier.patch) sur le serveur dans le dossier patchs situé au meme niveau que votre dossier htdocs distant, la commande suivante devrait faire l'affaire (executée depuis le dossier patchs):
<source lang="bash">
patch -u -p0 -d ../htdocs < monfichier.patch
patch -u -p0 -d . < monfichier.patch
<nowiki>Pour information: -p0 permet d'utiliser le chemin entier tel que mentionné dans le fichier de patch (-pn en retire les n premiers niveau de l'arborescence)
</source>
-d permet de préciser le chemin relatif vers le dossier htdocs à patcher.
<nowiki>Pour information: -p0 permet d'utiliser le chemin entier tel que mentionné dans le fichier de patch pour retrouver les fichiers à modifier dans votre arborescence source (-pn en retire les n premiers niveau de l'arborescence)
< permet de donner le chemin vers le fichier source à utiliser (le patch en mode unifié)
-d permet de préciser le chemin relatif vers le dossier à patcher.
< permet de donner le chemin vers le fichier source à utiliser (le patch doit être au format unifié)
-u permet de préciser que le patch est en mode unifié</nowiki>
-u permet de préciser que le patch est en mode unifié</nowiki>


== Comment devenir développeur officiel ==
''Envoyer le patch par mail''
 
Ceci passe par plusieurs étapes.
 
'''Membre de l'alliance'''
 
Il faut d'abord se familiariser avec les règles et normes de développements.
En lisant toute la documentation développeur, vous devenez ainsi membre de l'alliance.
 
'''Chasseur de l'alliance'''


L'étape suivante consiste à soumettre des patch, en commençant par des simples, sur la ML (voir chapitre précédent). A votre première soumission, vous entrez alors dans la famille des Chasseurs de l'alliance.
Une fois votre fichier patch généré et testé avec succès, vous pouvez l'envoyer sur la mailing-list de développement '''dolibarr-dev''' de Dolibarr (Voir ici pour cela {{TemplateURLMLDev}}).
Cette mailing-list est lu de tous les développeurs principaux mais nous ne pouvons garantir que le patch sera inclus, cela dépend de sa qualité et des autres priorités de développement du moment.


'''Jedi'''
=Comment packager/livrer un module=
Voir la page [[Développement_module#Cr.C3.A9er_un_package_pour_livrer_et_installer_votre_module|Developpement module - Créer un package pour livrer et installer votre module]]


Ce n'est qu'au bout d'un temps variable, qui peut être très long, et si la qualité des patch
La procédure est également valide pour générer un package pour le soumettre sur la place de marché https://www.dolistore.com
qui ont été envoyée est satisfaisante que l'équipe en place offrira un accès CVS direct.
Vous êtes devenu un Jedi. Ce titre ne se demande pas, il s'obtient par proposition d'un autre Jedi.
Ce privilège est toutefois exceptionnel. La qualité de Dolibarr ne pouvant être atteindre
que par un nombre de commiteur très réduit, ce qui n'empêche pas d'avoir un nombre de
développeur (chasseurs) très important (grâce au système de patch).


'''Maitre Yoda'''
=Comment être informé de ce qui se passe sur Dolibarr ?=
Voir la page [[FAQ Comment être informé de l'actualité de Dolibarr ?]]


Au nombre de 1 à 3, c'est le role de chef de projet.
=Migrer ma base de Mysql vers PostgreSQL=
Voir la page [[FAQ Migrer ma base Mysql vers PostgreSQL]]

Latest revision as of 11:50, 14 May 2025

Cette page contient quelques questions-réponses en rapport avec le développement de Dolibarr. Pour des questions-réponses sur l'utilisation, consulter plutot la page FAQ Utilisateur.

Comment devenir développeur officiel

Dans la galaxie du projet Dolibarr, il existe plusieurs intervenants de différents niveaux/grades. Le nombre de développeurs et contributions est important, or tout projet qui veut atteindre un certain niveau de qualité se doit d'avoir une gestion contrôlée et des modifications validées des évolutions, aussi bien au niveau des besoins fonctionnels que du code. Pour cette raison, les accès en écriture sur les sources (serveur GIT) sont limités et régis par une organisation qui est décrite dans les lignes qui suivent. Chaque développeur a un grade qui dépend de son ancienneté et de ses contributions passées. Le niveau d'habilitation d'une personne sur le projet augmente avec les étapes de promotion de grade.

Le cursus d'un développeur Dolibarr passe donc par ces étapes, que l'on classe par un titre familier aux adeptes de science-fiction. Voici ces étapes.

Les grades des contributeurs au projet Dolibarr, et ce qu'il faut faire pour atteindre ce grade, sont définis sur la page suivante: Projet Dolibarr dans la section Les rôles développeurs.

Qui développe Dolibarr

Voir la page projet Dolibarr pour connaitre la liste des personnes, participant au projet Dolibarr, à chaque grade actuellement.

Démarrer le développement

Consulter intégralement la Documentation Développeur pour assimiler toutes les règles et principes imposées aux développeurs. Vous pouvez aussi consulter les FAQ suivantes.

Récupérer/mettre à jour les sources du projet

Voir la page FAQ Récupérer, mettre à jours les sources du projet.

Comment créer un nouveau theme

Voir pour cela la page Themes

Comment développer mon propre module

Pour développer son propre module de numérotation, voir Créer un module de numérotation.

Pour développer son propre modèle de document, PDF ou autre, voir Créer un modèle de document PDF ou Créer un modèle de document ODT.

Pour développer un module fonctionnel entier (écrans, tables), voir pour cela la page Développement module.

Comment ajouter ou compléter une traduction

Voir pour cela la page Documentation_traducteur

Changer mon système de numérotation des factures en cours de route

Si le nouveau système de numérotation n'entre pas en conflit avec l'ancien, il suffit d'aller dans le menu Configuration - Modules - Configuration factures et prendre un nouveau modèle dans la liste. Si le nouveau système rentre en conflit, il est nécessaire de renuméroter vos références existantes. Cela peut-être fait avec une requête SQL. Par exemple, pour passer de Jupiter (FYYYYMM99) à Terre (FAYYMM-999), vous pouvez exécuter la requête suivante:

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

Par exemple, pour passer d'un modele FAYYMM999 à Terre (FAYYMM-999), vous pouvez exécuter la requête suivante:

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 '%-%';

Soumettre un patch, amélioration ou participer au développement

Si vous cherchez comment commencer ou contribuer aux développements Dolibarr, lisez dans un premier temps le chapitre FAQ_Développeur#Comment devenir développeur officiel. Si votre patch est déjà prêt et voulez le diffuser, ce chapitre est pour vous.

Avec un compte GitHub

Les accès au dépot des sources en lecture est publique. La soumission de contributions dépend toutefois de votre niveau dans le projet.

  • Si vous n'avez pas d'accès en écriture direct au dépôt de référence (cas général, votre grade est donc Jedi ou Admiral ou Soldier), vous devez alors utiliser GitHub en « Forkant » le dépôt sur votre compte, puis en faisant une demande de « Pull Request » de votre branche sur le dépôt principal. C'est la méthode recommandée la plus propre et la plus performante. Voir pour plus d'info la page https://wiki.dolibarr.org/index.php/FAQ_Get,update_GIT_project_sources
Note:  Si vous ne savez pas bien utiliser l'outil GIT et si votre modification est petite (porte sur un ou deux fichiers), sachez qu'il est possible simplement, en allant sur votre compte GitHub et sur votre repository "Forké" depuis l'interface Web de GitHub, de modifier le fichier en ligne. Une fois la modification faite, vous pouvez utiliser la fonction soumettre Pull Request pour la suggérer au projet. Un valideur l'intégrera alors sans effort si elle est valide.
  • La procédure qui suit reste un alternative techniquement possible mais n'est plus pratiquée que pour les toutes petites modifications...

Sans compte GitHub

Sans compte GitHub, il est nécessaire de générer et fournir par mail, sur la mailing-list développeur dolibarr-dev votre fichier patch (Voir ici pour cela https://savannah.nongnu.org/mail/?group=dolibarr). Voici la procédure pour générer un fichier patch:

Sous tout OS:      

Voici la méthode Pro selon laquelle travailler pour pouvoir générer un tel fichier patch:

- Avoir un répertoire qui contient la version de Dolibarr de référence (résultat de la mise à jour GIT ou bien tout simplement l'arborescence résultant de la décompression d'un snapshot tgz de Dolibarr). On appellera ce répertoire ancien_rep. Vous pouvez récupérer le snapshot de la version de dev en cours sur le site officiel de Dolibarr - espace téléchargement - version développement.

- Avoir un autre répertoire qui contient l'arborescence de Dolibarr mais dans laquelle vous faites ou avez fait vos modifications. On appellera ce répertoire nouveau_rep.

Pour générer le fichier patch, il suffit alors de lancer la commande diff (en standard sous Linux, fourni dans cygwin sous Windows) de la manière suivante:

diff -BNaur --exclude=CVS --exclude="*.patch" --exclude=".#*" --exclude="*~" --exclude="*.rej" \
     --exclude="*.orig" --exclude="*.bak" --exclude=conf.php --exclude=documents  \
     ancien_rep nouveau_rep  > mypatch.patch

Un script ksh réalisant cette commande est disponible dans le répertoire build/patch. Envoyer votre patch sur la ML à l'adresse dolibarr-dev@nongnu.org. L'intégration de votre patch n'est toutefois pas garantie, pas plus que le délai, mais si le patch est réalisé en suivant rigoureusement cette procédure, il a de forte chance d'être au moins testé (dans le cas contraire les chances sont proches de 0).

Sous Windows:  

Si vous êtes sous Windows, une méthode moins Pro mais qui donne le même résultat est la suivante. Installer l'excellent outil open source de comparaison Winmerge qui sait fabriquer des patchs au format diff -Naur. Pour cela, comparer avec Winmerge le fichier référence et le fichier modifié et choisir dans le menu "Tools - Generate patch" (Générer des retouches en version française). Saisir un nom de fichier comme "resultat.patch", cocher la case "Append" et choisir l'option "Format Unified" (Style : unifié en version française). Cliquer sur "Ok". Éventuellement recommencer pour chaque fichier modifié. Au final, on obtient un beau fichier resultat.patch qui contient toutes les modifications au bon format.

Tester/Appliquer un patch

Pour appliquer un fichier patch sur une version non modifié afin d'intégrer les modifications décrites dans le fichier patch, vous pouvez utiliser l'utilitaire patch. Imaginons que vous avez un répertoire des sources d'une version non modifiée de Dolibarr sur un serveur. Pour appliquer le patch, placer dans le répertoire racine de Dolibarr et lancez la commande:

patch -u -p0 -d . < monfichier.patch

Pour information: -p0 permet d'utiliser le chemin entier tel que mentionné dans le fichier de patch pour retrouver les fichiers à modifier dans votre arborescence source (-pn en retire les n premiers niveau de l'arborescence) -d permet de préciser le chemin relatif vers le dossier à patcher. < permet de donner le chemin vers le fichier source à utiliser (le patch doit être au format unifié) -u permet de préciser que le patch est en mode unifié

Envoyer le patch par mail

Une fois votre fichier patch généré et testé avec succès, vous pouvez l'envoyer sur la mailing-list de développement dolibarr-dev de Dolibarr (Voir ici pour cela https://savannah.nongnu.org/mail/?group=dolibarr). Cette mailing-list est lu de tous les développeurs principaux mais nous ne pouvons garantir que le patch sera inclus, cela dépend de sa qualité et des autres priorités de développement du moment.

Comment packager/livrer un module

Voir la page Developpement module - Créer un package pour livrer et installer votre module

La procédure est également valide pour générer un package pour le soumettre sur la place de marché https://www.dolistore.com

Comment être informé de ce qui se passe sur Dolibarr ?

Voir la page FAQ Comment être informé de l'actualité de Dolibarr ?

Migrer ma base de Mysql vers PostgreSQL

Voir la page FAQ Migrer ma base Mysql vers PostgreSQL