Plugin Planet pour GForge
Voilà, c’est enfin fait, mon plugin planet est en place sur EvoForge, et sera bientôt téléchargeable sur cette même forge (Projet Plugin Planet).
Ce blog a déménagé et parle maintenant uniquement anglais.
This blog has moved and now only speaks English.
See you there!
Voilà, c’est enfin fait, mon plugin planet est en place sur EvoForge, et sera bientôt téléchargeable sur cette même forge (Projet Plugin Planet).
Pas un vrai post, plutôt une note rapide :
RoadMap GForge : la roadmap (en anglais) qui donne quelques infos sur la 4.7, qui est censée être prête pour lenny (septembre).
Une nouvelle version d’ejabberd est sortie pour Debian, je ne vais pas reprendre le Changelog que vous pouvez lire ici, mais simplement insister sur un point : dans cette nouvelle version, le module mod_ctlextra est censé avoir été mis à jour (par rapport à l’upstream) et on devrait donc désormais bénéficier de nouvelles commandes pour ejabberdctl.
Néanmoins, toujours pas de commandes pour lister les shared rosters et récupérer les infos relatives à un groupe malgré la fermeture de mon bug (la nouvelle version est censée apporter ces commandes). Bref, les commandes n’y sont pas, on va devoir continuer à les rajouter à la main. J’essaye cependant de faire rouvrir le bug en espérant qu’il soit pris en compte pour la prochaine version.
Edit : Oups ! La dernière version est la 2.0.1-3, et j’ai testé la 2.0.1-2 à la place. La 2.0.1-3 est disponible en unstable.
J’en ai déjà parlé dans un précédent article : PlanetPlanet, agrégateur de flux (RSS,RDF,Atom), codé en Python, très léger (page statique générée par un cronjob).
Parallèlement au développement du plugin WordPressMU qui apportera un blog pour chaque développeur, j’ai entamé l’écriture d’un plugin pour intégrer PlanetPlanet à GForge afin de pouvoir, entre autres, réunir les articles des blogs concernant chaque projet. C’est un plugin orienté projet, activable et configurable par l’administrateur du projet qui ajoute un onglet Planet au projet et qui affiche une page regroupant l’ensemble des flux choisis par l’administrateur. On peut également de cette manière ajouter des flux extérieurs au site, comme par exemple le blog d’un développeur qui préfère rester sur son site perso plutôt que d’héberger son blog sur la forge.
Exemples de planet :
Ce logiciel est très simple à utiliser : un fichier de configuration très simple et commenté pour chaque planet, ensuite, il suffit de générer la page du planet régulièrement via un script python fourni.
Cette simplicité facilite le travail d’intégration. Par ailleurs, la page étant générée à partir de templates, il est facile de faire un template minimal pour l’intégrer facilement à GForge avec un include php plutot qu’avec un <object> html.
Comme d’habitude, les détails, au fur et à mesure de mon avancement, sur le wiki.
Pour aller encore plus loin dans l’esprit communautaire de GForge, pourquoi ne pas offrir la possibilité à chaque développeur d’avoir son blog sur la forge ? Chaque développeur pourrait alors parler de son travail autour des différents projets de la forge auxquels il participe, et on peut facilement imaginer chaque projet ayant un genre de Planet, qui centraliserait les posts taggués ‘projet machin’ de tous ses développeurs !
Allez hop, au boulot !
Lire la suite »
Au vu de mon activité autour du projet GForge, notamment avec le travail effectué autour d’ejabberd, Timothy Perdue (membre GForge) m’a proposé d’héberger mon travail sur gforge.org.
Cet hébergement me servira pour publier fichiers, sources et documentation en anglais. Je continuerai à travailler avec Trac pour la version française en développement. Régulièrement, je publierai de la documentation sous un format plus figé que le wiki lorsqu’elle sera un peu mieux organisée. J’en profiterai pour la traduire en anglais.
Ah ! Ce qu’on est fier lorsque ses premiers patchs sont acceptés ! J’utilise la version SVN (/trunk) de GForge et de temps en temps, j’y trouve un bug, que je signale et/ou corrige si j’en suis capable.
Voici quelques bugs corrigés (en anglais) :
Nous avons maintenant accès aux commandes pour lister les groupes et utilisateurs, on peut donc modifier notre script pour qu’il n’ajoute que les utilisateurs qui ne sont pas déjà dans le projet et qu’il ne crée que les nouveaux groupes plutôt que de tout refaire à chaque fois. On peut en profiter pour gérer l’effaçage des développeurs dont le compte aura été supprimé.
Ce script écrit en Perl compare la liste des groupes jabber et celle des projets GForge et s’efforce de les égaliser puis fait la même chose pour les développeurs de chaque projet.
On peut imaginer pour plus tard peut-être un plugin GForge qui permet à chacun de choisir d’apparaitre ou non dans les projets, qui permet à l’administrateur du projet de changer le nom du groupe…
Le script Perl est disponible sur le wiki.
Je l’ai dit précédemment, le paquet Debian d’ejabberd n’intègre pas la dernière version du module mod_ctlextra qui contient des commandes qui pourraient beaucoup nous aider.
En effet, ejabberdctl ne permet pas de lister les shared rosters et les utilisateurs inscrits dans ces rosters ce qui nous oblige à :
C’est la première option que j’ai utilisée dans un premier temps, ça fonctionne mais, comme prévu, c’est très long ne serait-ce que pour 5 utilisateurs dans 4 groupes…
Je dois donc me tourner vers la troisième option. J’aurais consideré un peu plus la deuxième si le code n’était pas déjà écrit car ejabberd est codé en Erlang, langage avec lequel je n’ai pas encore beaucoup d’expérience.
Pour avoir un déploiement le plus simple possible et également pour apporter ma pierre à l’édifice, j’ai choisi de modifier le paquet Debian. Si la procédure vous intéresse, elle est disponible sur le wiki.
Cette modification a été proposée en wishlist au mainteneur du paquet.
En projet : modifier le script qui créer les groupes pour tenir compte de ces nouvelles commandes.
Ejabberd est un serveur Jabber simple à mettre en oeuvre et robuste.
Il est codé en Erlang, ce qui offre d’intéressantes possibilités : montée en charge, clustering, tolérance aux pannes…
Pour notre projet de forge, nous souhaitons que chaque développeur inscrit dans un ou plusieurs projets se voit automatiquement attribuer un compte jabber (user@forge.evolix.net par exemple) et retrouve dans ses contacts, tout aussi automatiquement, l’ensemble des développeurs avec qui il travaille, groupés par projet.
Lire la suite »