Submitting code to OpenSim/fr

Vue d'ensemble
Avant de commencer, veuillez consulter notre Politique de contribution.

Tous les patchs ne seront pas intégrés à OpenSimulator. Afin de limiter la complexité du code, OpenSimulator n'a pas pour but d'être un projet "batteries incluses". Les choses qui ne peuvent pas être considérées comme des fonctionnalités de base sont mieux implémentées en tant que module de région externe. Si des éléments/événements supplémentaires sont nécessaires pour les faire fonctionner, les correctifs pour ceux-ci sont les bienvenus.

Veuillez consulter les Normes de codage et les respecter dans votre patch. La seule exception est si le code existant n'est pas conforme à ces directives. Dans ce cas, il est possible d'être cohérent avec le code déjà présent dans le fichier. Si un patch ne respecte pas les directives, nous demanderons à ce qu'il soit modifié.

Veuillez ne mettre qu'un seul modification logique à la fois dans un patch. Les patchs qui contiennent plus d'un changement logique ont tendance à être plus grands, plus complexes et prennent donc plus de temps à être appliqués. Au pire, les développeurs auront tendance à ne pas les regarder car il est difficile de démêler tous les effets possibles. Plusieurs changements logiques peuvent être dans un patch s'ils n'affectent qu'une seule fonctionnalité (comme, par exemple, la fonctionnalité que le patch active).

Test
Veuillez exécuter les tests automatisés (via "nant test" en ligne de commande) avant de soumettre votre patch. Les patchs qui ajoutent de nouveaux tests (soit pour tester le code accompagnant le patch, soit pour tester le code existant) sont les bienvenus.

Créer un fichier de correctif
Le code est soumis à OpenSimulator via des patchs attachés à des entrées dans notre Mantis bug tracker. Une façon de les générer est d'utiliser la ligne de commande Git.

git format-patch ^!

Cela regroupera tous vos git commit de changement dans un joli fichier facilement applicable.

Alternativement, si vous avez un commit spécifique, ou une série de commits, que vous voulez inclure dans le patch, alors lancez cette commande :

git format-patch -

Par exemple, si votre hash de commit est a30f224, et que vous voulez que le patch n'inclue que ce seul commit, alors vous utiliserez cette commande :

git format-patch -1 a30f224

Si votre patch inclut plusieurs commits séquentiels, alors sera le nombre de commits, et le hash de commit sera le commit le plus récent.

Soumettre le patch
Soumettez le patch en l'attachant à une entrée dans Mantis.
 * Si vous créez une nouvelle entrée, la ligne de titre doit commencer par [PATCH].
 * Une fois que vous avez soumis votre patch, veuillez déplacer l'entrée  Mantis dans l'état  Patch inclus  pour nous faire savoir qu'il y a un patch en attente d'être examiné.  Cela peut prendre un peu plus de temps pour voir une entrée dans Mantis avec un patch si elle n'est pas dans cet état (et dans de rares cas malheureux, elle peut être ignorée pendant un certain temps).

Une fois que vous l'avez mis sur une Mantis, vous pouvez passer sur les canaux IRC et informer quelqu'un là-bas (bien que pour le moment, nous sommes assez bons pour les repérer, puisque les e-mails concernant les entrées nouvellement ouvertes dans Mantis sont envoyées automatiquement aux développeurs).

En général, le délai d'exécution pour l'examen d'un patch est d'une semaine, mais il peut aller jusqu'à deux semaines selon la situation. Si vous voulez parler d'un patch (ou rappeler aux gens qu'il existe après une semaine), n'hésitez pas à vous rendre sur #opensim-dev sur IRC ou à envoyer un e-mail à la liste de diffusion opensim-dev.

Lorsqu'un patch est examiné, il est soit appliqué (dans ce cas, merci beaucoup !), soit l'entrée dans Mantis passe à l'état "Patch feedback" avec les commentaires des développeurs/parties intéressées. Si vous révisez le patch à la lumière de la discussion, veuillez alors changer l'état de l'entrée en "Patch inclus".

Donner un coup de main
Si vous cherchez un premier morceau de code à faire, les bogues sur la Mantis constituent un très bon point de départ. Vous voudrez peut-être voir s'il y a quelqu'un sur IRC pour discuter de la complexité d'un bogue particulier (ils varient, parfois de manière inattendue).