Gouvernance de la PGO sur Github

Aperçu

Le projet de plate-forme du gouvernement ouvert (PGO) est hébergé sur GitHub par l’entremise de l’OGPL GitHub organization. L’objectif du projet est de gérer et de regrouper en un seul endroit les contributions à la PGO en matière de code, de gouvernance et d’information connexe de divers pays (font l’Inde, le Canada, le Ghana et les É.-U.), ainsi que les contributions de particuliers.

La majorité des documents, du contenu, des discussions et des questions liés au projet PGO sur GitHub sera gérée au moyen du main OGPL GitHub repository.

La composante principale de la PGO comprend :

Le projet PGO englobe également les projets suivants qui sont extérieurs à l’organisation GitHub pour la PGO: - Système de gestion des données CKAN - Boîte à outils de l’expérience Web (BOEW) - Distribution de Drupal de la BOEW - Thème CKAN de la BOEW - Aide API CKAN de la BOEW

À l’avenir, le projet PGO pourra inclure d’autres projets, soit dans le cadre de l’organisation GitHub pour la PGO, soit à l’extérieur de celle-ci. Façons de contribuer à la PGO, par des personnes Il existe de multiples façons dont les personnes peuvent contribuer au projet PGO :

  1. en amorçant une discussion ou en soumettant une question, un commentaire ou un enjeu au moyen de l’OGPL issue tracker . Les discussions, questions, commentaires et enjeux liés à un projet intégré devraient être soumis directement par l’intermédiaire de ce projet.

  2. en signalant les messages non pertinents, obscènes, illégaux ou insultants à l’équipe de coordination du projet PGO. Pour ce faire, on peut afficher les détails pertinents sur le dispositif de suivi et indiquer @ogpl-project-coordination-team (@pgo-projet-equipe-coordination) dans le message. Les détails peuvent aussi être envoyés à l’adresse électronique suivante : [adresse électronique à déterminer]

  3. en contribuant à améliorer les documents et le contenu relatifs à la PGO en adoptant l’une des approches suivantes :
    • soumettre les changements en utilisant le Prose content editor. Un lien sera fourni à partir de tous les documents et du contenu relatifs à la PGO pour y accéder. Une approche du même ordre est utilisée pour Project Open Data;
    • doter le répertoire de la PGO de bifurcations (branches), réviser les dossiers directement, et présenter les changements au moyen d’une demande de retrait. Pour obtenir de plus amples détails, consulter la page sur l’aide Fork A Repo de GitHub;
    • soumettre des suggestions, commentaires et enjeux au moyen du main OGPL issue tracker.
  4. en aidant à améliorer le code du projet POG au moyen de l’une des approches suivantes :
    • doter de bifurcations le répertoire pertinent du projet, réviser les fichiers directement, et présenter les changements au moyen d’une demande de retrait. Pour obtenir de plus amples détails, consulter la page sur l’aide Fork A Repo de GitHub;
    • soumettre des suggestions, idées d’amélioration ou de clarification, commentaires et enjeux au moyen du dispositif de suivi du répertoire pertinent du projet.

Gérer les contributions

Dans les paragraphes qui suivent, on décrit la gestion des contributions au répertoire principal de la PGO. Les contributions à un projet intégré peuvent être gérées différemment; par conséquent, veuillez consulter la documentation du projet pour obtenir de plus amples détails sur la gestion des contributions.

Équipe de coordination du projet PGO

L’équipe de coordination du projet PGO est responsable de la gestion courante des questions, commentaires, enjeux et autres contributions en rapport avec la PGO. Les membres de l’équipe seront identifiés par le comité de gestion de la PGO. Les tâches consistent notamment en ce qui suit : - retirer les messages non pertinents, obscènes, illégaux ou insultants du main OGPL issue tracker; - coordonner les réponses aux questions, commentaires et enjeux soumis au moyen du principal dispositif de suivi de la PGO, lorsqu’une réponse se justifie, y compris en appliquant les GitHub labels. Les responsables de sous-projets PGO et les experts en la matière seront intégrés et/ou nommés au besoin. L’intégration sera effectuée en incluant le dispositif GitHub approprié dans le message (p. ex., @githubhandle) et la nomination se fera au moyen du dispositif de suivi approprié; - gérer les contributions au moyen de suggestions, de changements soumis et de demandes de retrait. Les responsables de sous-projets PGO et les experts en la matière seront intégrés et/ou nommés au besoin. Toutes les contributions qui engendrent un risque important, un effort non négligeable ou des changements à la fonctionnalité seront soumises à l’examen du comité de gestion de la PGO.

Responsables de sous-projets liés à la PGO

Les responsables de sous-projets liés à la PGO sont chargés de la gestion courante de divers sous-projets liés à la PGO. Les sous-projets et leurs responsables seront identifiés par le comité de gestion de la PGO. Les tâches associées à chaque sous-projet comprennent celles-ci :

Experts en la matière PGO

Les experts en la matière PGO sont chargés de fournir des réponses et des recommandations concernant le sujet désigné (p. ex., lisibilité à la machine, métadonnées, accessibilité et convivialité). Les experts en la matière seront identifiés par le comité de gestion de la PGO. Les tâches comprennent celles-ci : - donner suite aux questions, commentaires et enjeux sur le main OGPL issue tracker ayant un rapport avec le sujet abordé; - examiner, donner suite à, et recommander un plan d’action pour chaque contribution associée au sujet abordé.

