Anvil

une forgeSi je n’ai pas été actif ces derniers temps, ce n’est pas par fainéantise (encore que…), mais parce que j’ai été fort occupé par mon dernier projet.

Vous connaissez sûrement GitHub ou Bitbucket, forges non-libres « sociales » qui facilitent l’emploi de git et mercurial, respectivement. Et de ce fait promeuvent donc ces deux outils.

Bazaar, qui est mon gestionnaire de versions favori, n’a lui que Launchpad comme forge dédiée et un tant soi peu « sociale ». Mais Launchpad n’a rien d’hype et il n’est pas vraiment simple à utiliser non plus. Du coup, je me suis dit qu’il fallait que je fasse le mien pour combler ce manque.

Je vous annonce donc la sortie d’Anvil 0.01 (enclume en anglais). Son but est de proposer un environnement collaboratif simple et une interface attrayante à Bazaar. Il est écrit en Python avec le framework libre web.py et la base de données MySQL. Anvil est disponible sous GPLv3.

Fonctionnalités

Accès au code

Point important pour une forge, Anvil propose un accès en HTTP pour les pull (accès public), et un accès via SSH pour les opérations de push.

Les dépôts gérés par la forge sont dans une arborescence du dossier de l’utilisateur bzr, lequel est dédié au logiciel. La partie SSH s’appuie quant à elle sur le fichier authorized_keys, qui permet de lancer un greffon pour Bazaar lors des connexions entrantes qui vérifie les droits d’accès et ré-écrit les chemins dynamiquement.

Messagerie interne

Anvil se veut social, même s’il n’a pas beaucoup de fonctionalités en ce sens pour l’instant. Il est toutefois déjà possible de contacter d’autres utilisateurs directement sur le logiciel plutôt que par email.

Le système de messagerie interne n’est pour le moment pas géré en AJAX et n’est donc mis à jour que lorsque la page est rafraichie. Ce système sera amené à évoluer dans les prochaines version pour plus d’utilité.

Branches Bazaar

Envoyer une branche sur Anvil est très simple puisqu’il suffit d’en pousser une qui n’existe pas encore. Bazaar crée alors dynamiquement la branche. Anvil apporte toutefois une possibilité que n’offre pas Bazaar directement, à savoir la suppression d’une branche (il suffit en fait de supprimer le dossier de la branche).

L’interface web permet de naviguer dans l’arborescence de la branche et de voir les fichiers avec coloration syntaxique.

Gestion de projet

Outre ses branches personnelles, les projets ont eux aussi leurs propres branches. L’intérêt réside dans le fait qu’on puisse y ajouter d’autres utilisateurs qui ont alors aussi le droit de modifier les branches du projet.

Gestion de bugs

Le système de gestion d’incidents d’Anvil se veut simpliste et ouvert. On peut par exemple y reporter des bugs sans pour autant être enregistré sur la forge.

Gestion documentaire

Anvil permet une gestion documentaire très simple et permet d’écrire des documents en Markdown attachés au projet. Il ne gère pour le moment pas les versions des documents.

Ubiquité de Markdown

Markdown est un format pratique, et Anvil l’utilise un peu partout, aussi bien dans les profils utilisateurs que les descriptions de projet ou la documentation. Le but est de permettre aux développeurs d’offrir facilement un contenu riche.

État des lieux

Cette version est la première à être utilisable, mais présente bien des défauts.

Le code est plutôt mal organisé, manque de commentaires et les bugs sont probablement légion. L’interface est en Anglais et pour le moment rien n’a été prévu pour les traductions.

Installer Anvil est assez simple mais réclame tout de même une petite expérience d’administration système. J’ai écrit un readme qui décrit l’installation pas à pas de la forge avec Apache2 et mod_fcgid.

Futur

Les buts pour la version 0.02 n’ont pas encore été définis formellement, mais l’accent sera mis sur la correction des bugs et le nettoyage du code, ainsi que l’amélioration du thème par défaut.

Liens

Vus : 1130
Publié par Etenil : 58