Github.com

On décrit ici l’utilisation du portail GitHub.com pour gérer les sources sur un dépôt git d’une documentation en ligne, compilée avec Sphinx, automatiquement publiée sur le site ReadTheDocs.org indexé par le portail docs.openmairie.org

Un des objectifs de cette approche est de faciliter la contribution à la documentation. Un utilisateur un peu familier de l’informatique peut facilement ajouter ou modifier du texte grâce à l’éditeur en ligne de GitHub.com et au système des « Pull Request » git. Dès qu’un administrateur du projet valide la propositin, cela déclenche la regénération de la documentation grâce au lien automatique avec readthedocs.org .

Pour pouvoir gérer un projet sur ce site, il faut avoir un compte utilisateur: le bouton « Sign up » de la page d’accueil permet d’obtenir ce compte facilement.

Créer un projet

Public(s) concerné(s) : Administrateur de projet openMairie.

Il s’agit ici, de créer un nouveau repository sur github.com dans l’organisation openmairie. Si vous n’êtes pas membre de cette organisation, vous devez la contacter pour obtenir la création de ce dépôt initial.

Depuis le tableau de bord de github.com, un clic sur le bouton « + » puis « New repository » en haut à droite de l’écran, à côté du login de l’utilisateur, permet d’accéder au formulaire de création d’un dépôt.

Voici les informations à saisir :

  • Owner : sélectionner « openmairie », pour une meilleure lisibilité du projet tous les dépôts doivent être créés dans cette organisation.
  • Repository name : le nom doit être logiciel-documentation sans accents sans espaces en minuscules (par exemple pour le logiciel openElec « openelec-documentation » et pour le logiciel openRésultat « openresultat-documentation »).
  • Description : pour que le dépôt sorte correctement dans les recherches, il faut saisir « Documentation Logiciel Sphinx » (par exemple pour openCimetière « Documentation openCimetière Sphinx »).
  • Public ou Private : sélectionner « Public » puisque les projets openMairie sont publics.
  • Initialize this repository with a README : ne pas cocher la case.

Puis il suffit de cliquer sur le bouton « Create repository ».

Importer la documentation depuis un projet subversion de l’adullact

Public(s) concerné(s) : Administrateur de projet openMairie.

Les pré-requis sont :

  • le projet doit déjà être créé sur github.com
  • être dans un terminal pour saisir les commandes suivantes
  • les commandes : svn, svn2git et git doivent être installées

Étape 0 : Modifier et définir les variables utilisées dans les commandes suivantes

export OLDPRODUCTNAME="openfoncier"
export NEWPRODUCTNAME="openads"
export ADULLACTUSER="fmichon"

Étape 1 : Récupération des logs

mkdir -p ${NEWPRODUCTNAME}-documentation/${NEWPRODUCTNAME}-documentation && cd ${NEWPRODUCTNAME}-documentation/${NEWPRODUCTNAME}-documentation
svn log -q https://scm.adullact.net/anonscm/svn/${OLDPRODUCTNAME}/documentation > ../LOG
cat ../LOG | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > ../authors-transform.txt
cat ../authors-transform.txt

Étape 2 : MANUEL - Modification des auteurs

=> Il faut faire la correspondance entre les utilisateurs de l'adullact et ceux de github
=> exemple : fmichon = Florent Michon <fmichon@atreal.fr>
=> fmichon = login de l'addulact
=> Florent Michon = nom complet du contributeur
=> fmichon@atreal.fr = mail référencé dans github
vim ../authors-transform.txt

Étape 3 : Vérification de l’intervalle

export REVS="$(tail -n2 ../LOG|head -n1|awk '{print $1}'|sed "s/r//"):$(head -n2 ../LOG|tail -n1|awk '{print $1}'|sed "s/r//")"
echo $REVS

Étape 4 : Récupération de tous les commits (très long)

svn2git --authors ../authors-transform.txt --revision $REVS -v https://scm.adullact.net/anonscm/svn/${OLDPRODUCTNAME}/documentation

Étape 5 : Import du code sur github

git remote add origin git@github.com:openmairie/${NEWPRODUCTNAME}-documentation.git
git push -u --all
git push --tags

Étape 6 : Suppression de l’ancien dépôt de documentation sur l’adullact pour que personne ne committe dessus

svn del -m "Déplacement de la documentation vers Github" svn+ssh://${ADULLACTUSER}@scm.adullact.net/svn/${OLDPRODUCTNAME}/documentation/trunk svn+ssh://${ADULLACTUSER}@scm.adullact.net/svn/${OLDPRODUCTNAME}/documentation/branches
echo "Documentation déplacée vers https://github.com/openmairie/${NEWPRODUCTNAME}-documentation" > ../MOVED-TO-GITHUB.txt
svn import -m "Déplacement de la documentation vers Github" ../MOVED-TO-GITHUB.txt svn+ssh://${ADULLACTUSER}@scm.adullact.net/svn/${OLDPRODUCTNAME}/documentation/MOVED-TO-GITHUB.txt

Faire l’import initial d’un projet sphinx

Public(s) concerné(s) : Administrateur de projet openMairie.

Il n’y a pas de modèle de départ établi actuellement. Une option est de partir de l’arborescence du projet d’une autre application, par exmple :

  • Readme.rst
  • Sources
    • conf.py
    • index.rst
    • guide_techique
      • index.rst
      • developement.rst
      • integration.rst
    • manuel_utilisateur
      • index.rst
      • ergonomie
        • index.rst
      • fonctionnalites
        • index.rst
      • parametres
        • index.rst

NB: pour ajouter un répertoire dans le dépôt depuis le portail GitHub, depuis le bouton Create New File, il faut ajouter un fichier dans ce répertoire, et allonger le chemin proposé par le dépôt par exemple :

  • de openmonappli-documentation/Sources/manuel_utilisateur/...
  • ajouter openmonappli-documentation/Sources/manuel_utilisateur/mon_rep/index.rst

Il faudra adapter chacun de ces fichiers à l’application concernée, puis mettre en place la compilation sur ReadtheDocs. Les premiers fichiers à mettre à jour sont: Readme.rst et conf.py. Consultez le paragraphe “readthedocs.org” de cette documentation.

Contribuer à une documentation

Public(s) concerné(s) : Contributeur membre du projet openMairie.

Depuis ReadTheDocs, en haut à droite d’une documentation on trouve un lien Edit on GitHub.

En cliquant sur ce lien, une fois authentifié avec un compte utilisateur GitHub, on arrive sur une fenêtre de visualisaton du fichier .rst concerné.

En cliquant sur l’icône « crayon » on peut modifier ce fichier.

Un onglet « Preview » permet de prévisualiser le rendu en interprétation ReST basique.

Un bouton en bas de formulaire permet de faire un « Commit » dans une branche personnelle.

On peut demander ensuite l’intégration à la branche principale à l’aide d’un « Pull Request ». On peut également solliciter un autre contributeur pour une revue.