1 00:00:06,200 --> 00:00:06,960 -Bonjour à tous. 2 00:00:07,280 --> 00:00:08,760 Dans cette vidéo, on va s'intéresser 3 00:00:09,080 --> 00:00:11,400 à la façon de gérer et de versionner votre code 4 00:00:11,720 --> 00:00:14,040 à l'aide de Pharo, et plus précisément l'outil Iceberg, 5 00:00:14,360 --> 00:00:15,840 en lien avec GitHub. 6 00:00:16,160 --> 00:00:18,680 Alors, tout d'abord, pour trouver l'outil Iceberg, 7 00:00:19,000 --> 00:00:20,920 vous pouvez aller dans votre environnement Pharo, 8 00:00:21,240 --> 00:00:24,520 puis Tools et Iceberg, ou le raccourci Cmd+O. 9 00:00:24,840 --> 00:00:27,600 Là, ça va être tous les repositories qui sont chargés dans le système. 10 00:00:27,920 --> 00:00:30,720 Il n'y en a qu'un seul de sauvegardé, le code source de Pharo. 11 00:00:31,040 --> 00:00:34,560 Vous pouvez, si vous voulez participer à sa modification 12 00:00:34,880 --> 00:00:37,280 et à l'implémentation de nouvelles features, 13 00:00:38,240 --> 00:00:41,480 suivre les renseignements sur comment l'installer et comment participer. 14 00:00:41,800 --> 00:00:45,560 Maintenant, on va s'intéresser à comment créer un nouveau repository 15 00:00:45,880 --> 00:00:49,040 et l'intégrer à notre environnement Pharo. 16 00:00:49,360 --> 00:00:51,960 Pour ça, on va se diriger sur GitHub. 17 00:00:52,280 --> 00:00:55,080 Si vous n'avez pas de compte, je vous encourage à en créer un. 18 00:00:55,400 --> 00:00:57,040 Ça va vous aider à versionner votre code 19 00:00:57,360 --> 00:00:58,680 et à le stocker quelque part. 20 00:00:59,000 --> 00:01:01,360 Vous vous dirigez sur l'onglet Repositories, 21 00:01:01,680 --> 00:01:04,160 puis vous cliquez sur "New", 22 00:01:04,480 --> 00:01:05,880 le bouton vert. 23 00:01:06,200 --> 00:01:10,600 On va choisir, comme nom, "MyPharoRepository". 24 00:01:10,920 --> 00:01:17,480 On va l'appeler "A small Pharo repository". 25 00:01:18,760 --> 00:01:21,400 On peut cliquer directement sur "Creating repository". 26 00:01:21,720 --> 00:01:23,400 On va voir qu'on va obtenir 27 00:01:23,720 --> 00:01:25,400 un repository GitHub complètement vide. 28 00:01:25,720 --> 00:01:27,960 On a des instructions qu'on ne va pas forcément suivre, 29 00:01:28,280 --> 00:01:30,040 parce qu'Icecberg va s'en occuper pour nous. 30 00:01:30,360 --> 00:01:32,040 On va retourner dans Pharo tout de suite. 31 00:01:32,360 --> 00:01:34,680 Dans Iceberg, on va vouloir ajouter un nouveau repository, 32 00:01:35,000 --> 00:01:36,080 celui qu'on vient de créer. 33 00:01:36,400 --> 00:01:37,400 On va cliquer sur "Add", 34 00:01:37,720 --> 00:01:40,120 on va se diriger dans "Clone depuis GitHub", 35 00:01:40,440 --> 00:01:42,440 rentrer le nom d'utilisateur 36 00:01:42,760 --> 00:01:44,760 ou celui de la personne qui a fait le projet. 37 00:01:45,080 --> 00:01:48,080 En l'occurrence, c'est moi, mais ça pourrait être quelqu'un d'autre. 38 00:01:49,120 --> 00:01:53,200 Le projet, c'est "MyPharoRepository". 39 00:01:53,520 --> 00:01:56,520 Et, pour le protocole, on va choisir HTTPS. 40 00:01:56,840 --> 00:01:59,960 On peut se servir de SSH, mais il faut déjà avoir créé ses clés 41 00:02:00,280 --> 00:02:02,040 et préciser à Pharo où les trouver. 42 00:02:02,360 --> 00:02:04,000 Pour l'instant, on va rester avec HTTPS. 43 00:02:04,320 --> 00:02:07,840 Le repository est en train d'être cloné, on peut le voir ici. 44 00:02:08,160 --> 00:02:09,000 Il est apparu. 45 00:02:09,320 --> 00:02:11,400 On voit une étoile et le nom est écrit en vert. 46 00:02:11,720 --> 00:02:15,080 Des changements n'ont pas été sauvegardés ou mis à jour. 47 00:02:15,400 --> 00:02:17,200 On peut voir le statut : "No Project Found", 48 00:02:17,520 --> 00:02:21,440 parce que notre repository est vide, donc il ne trouve rien du tout. 49 00:02:21,760 --> 00:02:23,200 En général, Iceberg est intelligent, 50 00:02:23,520 --> 00:02:26,120 si vous avez un statut rouge, il va vous aider à le corriger. 51 00:02:26,440 --> 00:02:29,280 On va double-cliquer là-dessus. On peut voir le statut ici. 52 00:02:29,600 --> 00:02:31,200 Et on a le bouton "Repair" qui est ici. 53 00:02:31,520 --> 00:02:34,520 En cliquant sur "Repair", vous avez différentes possibilités. 54 00:02:34,840 --> 00:02:37,160 Ici, on n'en a que deux, mais vous pouvez en avoir plus. 55 00:02:37,480 --> 00:02:40,240 Elles sont classées de la plus probable à la moins probable. 56 00:02:40,560 --> 00:02:43,120 Ici, la plus probable, c'est qu'on a simplement besoin 57 00:02:43,440 --> 00:02:45,280 de créer les meta-data de notre projet. 58 00:02:45,600 --> 00:02:48,080 Les meta-data, ça va être des fichiers 59 00:02:48,400 --> 00:02:51,720 qui vont expliquer à Pharo comment charger votre projet. 60 00:02:52,040 --> 00:02:53,360 Ça, on a besoin de les créer. 61 00:02:53,680 --> 00:02:54,640 On va cliquer sur "OK". 62 00:02:54,960 --> 00:02:58,480 C'est une bonne pratique de rajouter un fichier source 63 00:02:58,800 --> 00:02:59,920 en cliquant sur le "+" ici. 64 00:03:00,240 --> 00:03:01,720 On va rajouter le fichier "src". 65 00:03:02,040 --> 00:03:04,640 On clique sur "src" pour que ce soit l'endroit 66 00:03:04,960 --> 00:03:06,400 où le code va être sauvegardé. 67 00:03:06,720 --> 00:03:09,880 On appuie sur "OK" et on va pouvoir commiter ce premier changement. 68 00:03:10,200 --> 00:03:11,360 On clique sur "Commit". 69 00:03:11,680 --> 00:03:17,200 On va écrire : "Initial commit for meta-data". 70 00:03:17,520 --> 00:03:19,560 On peut voir que notre ".project" a été créé, 71 00:03:19,880 --> 00:03:22,000 qui nous explique où est le source directory, 72 00:03:22,320 --> 00:03:25,920 on a notre dossier source et un ".properties". 73 00:03:26,240 --> 00:03:29,720 On va commit ça tout de suite, puis on va créer une classe 74 00:03:30,040 --> 00:03:33,400 qu'on va pouvoir ajouter à notre package, puis notre repository. 75 00:03:33,720 --> 00:03:35,880 On va se diriger dans le System Browser. 76 00:03:36,200 --> 00:03:40,600 On va créer une nouvelle classe qu'on va appeler "MyPharoClass" 77 00:03:40,920 --> 00:03:45,000 dans le package "MyPharoPackage". 78 00:03:45,320 --> 00:03:48,720 On va sauvegarder ça en appuyant sur Cmd+S. 79 00:03:49,040 --> 00:03:51,120 On peut voir notre classe qui est apparue. 80 00:03:51,440 --> 00:03:52,920 On va enlever tout le reste. 81 00:03:53,240 --> 00:03:54,960 On a package, classe, c'est très bien. 82 00:03:55,280 --> 00:03:57,000 Il faut qu'on l'ajoute à notre repository, 83 00:03:57,320 --> 00:03:59,080 donc on se dirige sur cette fenêtre-ci. 84 00:03:59,400 --> 00:04:01,640 Si vous l'avez perdue, il suffit de double-cliquer ici. 85 00:04:01,960 --> 00:04:03,240 On va ajouter un package. 86 00:04:03,560 --> 00:04:06,840 Le package qu'on va ajouter, ça va être "MyPharoPackage". 87 00:04:07,160 --> 00:04:09,000 On coche, on clique sur "Add". 88 00:04:09,320 --> 00:04:10,200 Notre package est là 89 00:04:10,520 --> 00:04:12,880 et on peut voir que des changements n'ont pas été commités, 90 00:04:13,200 --> 00:04:15,240 comme l'ajout de ce package dans notre repository. 91 00:04:15,560 --> 00:04:16,680 On clique sur "Commit". 92 00:04:17,000 --> 00:04:20,120 On rajoute notre classe Pharo 93 00:04:20,440 --> 00:04:22,920 et le côté classes dans notre package. 94 00:04:23,240 --> 00:04:24,040 "Commit". 95 00:04:24,960 --> 00:04:27,440 "First Pharo class". 96 00:04:27,760 --> 00:04:28,920 "Commit". 97 00:04:29,240 --> 00:04:32,720 Donc, nom, prénom. OK. 98 00:04:33,040 --> 00:04:36,000 Maintenant, on va voir que le package est à jour, 99 00:04:36,320 --> 00:04:38,720 mais on a toujours l'icône rouge à côté de "Push". 100 00:04:39,040 --> 00:04:40,760 Ça veut dire que si on retourne sur GitHub 101 00:04:41,080 --> 00:04:43,880 et que je recharge cette page, absolument rien n'a changé, 102 00:04:44,200 --> 00:04:47,280 parce que les changements ont été faits sur ma working copy, 103 00:04:47,600 --> 00:04:48,840 donc localement. 104 00:04:49,160 --> 00:04:50,240 En cliquant sur "Push", 105 00:04:50,560 --> 00:04:52,880 ça va me présenter les changements que je vais faire, 106 00:04:53,200 --> 00:04:55,760 donc les deux commits, le commit "Initial commit for meta-data" 107 00:04:56,080 --> 00:04:57,440 que je peux inspecter. 108 00:04:57,760 --> 00:05:00,440 Ça va être le premier commit, donc rien de spécial, 109 00:05:00,760 --> 00:05:03,720 et celui-ci, qui va ajouter "MyPharoPackage Class", 110 00:05:04,040 --> 00:05:05,200 qui va ajouter les classes. 111 00:05:05,520 --> 00:05:06,760 Donc, je vais push. 112 00:05:07,080 --> 00:05:09,400 Vu que je suis en train d'utiliser le protocole HTTPS, 113 00:05:09,720 --> 00:05:11,040 je dois me loguer. 114 00:05:11,360 --> 00:05:15,960 Il faut mettre votre username et votre mot de passe sur GitHub. 115 00:05:16,280 --> 00:05:19,400 Vous pouvez les sauvegarder pour les prochaines utilisations. 116 00:05:19,720 --> 00:05:21,480 Si vous avez utilisé le protocole SSH 117 00:05:21,800 --> 00:05:24,400 et que vous avez créé vos clés et indiqué à Pharo où elles sont, 118 00:05:24,720 --> 00:05:26,480 cette fenêtre ne va sûrement pas s'ouvrir. 119 00:05:26,800 --> 00:05:27,880 On clique sur "OK". Voilà. 120 00:05:28,200 --> 00:05:31,400 Il est en train de push notre repository sur GitHub. 121 00:05:31,720 --> 00:05:35,520 On peut voir que le petit point rouge à côté de "Push" a disparu. 122 00:05:35,840 --> 00:05:38,440 Si on se dirige sur GitHub et qu'on recharge, 123 00:05:38,760 --> 00:05:41,120 on va avoir notre Pharo repository qui est apparu. 124 00:05:41,440 --> 00:05:44,480 On peut voir qu'il y a bien le fichier "src" qui est ici, 125 00:05:44,800 --> 00:05:47,440 "MyPharoPackage", et on peut aller inspecter, 126 00:05:47,760 --> 00:05:50,720 si on veut se déplacer, par exemple, la classe Pharo. 127 00:05:51,040 --> 00:05:53,400 Ce qu'il peut être intéressant de rajouter à la suite, 128 00:05:53,720 --> 00:05:56,760 ça va être un readme pour aider les gens à comprendre 129 00:05:57,080 --> 00:05:58,480 à quoi sert votre package. 130 00:05:58,800 --> 00:06:00,560 Et aussi, vous verrez ça par la suite, 131 00:06:00,880 --> 00:06:04,200 une baseline et un petit script pour aider les gens 132 00:06:04,520 --> 00:06:07,440 à charger directement leur package sans avoir besoin d'utiliser GitHub. 133 00:06:07,760 --> 00:06:10,440 Voilà, c'était la présentation 134 00:06:10,760 --> 00:06:14,400 de comment vous servir d'Iceberg couplé à GitHub 135 00:06:14,720 --> 00:06:17,960 pour garder un historique de changement de votre code 136 00:06:18,280 --> 00:06:21,760 et le versionner, et surtout le stocker, tout simplement.