github-summary, je contribue au logiciel libre
Il m’est arrivé par le passé de contribuer modestement à certains projets libres dont j’en ai oublié les noms. Auparavant, les projets étaient dispersés sur les sites des auteurs ou sur des forges comme Sourceforge ou Savannah. Habituellement pour participer à un projet il fallait soit patcher les sources du projet soit être membres d’un projet.
Puis vint Github, son point fort est qu’il vous oblige à forker le projet avant d’effectuer la moindre modification. Au premier abord, on pourrait penser que trop de fork aurait pour conséquence de tuer le projet initial, mais il n’en est rien !
Grâce à Git et Github il est beaucoup plus facile pour moi de contribuer d’avantage au logiciel libre. La prochaine étape serait d’apporter mon savoir faire dans une société Opensource.
Revenons à nos moutons :) Pour résumer mes contributions sur la page principale de mon blog, j’ai créé un outil qui permet de générer sous divers formats un condensé de mes projets github auxquels j’ai participés.
Installation
Pour installer github-summary
, vous avez 2 possibilités:
Soit l’installer depuis PyPI
pip install github-summary
Ou directement depuis le dépot GitHub :)
pip install git+git://github.com/badele/github-summary.git
Utilisation
Modifier le fichier de configuration ~/.github-summary.py
ou
config.py
. Pour des raisons de sécurité je vous conseille de modifier
vos paramètres dans le fichier ~/.github-summary.py
afin d’y stocker
vos identifiants Github (token).
Puis il suffit de lancer la commande ci-dessous.
githubsummary -t rst/index-en.rst -j example_projects.json -s example.rst
Ceci génèrera une page au format RST (pour le blog Pelican) en utilisant les options JSON
Options
Vous pouvez apporter des options pour chaque projet, le paramétrage se fait au format JSON. Pour l’instant, il est possible de modifier les heures passées sur un projet (grâce à org2json), comme par exemple le temps passé sur la contribution d’un projet (Pour cela j’utilise l’excellent Org mode d’emacs).
{
"fabrecipes": {
"hours": "89",
"description": "A overwriting description text for fabrecipe."
},
"JobCatcher": {
"hours": "108",
"description": "Another overwriting description text for JobCatcher."
},
"gitcheck": {
"hours": "15",
"url": "http://bruno.adele.im/projets/gitcheck",
"description": "Check multiple git repository in one pass."
},
"github-summary": {
"coveralls": "True",
"description": "Python tool for generate github summary in multiple formats (TXT, RST, HTML, ...)",
"pypi": "True",
"pydownload": "True",
"hours": "30",
"travis": "True"
}
}
Comme expliqué précédemment, il est possible avant d’appeler
github-summary
de surcharger le fichier de configuration avec les
heures passées sur un projet, pour cela il suffit d’exécuter la commande
suivante
org2json -o project.org -s example_projects.json
Voici un exemple pour la génération d’une page example.rst
githubsummary -t rst/index-en.rst -j example_projects.json -s example.rst
Vous pouvez visualiser le résultat sur la capture ci-dessous ou sur mon site personnel