wiki:fr/patchs
developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Proposer un patch

Le code de Jelix est hébergé sur le site Github, qui permet d'apporter des modifications directement en ligne. N'utilisez cette fonctionnalité que pour les modifications très mineures, comme des erreurs d'orthographe, de syntax, bref, pour les modifications qui ne touchent que quelques lignes et un unique fichier. Pour les modifications plus importantes ou qui touchent plusieurs fichiers à la fois, veuillez suivre la procédure suivante.

Pour proposer une modification, vous devez

  1. récupérer la dernière version de jelix dans le dépôt git et non pas les fichiers disponibles en téléchargement.
  2. modifier des fichiers sources de jelix (correction de bug, amélioration, nouvelle fonctionnalité etc..)
  3. lancer les tests avec vagrant
  4. créer le patch si tout est ok.

ce que doit contenir votre patch

Votre patch contient bien sûr les modifications dans le code, mais pas seulement. Il doit aussi contenir les modifications des en-têtes (nom, copyright etc..), et les modifications des fichiers de build (ceux situés dans build/manifests/) si votre patch concerne l'ajout d'une fonctionnalité tel un plugin template ou un contrôle jForms etc... . Bien lire attentivement les conventions de codage.

Création du patch

La meilleure façon est de "forker" le dépôt de jelix dans votre compte github.

  1. créez un compte sur github.com si ce n'est pas déjà fait
  2. allez sur la page du projet jelix https://github.com/jelix/jelix
  3. cliquez sur le bouton "fork" en haut à gauche. Un clone du dépôt de jelix est alors créé dans votre compte github
  4. allez sur la page de VOTRE fork (ex: https://github.com/votrelogin/jelix)
  5. vous verrez alors l'url pour cloner votre fork sur votre machine de travail. ex: git@…:votrelogin/jelix.git
  6. sur votre machine, clonez le dépôt en indiquant cette url. ex: git clone git@…:votrelogin/jelix.git
  7. vous être prêts à travailler avec les sources de jelix

Créez une branche dans votre clone, pour chaque modifications distinctes (pour chaque ticket en gros). Cela permettra alors de fusionner les branches qui ont été acceptées sans inclure vos modifications non terminées ou refusées.

Important: Vos changements doivent s'effectuer sur les bonnes branches. Vous ne proposerez des modifications dans les branches des versions stables (jelix-1.5.x, jelix-1.6.x), que celles qui sont des corrections de bugs. Pas d'amélioration ou de fonctionnalités qui changent un comportement, qui peuvent provoquer des régressions etc. Les petites améliorations qui ne font qu'ajouter un plugin ou une méthode sont susceptibles toutefois d'être acceptés. Rappelez-vous, ce sont des branches stables. On doit pouvoir mettre à jour Jelix sans avoir à toucher à l'application (sauf si bien sûr, il y a une correction d'un trou de sécurité qui impose de le faire). Bref, toutes les nouveautés doivent être faites dans la branche master.

Pour les petites modifications, essayez de limiter le nombre de commit. La review sera plus simple et cela permettra de garder un historique clair. Pour les modifications plus conséquentes, il est préférable bien sûr d'avoir plusieurs commits, un pour chaque étape. Afin d'obtenir un historique compréhensible, essayer de faire des commits clairs. Chaque changement devrait correspondre à une étape spécifique de modifications.

Lisez la page sur les commits pour le format des messages des commits.

Quand votre modification est prête, fait un git push sur votre dépôt local vers votre fork github (git push origin mabranche). Puis faites un "pull request" sur github (bouton en haut sur la page de votre fork)? Un reviewer vérifiera alors votre code, proposera peut-être des améliorations à faire, et ensuite importera vos changements dans le dépôt officiel.


Sommaire

Last modified 3 years ago Last modified on Nov 24, 2015, 9:24:19 PM