commit:memocommit
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
commit:memocommit [2017/05/15 12:46] – boman | commit:memocommit [2017/12/20 11:44] – [7. Vérifications] boemer | ||
---|---|---|---|
Line 4: | Line 4: | ||
==== Avertissement ==== | ==== Avertissement ==== | ||
- | Cette page, la plus visitée du beau site de Metafor, explique aux développeurs comment faire un bon commit. Cependant, vu l' | + | Cette page, explique aux développeurs comment faire un bon commit. Cependant, vu l' |
- | J'ai donc, en date du __**15/ | + | Cependant, n'oublie pas, cher collègue, que tu peux aussi faire de ce monde un monde meilleur! Il te suffit de cliquer à droite de cette page sur le bouton "Edit this page" et tu peux immédiatement corriger une erreur! Merveilleux, n'est-il pas? |
- | Cependant, n' | + | Je te souhaite donc un bon commit! |
- | + | ||
- | Je te souhaite donc un bon commit ! | + | |
==== Introduction ==== | ==== Introduction ==== | ||
Line 18: | Line 16: | ||
En effet, lorsque l'on est plusieurs à travailler sur le même code, il est indispensable d’utiliser un système de version. La version officielle de Metafor se trouve bien sagement dans le " | En effet, lorsque l'on est plusieurs à travailler sur le même code, il est indispensable d’utiliser un système de version. La version officielle de Metafor se trouve bien sagement dans le " | ||
- | Cependant, il ne suffit pas de brutalement aller modifier la version officielle ! Avant de pouvoir commiter, il faut vérifier | + | Cependant, il ne suffit pas de brutalement aller modifier la version officielle! Avant de pouvoir commiter, il faut vérifier |
* que les nouveaux développements sont portables, en compilant sur différentes plateformes et compilateurs | * que les nouveaux développements sont portables, en compilant sur différentes plateformes et compilateurs | ||
* qu'il n'y a pas de régression dans les capacités de Metafor (c' | * qu'il n'y a pas de régression dans les capacités de Metafor (c' | ||
Line 24: | Line 22: | ||
Les différentes plateformes sur lesquelles la compilation doit être possible et la batterie lancée sont les suivantes : | Les différentes plateformes sur lesquelles la compilation doit être possible et la batterie lancée sont les suivantes : | ||
- | | ^ | + | | ^ |
- | ^ thorgal | + | ^ thorgal |
- | ^ spring | + | ^ spring |
- | ^ gaston | + | ^ gaston |
- | ^ PC Windows | Win64 | | + | ^ PC Windows | Win64 | |
Quand on essaie de réaliser cette procédure de commit, on oublie toujours une chose ou l' | Quand on essaie de réaliser cette procédure de commit, on oublie toujours une chose ou l' | ||
Line 49: | Line 47: | ||
Pour pouvoir commiter sa nouvelle version, il faut évidemment être à jour et posséder la version la plus récente de Metafor. A l' | Pour pouvoir commiter sa nouvelle version, il faut évidemment être à jour et posséder la version la plus récente de Metafor. A l' | ||
- | Les dossiers '' | + | Les dossiers '' |
{{ : | {{ : | ||
Line 57: | Line 55: | ||
{{ : | {{ : | ||
- | La fenêtre suivante s' | + | La fenêtre suivante s' |
{{ : | {{ : | ||
Line 77: | Line 75: | ||
Avant de déplacer les sources, deux petites opérations de nettoyage : | Avant de déplacer les sources, deux petites opérations de nettoyage : | ||
- | * Premièrement, | + | * Premièrement, |
- | * Deuxièmement, | + | * Deuxièmement, |
=== 2.2 Archivage === | === 2.2 Archivage === | ||
- | Une fois le nettoyage réalisé, on peut zipper les sources avec [[http:// | + | Une fois le nettoyage réalisé, on peut zipper les sources avec [[http:// |
{{ : | {{ : | ||
Line 89: | Line 87: | ||
Ensuite, on transfère l' | Ensuite, on transfère l' | ||
- | * Hôte : '' | + | * Hôte : '' |
* Compléter identifiant et mot de passe | * Compléter identifiant et mot de passe | ||
- | * Port 22 | + | * Port: 22 |
- | * Cliquer sur connexion rapide | + | * Cliquer sur "connexion rapide" |
Une fois connecté, il suffit alors de faire glisser l' | Une fois connecté, il suffit alors de faire glisser l' | ||
Line 100: | Line 98: | ||
==== 3. Faire passer les batteries sur les stations ==== | ==== 3. Faire passer les batteries sur les stations ==== | ||
- | Maintenant qu'on a déplacé les sources sur les stations, il reste à lancer les batteries dessus. Pour cela, il faut compiler les sources et lancer la batterie sous Linux64-gcc (thorgal) | + | Maintenant qu'on a déplacé les sources sur les stations, il reste à lancer les batteries dessus. Pour cela, il faut compiler les sources et lancer la batterie sous Linux64-gcc (thorgal), Linux64-icc (spring) et Linux64-clang (gaston). |
=== 3.1 Se connecter sur les stations === | === 3.1 Se connecter sur les stations === | ||
On se connecte sur les stations grâce à [[http:// | On se connecte sur les stations grâce à [[http:// | ||
- | * Dans hôte, on tape '' | + | * Dans hôte, on tape '' |
* Dans port, 22 | * Dans port, 22 | ||
- | * On clique Open | + | * On clique |
* On tape son identifiant, | * On tape son identifiant, | ||
* On se positionne dans le bon dossier : '' | * On se positionne dans le bon dossier : '' | ||
Line 113: | Line 111: | ||
{{ : | {{ : | ||
- | Une fois connecté, on commence par taper la commande '' | + | Une fois connecté, on commence par taper la commande '' |
{{ : | {{ : | ||
Line 119: | Line 117: | ||
=== 3.2 Lancer les batteries via '' | === 3.2 Lancer les batteries via '' | ||
- | Si personne n'est sur la machine, on lance alors le (magnifique) | + | Si personne n'est sur la machine, on lance alors le script '' |
{{ : | {{ : | ||
Line 126: | Line 124: | ||
Parmi les lettres, seules les options ' | Parmi les lettres, seules les options ' | ||
- | * b. Archive name. Chemin et nom des sources zippées de Metafor. Il faut donc taper b, puis écrire le chemin vers l' | + | * b. Archive name. Chemin et nom des sources zippées de Metafor. Il faut donc taper b, puis écrire le chemin vers l' |
- | * j. Nombre de CPU pour la compilation et la batterie (voir tableau ci-dessous pour le nombre de CPU des différentes machines). Mettre à 4. | + | * j. Nombre de CPUs pour la compilation et la batterie (voir tableau ci-dessous pour le nombre de CPU des différentes machines). Mettre |
Les autres options, décrites ci-dessous, sont en général laissées par défaut : | Les autres options, décrites ci-dessous, sont en général laissées par défaut : | ||
* a. e-mail address. Adresse à laquelle les résultats de la batterie seront renvoyés. | * a. e-mail address. Adresse à laquelle les résultats de la batterie seront renvoyés. | ||
- | * f. build options. Donner le nom du fichier de config CMake (voir tableau ci-dessous). | + | * f. build options. Donner le nom du fichier de config CMake (voir tableau ci-dessous |
* g. debug mode. Laisser '' | * g. debug mode. Laisser '' | ||
- | * h. nice value. Priorité de calcul pour la batterie. | + | * h. nice value. Priorité de calcul pour la batterie: laisser 0 - priorité haute. |
* k. Nombre de threads pour le calcul en parallèle. | * k. Nombre de threads pour le calcul en parallèle. | ||
- | * m. run Method. Laisser batch. | + | * m. run Method. Laisser |
- | * q. is bacon present? Bacon est présent sur toutes les machines. | + | * q. is bacon present? Bacon est présent sur toutes les machines |
Concernant les chiffres : | Concernant les chiffres : | ||
Line 142: | Line 140: | ||
* 1. Indique où sont les sources. Trois possibilités : | * 1. Indique où sont les sources. Trois possibilités : | ||
* '' | * '' | ||
- | * '' | + | * '' |
* '' | * '' | ||
- | * 2. compile. '' | + | * 2. compile: '' |
- | * 3. battery '' | + | * 3. battery: '' |
- | * 4. installer '' | + | * 4. installer: '' |
Dans ce cas-ci, où on vient de transférer les sources par Filezilla, on veut avoir : | Dans ce cas-ci, où on vient de transférer les sources par Filezilla, on veut avoir : | ||
Line 156: | Line 154: | ||
* 3 battery - True | * 3 battery - True | ||
- | Une fois qu'on est satisfaits avec les options, on appuie sur G et ça démarre ! Pour info : | + | Une fois qu'on est satisfaits avec les options, on appuie sur "G" |
* G. Lancer le script en batch. | * G. Lancer le script en batch. | ||
Line 162: | Line 160: | ||
* Q. Quitter le script | * Q. Quitter le script | ||
- | On répète ensuite l' | + | On répète ensuite l' |
Une dizaine de minutes plus tard, on reçoit un mail qui indique si la compilation s'est bien passée ou non. Si non, il faut donc comprendre pourquoi. Si ça compile sous Windows mais pas sous Linux, l' | Une dizaine de minutes plus tard, on reçoit un mail qui indique si la compilation s'est bien passée ou non. Si non, il faut donc comprendre pourquoi. Si ça compile sous Windows mais pas sous Linux, l' | ||
- | Si la compilation s'est bien passée, quelques heures plus tard, les fichiers de résultats de la batterie sont envoyés automatiquement par email. On recevra notamment un mail avec un fichier html reprenant les diff sur la machine, qu'il faudra ensuite analyser. | + | Si la compilation s'est bien passée, quelques heures plus tard, les fichiers de résultats de la batterie sont envoyés automatiquement par email. On recevra notamment un mail avec un fichier html reprenant les diffs sur la machine, qu'il faudra ensuite analyser. |
==== 4. Faire passer la batterie sur son PC Windows ==== | ==== 4. Faire passer la batterie sur son PC Windows ==== | ||
- | Les batteries tournent déjà sur spring et sur thorgal, pour vérifier la portabilité sous Linux. Sous Windows, malheureusement, | + | |
+ | Les batteries tournent déjà sur spring, thorgal | ||
Dans '' | Dans '' | ||
Line 186: | Line 185: | ||
=== 5.1 Analyse des résultats de batterie === | === 5.1 Analyse des résultats de batterie === | ||
- | A présent, on a donc lancé les batteries sur thorgal, spring, et son PC. On a donc reçu deux fichiers diffs par email, et le troisième se trouve dans '' | + | A présent, on a donc lancé les batteries sur thorgal, spring, |
- | Première chose à regarder : les failed. C'est assez simple, tant que au moins un des trois fichiers de diff commence par la section ' | + | Première chose à regarder : les " |
{{ : | {{ : | ||
- | Deuxième chose à regarder, le rouge ! Un résultat est affiché en rouge si la donnée que l'on est censé observé est manquante. Il y a deux cas possibles : | + | Deuxième chose à regarder, le rouge! Un résultat est affiché en rouge si la donnée que l'on est censé observé est manquante. Il y a deux cas possibles : |
* Si on a ajouté un nouveau test, il n' | * Si on a ajouté un nouveau test, il n' | ||
- | * Par contre, si le '' | + | * Par contre, si le '' |
* Soit le test correspondant est également dans la section des failed. Facile à comprendre, le test n'a pas pu tourner jusqu' | * Soit le test correspondant est également dans la section des failed. Facile à comprendre, le test n'a pas pu tourner jusqu' | ||
* Soit le test correspondant n'est pas dans les failed, mais l' | * Soit le test correspondant n'est pas dans les failed, mais l' | ||
* Enfin, le test n'est toujours pas dans les failed, mais l' | * Enfin, le test n'est toujours pas dans les failed, mais l' | ||
- | Troisième chose à regarder, les diffs proprement dites. Une fois qu'on n'a plus de tests dans les failed, et qu'on a compris tout ce qui est en rouge, on regarde les valeurs. C'est ici que c'est difficile, et que ça demande de l' | + | Troisième chose à regarder, les diffs proprement dites. Une fois qu'on n'a plus de tests dans les failed, et qu'on a compris tout ce qui est en rouge, on regarde les valeurs. C'est ici que c'est difficile, et que ça demande de l' |
+ | |||
+ | Quelques conseils: | ||
* La première série, " | * La première série, " | ||
* Deuxième série, " | * Deuxième série, " | ||
Line 209: | Line 210: | ||
* Huit, " | * Huit, " | ||
- | Il faut noter qu'il y a des tests qui sont connus pour être instables. Il est assez fréquent que, les tests " | + | Il faut noter qu'il y a des tests qui sont connus pour être instables. Il est assez fréquent que, les tests " |
=== 5.2 Relancer certains tests === | === 5.2 Relancer certains tests === | ||
Line 217: | Line 218: | ||
Si par contre les erreurs proviennent des tests eux-mêmes (donc que l'on a modifié les tests mais pas le code source), il suffit alors de relancer juste les tests en question. | Si par contre les erreurs proviennent des tests eux-mêmes (donc que l'on a modifié les tests mais pas le code source), il suffit alors de relancer juste les tests en question. | ||
- | <note important> | + | <note important> |
- | Sur les stations. Plusieurs façons de faire, j'en présente une qui me semble la plus simple : | + | Sur les stations. Plusieurs façons de faire, j'en présente une qui me semble la plus simple: |
* Transférer via Filezilla les différents tests qui ont été modifiés. | * Transférer via Filezilla les différents tests qui ont été modifiés. | ||
* Toujours via Filezilla, se rendre dans '' | * Toujours via Filezilla, se rendre dans '' | ||
Line 235: | Line 236: | ||
==== 6. Le commit proprement dit ==== | ==== 6. Le commit proprement dit ==== | ||
+ | |||
Le moment tant attendu arrive enfin: on commite ! | Le moment tant attendu arrive enfin: on commite ! | ||
=== 6.1 Commiter sur son PC === | === 6.1 Commiter sur son PC === | ||
- | D' | + | D' |
< | < | ||
Line 249: | Line 251: | ||
{{ : | {{ : | ||
- | Concernant les " | + | Concernant les " |
{{ : | {{ : | ||
- | Ensuite, on clique droit sur oo_meta, oo_nda | + | Ensuite, on clique droit sur oo_meta, oo_nda (seulement ceux où des modifications doivent être commitées) et on clique sur "SVN commit" |
=== 6.2 Commiter sur spring | === 6.2 Commiter sur spring | ||
Line 296: | Line 298: | ||
==== 7. Vérifications ==== | ==== 7. Vérifications ==== | ||
+ | |||
A présent, le commit est supposé terminé, les étapes suivantes sont de la vérification. | A présent, le commit est supposé terminé, les étapes suivantes sont de la vérification. | ||
- | * Sur PC : refaire un checkout des sources, puis recompiler le projet (ou mettre à jour sa version officielle et la recompiler). Puis on lance '' | + | * Sur PC : refaire un checkout des sources, puis recompiler le projet (ou mettre à jour sa version officielle et la recompiler). Puis on lance par exemple |
- | * Sur les stations, on fait un check out des sources et on recompile les sources avec comp.py avec les options suivantes : | + | * Sur les stations, on fait un checkout |
* 1 source - checkout | * 1 source - checkout | ||
* 2 compile - True | * 2 compile - True | ||
Line 305: | Line 308: | ||
<note important> | <note important> | ||
- | {{ : | + | |
==== 8. Informer les autres ==== | ==== 8. Informer les autres ==== | ||
Line 320: | Line 323: | ||
==== 9. Fêter ça ==== | ==== 9. Fêter ça ==== | ||
- | Amener de la tarte ou du gâteau pour fêter son commit réussi. Malheureusement, | + | Amener de la tarte ou du gâteau pour fêter son commit réussi. Malheureusement, |
{{ : | {{ : |
commit/memocommit.txt · Last modified: 2018/05/04 15:49 by boman