Developer FAQ: Difference between revisions

Jump to navigation Jump to search
m
no edit summary
mNo edit summary
Line 3: Line 3:
{{TemplateDocDev}}
{{TemplateDocDev}}


== Récupérer/mettre à jour une version CVS développeur ==
= Récupérer/mettre à jour une version CVS développeur =
'''Effectuer une sauvegarde de ses données et de sa configuration'''
'''Effectuer une sauvegarde de ses données et de sa configuration'''


Si vous avez déjà une installation en place, sauvegarder votre fichier htdocs/conf/conf.php au cas où.
Si vous avez déjà une installation en place, sauvegardez votre fichier htdocs/conf/conf.php au cas ou.


'''Récupération dernière version des sources par download'''
'''Récupération de la dernière version des sources par download'''


Cette méthode permet de récupérer la version CVS de la branche de développement principale (appelée HEAD). L'opération consiste à récupérer la dernière version des fichiers de Dolibarr regroupés toutes les nuits dans un zip.
Cette méthode permet de récupérer la version CVS de la branche de développement principale (appelée HEAD). L'opération consiste à récupérer la dernière version des fichiers de Dolibarr regroupés toutes les nuits dans un zip.
Line 14: Line 14:
Les nouveaux fichiers doivent écraser les anciens.
Les nouveaux fichiers doivent écraser les anciens.


'''Récupération dernière version des sources par CVS'''
'''Récupération de la dernière version des sources par CVS'''


Pour récupérer la dernière version en cours de développement, 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).
Pour récupérer la dernière version en cours de développement, 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).
Line 34: Line 34:
  "C:\Program Files\CVSNT\cvs.exe" -q update -P -d
  "C:\Program Files\CVSNT\cvs.exe" -q update -P -d
  CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr''
  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:
Et pour remettre au propre votre copie locale en annulant vos modifications locales sur les fichiers:
  "C:\Program Files\CVSNT\cvs.exe" -q update -P -C -d
  "C:\Program Files\CVSNT\cvs.exe" -q update -P -C -d
  CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr
  CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dolibarr
Line 49: Line 49:
Restaurer le fichier de configuration (./htdocs/conf/conf.php) d'après sa sauvegarde si vous l'avez écrasé.
Restaurer le fichier de configuration (./htdocs/conf/conf.php) d'après sa sauvegarde si vous l'avez écrasé.


'''Mise a jour de la base'''
'''Mise à jour de la base'''


La deuxième étape consiste à migrer la base. Pour celà, il suffit d'appeler la page
La deuxième étape consiste à migrer la base. Pour cela, il suffit d'appeler la page
http://maracinedolibarr/install/
http://maracinedolibarr/install/
et choisir l'option "Mise à jour".
et choisir l'option "Mise à jour".
Line 57: Line 57:
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.
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 ==
'''Autres repository'''
 
Le repository CVS pour les modules non officiels est disponible sous sourceforge
:ext:youlogin@dolibarr.cvs.sourceforge.net:/cvsroot/dolibarr
 
= 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.
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.
Vous pouvez aussi consulter les FAQ suivantes.


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


== Comment développer mon propre système de menu ==
= Comment développer mon propre système de menu =
Voir pour cela la page [[Système_de_menus]]
Voir pour cela la page [[Système_de_menus]]


== Comment développer mon propre module ==
= Comment développer mon propre module =
Voir pour cela la page [[Developpement_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.
Line 83: Line 88:
</pre>
</pre>


Par exemple, pour passer d'un modèle 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>
<pre>
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))
Line 89: Line 94:
</pre>
</pre>


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


* '''Avec accès CVS en écriture '''
* '''Avec accès CVS en écriture '''
Line 98: Line 104:
Sans accès CVS en écriture (sans compte développeur savannah), il est nécessaire de fournir par mail, votre fichier patch.  
Sans accès CVS en écriture (sans compte développeur savannah), il est nécessaire de fournir par mail, votre fichier patch.  


Sous tout OS:
''Sous tout OS:''


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:
Line 108: Line 114:
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 [http://www.cygwin.org cygwin] sous Windows) de la manière suivante:
<pre>
<pre>
diff -Naur --exclude=CVS --exclude=".#*" --exclude="*~" --exclude='*.rej' --exclude='*.orig'
diff -Naur --exclude=CVS --exclude="*.patch" --exclude=".#*" --exclude="*~" --exclude="*.rej"
--exclude="*.bak" --exclude=conf.php --exclude=documents  ancien_rep nouveau_rep  > fichier.patch
    --exclude="*.orig" --exclude="*.bak" --exclude=conf.php --exclude=documents   
    ancien_rep nouveau_rep  > mypatch.patch
</pre>
</pre>
Envoyer votre patch sur la ML.
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).
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:''


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 123: Line 131:


