JMRI: Developing with JMRI Code
Author: Bob Jacobsen
Keywords: JMRI technical code Git download

# JMRI: Developpement avec le Code JMRI

## Contexte

Tout le monde est invité à obtenir une copie du code JMRI et le modifier pour son usage personnel. Ce qui fait qu'un développeur JMRI contribue aux modifications pour les autres puissent les utiliser. Cette page explique comment le faire, en supposant que vous avez obtenu une copie du code en suivant les procédures précédemment décrites.

Voir la page FAQ JMRI Git pour plus de détails sur ces processus.

Le lien à gauche fournit plus d'information sur la construction avec des outils spécifiques. Vous pouvez lire la page pour votre configuration personnalisée.

Le reste de cette page fournit un aperçu du processus de développement du code JMRI avec Git. Basiquement vous créez une nouvelle branche, faites vos changements, compilez/exécutez/testez jusqu'à ce que vous ayez finit vos modifications prévues, et ensuite envoyez ce changement pour inclusion dans le répertoire principal.

Cela se fait avec un processus en quatre étapes:

1. Vous créez une branche Git pour mettre votre travail
2. Périodiquement vous "soumettez" vos modifications à votre répertoire local.
3. Périodiquement vous "poussez" ces modifications dans un répertoire de votre votre branche personnelle sur GitHub.
4. quand votre modification est complète, vous créez un "pull request" qui permet à JMRI d'obtenir votre modification pour le répertoire GitHub et le fusionner dans le répertoire principal JMRI.

### Créer une Branche pour le Développement

Git est très bien pour garder le développement sur les "branches" parallèles séparées. Bien que le développement primaire soit sur la branche "master", nous recommandons fortement que vous ne fassiez pas vos modifications directement sur elle. Il y a beaucoup de développeurs JMRI, et avoir tous les travaux sur une seule branche peut être source de confusion. À la place, vous devrez créer une branche séparée pour chacun de vos projets, et travailler dessus jusqu'à ce qu'il soit prêt à être fusionné dans le répertoire source principal JMRI, et puis contribuer avec le contenu de la branche entière dans notre dépôt principal.

Pour créer une nouvelle branche:

      git checkout master

      git pull

      git checkout -b my-new-feature-or-fix

Les deux premières lignes "git checkout master" & "git pull" assurent que vous démarrez depuis les contenus les plus récents de la branche "maître". La branche principale est l'endroit où nous faisons le développement entre les versions de test.

L'option -b dans la dernière ligne crée une nouvelle branche qui contiendra votre nouveau travail. Ceci vous permet de travailler sans interférence avec les changements d'autres personnes jusqu'à ce que vous soyez prêt à fusionner avec ceux-ci. Le "checkout" signifie que vous travaillez sur cette nouvelle branche, qui détiendra tout ce que vous soumettrez dans les étapes ultérieures.

### Soumettre les Modifications à Votre Répertoire Local

Vous devrez soumettre souvent vos modifications à votre répertoire local.

Avec SVN, il y avait un répertoire central que tout le monde partageait. Git fournit tout le monde avec leur répertoire local personnel, et ensuite les lient ensemble avec les opérations "pull", "push" et "pull request". Quand vous soumettez, vous sauvez une copie de vos modifications dans votre répertoire local où elles sont protégées et peuvent éventuellement être déplacées à partir de là.

      	git commit

Quand vous faites ceci, Git ouvre un fenêtre éditeur pour votre note à soumettre. La ligne du haut devient le sommaire, qui doit être clair par lui-même car il apparaîtra dans les listes des modifications. Vous ne devez pas dépasser 50 caractères pour ce sommaire, ainsi il peut être affiché de façon compacte. SVP ajoutez plus de détails dans les lignes supplémentaires après le sommaire, parce que ceci aide vos amis et collègues à comprendre ce que vous avez fait.

### Obtenir un Répertoire Personnel GitHub

- Obtenir un compte GitHub et connectez-vous
- Dites à GitHub de "fork" un répertoire JMRI dans un des votres. Il y a de bonnes pages d'aide, mais basiquement vous allez à la page répertoire JMRI et cliquez sur le bouton "fork" en haut à droite.

Ceci vous donne votre répertoire personnel, avec lequel vous pouvez travaillez librement.

Si vous utilisez la ligne de commande la prochaine étape est de vous connecter à votre répertoire local. ( Les utilisateurs d'IDEs feront la partie suivante sur leur IDE, voir ces instructions ) Sur la page web pour votre répertoire, sur le coté droit, il y a un "HTTPS Clone URL". Copiez le. Dans votre répertoire de référentiel sur votre ordinateur local, faire

      git remote set-url --push origin https://github.com/yourname/JMRI.git

( avec l'URL approprié )

Après ceci, faites un "git push" qui poussera vos modifications dans votre répertoire. "git pull" qui sera toujours obtenu à partir du référentiel principal de sorte que vous pouvez obtenir les plus récentes mises à jour des autres. De vérifier ceci, faites un "git remote -v" qui devrait montrer: `% git remote -v
origin https://github.com/JMRI/JMRI.git (fetch)
origin https://github.com/yourname/JMRI.git (push)`

### Poussez vos modifications dans votre référentiel GitHub

Maintenant que vous avez un ensemble cohérent de changements soumis localement, vous pouvez les déplacer dans votre répertoire dans GitHub. Ceci les rends visibles pour tout le monde.

      git push

Quelque fois, git vous dira que vous avez besoin d'un commentaire plus compliqué, avec plusieurs options qui démarrent avec - ou --. copiez et collez ces lignes pour les exécuter.

### Soumettre un Pull Request

La dernière étape est de faire connaître vos modifications, déjà visibles dans votre répertoire GitHub, aux mainteneurs JMRI de telle sorte que l'un d'entre eux peut tirer dans le référentiel principal JMRI. Pour faire ceci , vous créez et soumettez un "pull request" qui a automatiquement toutes les infos.

- Connexion à GitHub et allez sur la page de votre répertoire clone de JMRI, ( le votre, pas celui du JMRI principal )
- Il y a un bouton "Pull Request" en haut à droite de la liste des fichiers. Cliquez dessus.
- Sur la page suivante, sélectionnez la branche sur laquelle vous avez travaillez et cliquez le bouton "Create pull request".
- Remplissez les formulaires. Un titre court qui décrit la fonction que vous avez écrite aide les autres à la trouver. Quelques lignes dans le commentaire à propos de ce qu'elle fait, Comment vous l'avez ajoutée, etc est également très utile.
- Cliquez "Create pull request". Cela soumet toutes les infos et avertit les les maintenanciers JMRI. L'un d'eux va la vérifier et vous contactera pour de plus amples informations ( occasionnellement ), ou la fusionner dans la branche maitre du répertoire principal ( le plus souvent). Vous pouvez vous inscrire pour une notification lorsque cela se produit.