Skip to content

IGO2 : Auto formation pour développeurs

Philippe Lafrenière edited this page Apr 11, 2022 · 10 revisions

Formule proposée:

Le plan de formation d’environ 5 jours à raison d’environ 7 heures par jour présume que les développeurs ont des connaissances de base en Web ou géomatique.

Il faut au minimum connaître les langages :

Objectifs quant aux contributions:

Il n'existe aucun prérequis pour contribuer au développement avec IGO2. Les contributions peuvent prendre différentes formes:

  • ajout/modification/correction de code
  • enrichissement de la documentation
  • traduction de l'application (actuellement en français et en anglais)
  • traduction de la documentation
  • test pour trouver des incohérences en consultant les sites démo sur Github.

Logiciels et plateformes utilisées:

Tous les logiciels et comptes utilisateurs utilisés pour le projet IGO2 requis sont gratuits. Il suffit d'un navigateur Internet pour voir le fonctionnement de IGO2. Il faut connaître les bases d'un gestionnaire de sources (« Git » dans le cas présent) et d'un outil de gestion des demandes de changements (ou « issues »). Noter que les sites de formation de référence sont majoritairement en anglais.

L'installation de l'environnement de développement d’IGO2 nécessite deux installations:

  • Git (nécessaire si vous désirez contribuer)
  • NodeJS

Il n'est pas nécessaire d'installer d'autres logiciels pour faire fonctionner Typescript et Angular.

Intégrer la communauté

Si vous souhaitez intégrer la communauté IGO, la création d'un compte sur le site GitHub est la première étape pour débuter. GitHub est une plateforme de dépôt et de gestion de code qui permet entre autres, comme dans le cas d’IGO2, de partager le code source applicatif.

Pour entrer en contact avec la communauté et notamment avec l’ambassadeur et les développeurs, il est possible :

  • d’intégrer la messagerie instantanée de Gitter (https://gitter.im/igo2/). Vous pourrez alors vous authentifier à partir de votre compte GitHub.
  • de contacter directement les équipes des impliqués dans le projet IGO à partir de cette adresse courriel (info(a)igouverte.org).

Jour 1 : Comprendre Git

Git est un logiciel gestion de versions de fichiers. Il permet de conserver chaque modification d'un fichier de code source. Git peut fonctionner avec le site GitHub, comme IGO. Pour utiliser le site GitHub, il faut se créer un compte gratuitement sur le site GitHub.com

Le développeur doit faire des exercices simples avec des référentiels et copies de travail sur son poste de travail.

Jour 2 (1/2) : Comprendre Typescript

Typescript est un langage basé sur Javascript. Celui-ci comprend une sécurité supplémentaire au niveau du typage. Le développeur doit faire les exercices sur le site de référence.

Jour 2 (2/2) : Comprendre NPM

La méthode « package » NPM : Node Package Manager est le processus qu'il faut comprendre. Les commandes NodeJS sont à la base des déploiements IGO2.

NPM permet de télécharger des packages provenant d'un site de référence : https://www.npmjs.com/

Jour 3 et 4 : Comprendre Angular

Angular est une librairie utilisant le langage Typescript, HTML et CSS. Il permet la création d’applications Web dynamique. Le développeur doit essayer de comprendre la ligne de commande de Angular.

Pour ceux qui voudraient en apprendre plus sur Angular, il existe une formation payante : https://www.angularacademy.ca/

Jour 5 : Découvrir, utiliser et analyser IGO2 et IGO2-LIB

La procédure d’installation de l’environnement de développement IGO2 explique comment démarrer une instance locale de l’application. Deux projets distincts forment l’application IGO2 :

  • IGO2-LIB constitue la librairie d’outils et de fonctionnalités utilisées par IGO2
  • IGO2

L’installation locale des deux modules est décrite ici :

Si vous souhaitez appliquer des modifications de la librairie à l’assemblage, il suffit de remplacer les fichiers « /node_modules/@igo2 » de l’assemblage (igo2) par les fichiers transpilés de la librairie (igo2-lib), sous le répertoire « dist ».

Si vous souhaitez visualiser l’instance publique d’IGO2, elle est disponible à ce lien : https://geoegl.msp.gouv.qc.ca/igo2/apercu-qc/. Certains menus offrent des aides interactives et une documentation abrégée est fournie dans le menu principal en cliquant sur l’icône du point d’interrogation.

Si vous désirez seulement exécuter l'application, des paquets transpilés sont déjà disponible pour différentes versions de l'application IGO2.

IGO2 se base entre autres sur le projet de Cartographie Web libre OpenLayers 

Conclusion

Au terme de l'auto-formation le développeur dispose de connaissances en TypeScript, Angular, NodeJS et connaît les diverses composantes du projet IGO2, incluant le code source. L'usager devrait avoir une compréhension suffisante du logiciel et de ses composants pour les modifier et diffuser ses modifications, s'il le souhaite. L'étape suivante est de choisir une modification au projet et de la compléter.

Consulter les demandes de maintenances proposées pour igo2 ou igo2-lib

Pour choisir et compléter une modification au projet, il faut :

  • Choisir un billet dans Github ou proposer une correction / nouveau développement en consultant l’équipe de développeurs sur Gitter. On s’assure ainsi que le nouveau contributeur ne perdra pas son temps sur une modification non nécessaire.
  • Obtenir les autorisations pour proposer une modification à IGO, via Github et faire un appel à un développeur au besoin. La méthode privilégiée et vous proposiez une modifications à partir d'une copie de l'un ou l'autre des projet (fork).

Après avoir complété une modification dans votre copie (un fork) igo2 ou igo2-lib, il faut créer une branche Git pour permettre le stockage des modifications à l’extérieur de la branche « next » ou « master » (qui gère le code source de l’application diffusée). La dernière opération à effectuer est appelée demande de tirage, ou « pull request » en anglais. Celle-ci permet l’intégration des modifications dans la branche next et ainsi, dans la prochaine version d’IGO2.

Noter que l'acceptation de la modification du développeur par la communauté dépend des circonstances et des disponibilités de ses membres. Une fois que le développeur a fini sa contribution, il doit attendre le jugement de la communauté.

Au plaisir de collaborer avec vous!

L'équipe IGO!