'''Appliquer un patch'''
'''Appliquer un 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 grâce à 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.  
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):
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):
  patch -u -p0 -d ../htdocs < monfichier.patch
  patch -u -p0 -d ../htdocs < monfichier.patch
Line 131: Line 139:
-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 packager/livrer un module pour utilisation ==
= Comment packager/livrer un module pour utilisation =
Voir la page [[Developpement_module#Cr.C3.A9er_un_package_pour_livrer_et_installer_votre_module|Developpement moduel - Créer un package pour livrer et installer votre module]]
Voir la page [[Developpement_module#Cr.C3.A9er_un_package_pour_livrer_et_installer_votre_module|Developpement module - Créer un package pour livrer et installer votre module]]


== Comment devenir développeur officiel ==
= Comment devenir développeur officiel =


Dans la galaxie du projet Dolibarr, il existe plusieurs intervenants de différents niveaux/grades.
Dans la galaxie du projet Dolibarr, il existe plusieurs intervenants de différents niveaux/grades.
Line 147: Line 155:




=== * Soldier ===
== * Soldat ==


La première chose qu'une personne désireuse d'aide doit faire et d'abord se familiariser avec les règles et normes de développements.
La première chose qu'une personne désireuse d'aider doit faire et d'abord se familiariser avec les règles et normes de développements.
En lisant toute la [[Documentation Développeur]], vous faites preuve de volonté suffisante pour devenir automatiquement '''Soldat''' (Votre grade est au niveau '''Soldat'''). Et tout lire, c'est pas le plus facile...
En lisant toute la [[Documentation Développeur]], vous faites preuve de volonté suffisante pour devenir automatiquement '''Soldat''' (Votre grade est au niveau '''Soldat'''). Et tout lire, c'est pas le plus facile...


Ce grade s'obtient sans validation supérieure. C'est un grade de principe, de départ.
Ce grade s'obtient sans validation supérieure. C'est un grade de principe, de départ.


=== * Chasseur ===
== * Chasseur ==


L'étape suivante consiste à soumettre des patch, en commençant par des simples, soit sur la Mailing List dev (voir [[FAQ_D%C3%A9veloppeur#Soumettre_un_patch.2C_am.C3.A9lioration_ou_participer_au_d.C3.A9veloppement|FAQ Développeur]] pour la procédure), soit sur le forum (Mailing List préférée).  
L'étape suivante consiste à soumettre des patch, en commençant par des simples, soit sur la Mailing List dev (voir [[FAQ_D%C3%A9veloppeur#Soumettre_un_patch.2C_am.C3.A9lioration_ou_participer_au_d.C3.A9veloppement|FAQ Développeur]] pour la procédure), soit sur le forum (Mailing List préférée).  
Line 163: Line 171:
Les chasseurs représentent la force vive principale de l'alliance Dolibarr.
Les chasseurs représentent la force vive principale de l'alliance Dolibarr.


=== * Z-6PO ===
== * Z-6PO ==


Si vous parlez couramment une langue non ou mal traduite dans Dolibarr, un '''Jedi''' ou '''Yoda''' vous offrira un accès CVS pour vous permettre de faire des commits sur le CVS du projet à condition qu'il soit limité à des objectifs de traductions.
Si vous parlez couramment une langue non ou mal traduite dans Dolibarr, un '''Jedi''' ou '''Yoda''' vous offrira un accès CVS pour vous permettre de faire des commits sur le CVS du projet à condition qu'il soit limité à des objectifs de traductions.
Ce grade peut donc s'obtenir assez vite.
Ce grade peut donc s'obtenir assez vite.


== * Amiral de l'alliance ==


=== * Amiral de l'alliance ===
Ce n'est qu'au bout d'un temps variable (qui peut être très long) au rang de Chasseur, et si de nombreux patch de qualité satisfaisante ont été envoyée, qu'un Yoda en place vous autorisera à réaliser des commits CVS pour un motif étendu de la traduction à tout correctif.
 
Ce n'est qu'au bout d'un temps variable (qui peut être très long) au rang de Chasseur, et si la qualité des patch qui ont été envoyée est satisfaisante, qu'un Yoda en place vous offrira un accès CVS direct.
Vous êtes devenu un '''Amiral''' de l'alliance Dolibarr.
Vous êtes devenu un '''Amiral''' de l'alliance Dolibarr.


Ce titre ne se demande pas, il s'obtient par décision ou proposition d'un '''Jedi''' ou '''Yoda''' qui estime que vous avez soumis suffisamment de patch pour être un sérieux '''Amiral'''.
Ce titre ne se demande pas, il s'obtient par décision ou proposition d'un '''Jedi''' ou '''Yoda''' qui estime que vous avez soumis suffisamment de patch pour être un sérieux '''Amiral'''.
L'accès CVS d'un '''Amiral''' doit cependant n'être utilisé que pour commiter soit des traductions, soit des corrections de bugs déclarées sur Savannah ou le forum (que ces corrections soit personnelles ou issues d'un patch soumis par un '''Chasseur''').
L'accès CVS d'un '''Amiral''' doit cependant n'être utilisé que pour commiter soit des traductions, soit des corrections de bugs déclarées sur Savannah ou le forum (que ces corrections soient personnelles ou issues d'un patch soumis par un '''Chasseur''').
Tout commit CVS doit ainsi obligatoirement inclure, dans la description (le champ log de commit), le numéro du bug Savannah corrigé OU le titre du message du forum signalant le problème. Seul une traduction échappe à cette contrainte (pas de restrictions pour les traductions). Le non respect de cette contrainte, peut provoquer une rétrogradation au rang de '''Chasseur'''.
Tout commit CVS doit ainsi obligatoirement inclure, dans la description (le champ log de commit), le numéro du bug Savannah corrigé OU le titre du message du forum signalant le problème. Seul une traduction échappe à cette contrainte (pas de restrictions pour les traductions). Le non respect de cette contrainte, peut provoquer une rétrogradation au rang de '''Chasseur'''.
Pour la soumission de nouvelles fonctionnalités, il faut donc obligatoirement continuer sur le principe de patchs envoyés sur la ML.
Pour la soumission de nouvelles fonctionnalités, il faut donc obligatoirement continuer sur le principe de patchs envoyés sur la ML.
Line 182: Line 189:
développeurs (Chasseurs) très important (grâce au système de patch).
développeurs (Chasseurs) très important (grâce au système de patch).


 
== * Jedi ==
=== * Jedi ===


C'est encore au bout d'un temps variable (surement le plus long de tous) au rang d'Amiral, et si la qualité des patch qui ont été envoyée est satisfaisante, qu'un Yoda vous signalera que vous êtes autorisé à réaliser des commits sans restrictions de fonctionnalités, à condition d'avoir cependant l'aval de principe d'un Maitre Yoda à qui vous aurez expliquer la fonctionnalité.
C'est encore au bout d'un temps variable (surement le plus long de tous) au rang d'Amiral, et si la qualité des patch qui ont été envoyée est satisfaisante, qu'un Yoda vous signalera que vous êtes autorisé à réaliser des commits sans restrictions de fonctionnalités, à condition d'avoir cependant l'aval de principe d'un Maitre Yoda à qui vous aurez expliquer la fonctionnalité.
Line 195: Line 201:
développeurs (Chasseurs) très important (grâce au système de patch).
développeurs (Chasseurs) très important (grâce au système de patch).


 
== * Yoda ==
=== * Yoda ===


Au nombre de 1 à 5, être un '''Yoda''', c'est assurer la gestion globale du développement du projet. Ce rang s'obtient par succession, suite au départ d'un Yoda qui se retire, par nomination directe ou vote organisé par le Yoda partant.
Au nombre de 1 à 5, être un '''Yoda''', c'est assurer la gestion globale du développement du projet. Ce rang s'obtient par succession, suite au départ d'un Yoda qui se retire, par nomination directe ou vote organisé par le Yoda partant.


 
== * Et Dark Vador ? ==
 
=== * Et Dark Vador ? ===


Il existe hélas. Les membres de l'empire sont les parasites qui polluent le forum ou la mailing-list de messages ou critiques non constructives, qui ralentissent le développement de Dolibarr plutôt que d'offrir des critiques constructives qui aident à progresser. Certains sont très très fort en mauvaise foie ou mauvais ton. Ce sont des Dark Vador.
Il existe hélas. Les membres de l'empire sont les parasites qui polluent le forum ou la mailing-list de messages ou critiques non constructives, qui ralentissent le développement de Dolibarr plutôt que d'offrir des critiques constructives qui aident à progresser. Certains sont très très fort en mauvaise foie ou mauvais ton. Ce sont des Dark Vador.
Line 208: Line 211:




== L'équipe actuelle ==
= L'équipe actuelle =
Voir la page [[Le projet Dolibarr]] pour connaitre la liste des personnes, participant au projet Dolibarr, à chaque grade actuellement.
Voir la page [[projet Dolibarr]] pour connaitre la liste des personnes, participant au projet Dolibarr, à chaque grade actuellement.

Navigation menu