Comité de gestion de la PGO

Le comité de gestion de la PGO est responsable de la gouvernance totale et de la gestion du projet PGO. Le comité compte au moins un représentant de chacun des pays qui participent et contribuent activement au projet PGO ainsi qu’un membre de la collectivité PGO. Les tâches comprennent celles-ci : - examiner et approuver les changements au présent document et au mandat; (mandat à définir) - identifier les membres de l’équipe de coordination du projet PGO; - examiner et établir un plan d’action pour chaque contribution qui est portée à l’attention de l’équipe de coordination du projet PGO; - identifier les responsables de sous-projets liés à la PGO et les autres responsables intéressés; - examiner et approuver les calendriers proposés, les tâches et les besoins en ressources pour chaque sous-projet; - identifier les experts en matière PGO; - veiller à ce que les questions pertinentes en matière de sécurité, d’accessibilité et de convivialité soient traitées et soulignées; - élaborer des stratégies pour l’expansion et le soutien de la collectivité PGO.

Gérer le code sur GitHub

Le projet PGO gèrera le code selon le flux de travail sur GitHub. Ce processus part du principe que les divers projets sont gérés par leurs propriétaires et que ces derniers examinent et approuvent tous les changements au code ou à la documentation avant leur acheminement vers le répertoire principal. Cette démarche permet de maintenir le contrôle de la qualité et d’assurer que le projet reste sur la bonne voie, mais elle encourage également d’autres contributeurs à « doter de bifurcations » leurs propres copies du répertoire et à expérimenter ou à suggérer des améliorations. À ce propos, il ne faut pas oublier de fournir de la documentation et du matériel connexe pour aider les utilisateurs à comprendre la contribution qui est faite.

Flux de travail sur GitHub : 1. Ce qui est versé dans la principale branche du répertoire doit pouvoir être déployé (bien qu’en pratique il puisse y avoir des fractures pendant les phases de développement intense). 2. Travailler dans le répertoire, créer une bifurcation et la reproduire localement. 3. Travailler à un aspect du projet, créer une branche de la bifurcation dotée d’un titre descriptif. 4. Lorsque le travail est prêt à être examiné, diriger la branche vers le répertoire à bifurcations sur GitHub. 5. Établir une demande de retrait pour la branche de la bifurcation vers la branche maîtresse du répertoire d’où elle est issue. 6. Les propriétaires du répertoire initial recevront un avis de la demande de retrait. Ils peuvent ensuite examiner, proposer des améliorations au besoin et finalement intégrer le changement à la branche maîtresse.

Pour une explication plus précise du flux de travail, la (documentation) the CKAN documentation décrit en détail le processus à suivre pour contribuer au réseau CKAN en suivant le déroulement sur GitHub.

Automatiser les tâches de projet

Les tâches de projet seront automatisées dans la mesure du possible pour réduire au minimum les ressources requises pour gérer et maintenir le projet PGO. Les tâches de projet seront automatisées au moyen de Travis CI, un service d’intégration continue hébergé sur GitHub. Travis CI offre la capacité de créer et de tester automatiquement un code chaque fois qu’il y a une demande de retrait du répertoire ou de changement au répertoire. Cette approche peut être utilisée pour compiler automatiquement les dossiers de projet, simplifier les examens de code et détecter les bogues tôt en s’assurant qu’à chaque modification du projet, le processus de création et de mise à l’essai est exécuté.

Parmi les outils d’assurance de la qualité qui se dérouleront automatiquement, mentionnons JSHint pour détecter les erreurs de JavaScript et respecter les conventions de codage, et CSSLint pour aider à valider le code CSS.

Activités et réunions de la collectivité

Les communications et la collaboration en rapport avec la PGO permettront des interactions sur le répertoire Github comme on l’indique précédemment, mais s’appliqueront à d’autres options virtuelles. Elles comprennent entre autres choses :

  1. les réunions virtuelles récurrentes du comité de gestion;
  2. les réunions virtuelles récurrentes de la collectivité PGO;
  3. les réunions virtuelles périodiques sur des sujets d’intérêt communs.

Les réunions se dérouleront en ligne, elles feront l’objet de procès-verbaux et/ou d’enregistrements en ligne, et seront portées à la connaissance de la collectivité.

Références

  1. Organisations dans GitHub : https://github.com/blog/674-introducing-organizations
  2. Flux de travail dans GitHub : http://scottchacon.com/2011/08/31/github-flow.html
  3. Flux de travail CKAN GitHub : https://github.com/okfn/ckan/blob/master/CONTRIBUTING.rst
  4. Pages GitHub : https://help.github.com/articles/what-are-github-pages
  5. Travis CI (intégration continue) : http://about.travis-ci.org/docs/
  6. Outil d’essai JSHint Javascript : http://jshint.com/about/
  7. Outil de validation CSS de CSSLint : https://github.com/stubbornella/csslint
  8. Thème 44 de la Maison blanche : http://drupal.org/project/fortyfour