Google code – Pour héberger un projet open source

Lorsque nous désirons créer un projet open source, auparavant le choix s’arrêtait souvent sur Source Forge qui est présent depuis des années et qui offre beaucoup d’options. Aujourd’hui j’aimerais vous présenter Google Code qui offre beaucoup d’options aussi, mais d’une manière différente.

Licence

La première étape à l’ouverture d’un projet open source, c’est de choisir quelle en sera la licence. Google Code ne permet pas d’utiliser des licences personnalisées. Vous n’avez le choix qu’entre quelques-unes parmi les plus populaires tel GPL, Apache, MIT, …

Une particularité intéressante est que vous pouvez désigner une licence alternative pour le contenu (comme la documentation, le Wiki, les images, …). La seule disponible si vous choisissez cette option est la « Creative Common ».

Gestionnaire de version

Là encore, la liste n’est pas exhaustive; vous avez le choix entre Subversion ou Mercurial. Donc pas de CVS ou Git. Je connais surtout Subversion alors il m’est difficile de juger si ce sont les meilleurs choix ou les plus populaires.

Peu importe lequel vous choisissez, vous obtenez 2 Go d’espace pour emmagasiner votre code.

Ensuite, Google Code adore l’intégration des services d’une manière élégante alors vous pouvez aisément visiter votre code source sur le site web de votre projet et vous pouvez voir les pages de votre Wiki dans l’entrepôt. La première fonctionnalité possède aussi un éditeur texte pour ajouter des commentaires sur le code à partir du site web. La seconde permet de facilement télécharger les pages de votre Wiki tout en permettant aussi bien l’inverse : donc générer des pages dans votre entrepôt et en les soumettant, elles deviennent disponible sur le site web. Cela peut aider avec la génération automatique de documentation.

Gestionnaire de tickets

Lorsqu’un utilisateur trouve un bogue, il peut aisément l’insérer dans cette section du projet. Par défaut, il y a trois squelettes de requêtes qui sont toutes reliées avec les défectuosités. Par contre, vous pouvez créer vos propres squelettes comme une « suggestion de fonctionnalité » dans votre projet.

Pour l’intégration, lorsqu’une personne regarde le code source sur le site et qu’elle écrit quelques commentaires, elle peut ensuite cliquer sur un bouton pour automatiquement créer une requête de révision de code dans le gestionnaire de tickets.

Ressources humaines

Le plus important dans un projet, ce n’est pas tant les idées que d’avoir du monde pour les réalisées. Chaque personne ne peut pas tout faire pour une question de temps ou d’aptitudes et c’est pourquoi il y a plusieurs permissions selon les outils. Les rôles sont très granulaires au niveau des outils, donc qui peut écrire du code, éditer le Wiki, ajouter des fichiers à télécharger, etc. Par contre, c’est tout. Il n’est pas possible de limiter l’accès à certains répertoires dans le code source.

La moindre granularité au niveau d’un outil en particulier peut sembler limitatif, mais Google a souvent expliquer ses choix. Par exemple, si une personne peut écrire du code et devrait seulement le faire dans un répertoire en particulier, pourquoi ne pas lui faire confiance? Au pire, nous pouvons toujours effacer ses changements et lui enlever ses privilèges. Pourquoi toujours faire plus confiance à la technologie plutôt qu’aux humains?

Wiki

Le Wiki est certainement la raison principale pour laquelle j’aime Google Code. À la base, la page principale est une page Wiki qui peut mener à toutes les autres. Lorsque nous sommes en mode édition, les balises les plus utilisées sont affichées à la droite comme aide-mémoire. L’éditeur est très simpliste (texte brute), mais avec l’aide à nos côtés, c’est hautement productif.

Ensuite, il ne faut pas oublier que le web est de nos jours très multimédia et de ce fait, il est aisé d’ajouter une vidéo. Vous n’avez pratiquement qu’à écrire le URL. Voici un exemple de la balise :

<wiki:video url= »http://www.youtube.com/watch?v=Lyb6Tll017A »/>

Le fait que les pages Wiki peuvent être éditées autant sur le web que sur l’entrepôt en fait aussi un outil des plus intéressants.

Conclusion

Personnellement, j’aime lorsque les logiciels sont épurées; lorsqu’ils ne font qu’une chose, mais très bien. L’interface pratiquement vide, mais qui nous permet de faire tout aisément est donc le point le plus vendeur pour moi. Ensuite, la possibilité de sauvegarder localement le Wiki simplement avec un « Checkout » du code est merveilleuse. Pour finir, l’intégration de tous les outils est faite avec élégances et je préfère ce modèle à celui de Source Forge qui utilise plusieurs outils open source différents qui sont hétérogènes entre eux.