Framagit : une bonne solution de forge logicielle
Classé dans : Développement - Mots clés : forge, gitSi vous êtes un nouveau "forgeron" en recherche d'une forge logicielle, framagit est une bonne solution !
Pourquoi framagit ?
framagit est une forge logicielle assez complète et complètement Libre : c'est une instance de Gitlab hébergé par Framasoft dans le cadre de leur campagne Dégooglisons Internet.
Pour moi, leur principal inconvénient est qu'ils ne proposent que git comme gestionnaire de source et pas Mercurial (contrairement à BitBucket, par exemple).
Sinon, ils ont de nombreux avantages : une interface qui ressemble à l'omni-présent GitHub, une gestion fine de la visibilité des projets et des droits des utilisateurs (sur les projets), des outils en plus du gestionnaire de source (Issues, wiki, snippets, intégration continue, pages de site).
Démarrer avec framagit
Pour vous aider à démarrer Framasoft à créer des tutoriels (pas toujours faciles à trouver), qui sont vraiment didactiques ... en même temps c'est le but.
Vous pouvez aussi lire la page de la doc d'Ubuntu FR.
Cependant, ces tutoriels se focalisent sur les fonctions de base, pour aller plus loin avec git, vous aurez besoin de la documentation de git (en Français, s'il vous plait). En particuliers, la gestion des étiquettes (tags) pour gérer vos versions, et l'expansion de mots clefs (keyword) pour ajouter automatiquement des mots clefs (version, date, auteur) dans les fichiers extraits de git.
Git et Diff
Pour faire des comparaisons de fichiers sous Linux, traditionnellement, on utiliser diff. Si on veut utiliser un outil plus "user friendly" avec un gui, il y a meld.
Si on veut comparer un fichier avec la version du dépôt git, il suffit de lancer meld sur le fichier en question.
Si on veut comparer un fichier avec des versions historisés ... on peut utiliser l'interface de framagit, sinon pour utiliser meld, il faut :
- configurer git pour utiliser meld :
$ git config --global diff.tool meld - lancer la commande pour comparer le fichier avec la version précédente dans le dépôt :
$ git difftool HEAD~1 HEAD mon_fichier.txt
Git et l'expansion de mots clefs
Depuis l'ancêtre SCCS, les développeurs ont pris l'habitude d'utiliser des mots clefs dans les commentaires qui seront remplacés par leurs valeurs lors du checkout du fichier : par exemple $Author$, $Date$ ...
Ceci est une fausse bonne idée, car cela amène des problèmes (en particulier pour comparer des versions de fichiers qui ne sont plus identiques). Cela est, entre autres, indiqué dans la FAQ de Git (en Anglais). Si vous avez vraiment besoin de cette fonction, il est possible de l'implémenter.
A la place, ce qui peut être grandement utile c'est de générer un (tout) petit fichier contenant les informations qui vous intéresse : Auteur, Date, ... et même tags (i.e. la version). Cela se fait avec l'utilisation de la fonction export-subst décrit dans le chapitre des Attributs.
L'avantage de ce fichier est qu'il est généré même par un git archive et donc par un wget sur l'archive de framagit (ce qui n'est pas le cas avec l'expansion) : ce que vous allez utiliser pour générer une version à mettre en production.
D'autres forges logicielles
Si framagit ne vous convient pas, il existe d'autres forges logicielles parmi lesquelles :
- BitBucket : c'est une forge propriétaire (non Libre) mais maintenant géré par Atlasian. Ce que j'aprécie c'est le fait de pouvoir utiliser Mercurial. On peut maintenant gérer autant de projets privés que l'on veut gratuitement jusqu'à 5 utilisateurs et on bénéficie de l'intégration des outils JIRA !
- Savannah : c'est la forge de GNU (donc 100% Libre), avec l'avantage d'utiliser de nombreux VCS : Git, Mercurial, Bazaar, SVN, CVS, permet d'héberger des projets non gnu également.
- Tuleap : (se prononce tulipe) très complet, met l'accent sur la gestion agile de projets ... probablement plutôt destiné à de gros projets, mais très intéressant.
Je ne mentionne pas 2 forges très connus : Github est propriétaire au coeur du projet et a des conditions d'utilisation assez restricitive; Sourceforge est sur la pente descendante et a une éthique très discutable. Pour plus d'informations, lire Pourquoi Github saimal et Sourceforge de pire en pire, sur LinuxFR.
Avis aux forgerons : bon développement avec votre forge !