You are here -> Home Logram et son site » Surprise 2010 n° 2 : Gitorious

Surprise 2010 n° 2 : Gitorious

Le 31/01/2010 à 11h02 by steckdenis, in Logram et son site, 1 commentaries

Bonjour :) ,

Ça y est, la deuxième surprise 2010 est là ! :D

Il y a déjà plusieurs mois, linkdd est venu me vanter les mérites du gestionnaire de révisions décentralisé Git (explications plus loin). Au début, je n'étais pas trop chaud pour changer quelque-chose qui marche, mais finalement, l'idée est restée dans ma tête.

Un peu avant Noël, apprenant que le projet KDE passera bientôt à Git, et voyant que Qt et Init-ng l'utilisent déjà, je me décide à un peu explorer ses fonctionnalités.

La communauté gagne toujours

Un serveur Git étant relativement compliqué à administré (contrairement à un serveur subversion qu'on lance et qu'on oublie ensuite), il existe plusieurs forges Git.

Une forge est un gros site web rassemblant dans une même infrastructure plusieurs projets et plusieurs développeurs, leur permettant ainsi de se concentrer sur le code, et surtout de partager plus d'informations.

La forge Git choisie par Logram est Gitorious. Elle a en effet plein d'avantages :

  • KDE et Qt l'utilisent, ce qui veut dire que leurs développeurs ont un oeil sur ce qu'il se passe chez Logram, et que nous avons la possibiliter de visiter leurs dépôts.
  • Plusieurs autres projets intéressants y sont aussi (Init-ng, Konversation, Amarok, etc).
  • La forge est simple d'utilisation, proposant les fonctionnalités qui nous manquent, mais pas celle que nous avons déjà (par rapport à Github qui propose quasiment un équivalent à la v4, ce qui pourrait amener des problèmes).
  • On y est bien, tranquille, etc. Créer un dépôt prend 10 secondes, y ajouter des contributeurs se fait en un clic, etc.

Un autre immense avantage est que tous les développeurs utilisant Gitorious se partagent un peu les projets. Dès que je pushe quelque-chose dans le dépôt de Logram, c'est affiché directement en page d'accueil. Ainsi, Logram y gagne énormément en visibilité.

Avantages technologiques de Git

En plus des avantages procurés par Gitorious, Git lui-même en a beaucoup.

Tout d'abord, il faut savoir ce que Git est. Git est un gestionnaire de révisions, au même titre que Subversion, c'est à dire qu'il permet aux développeurs de modifier un projet en sauvegardant toutes les étapes qui ont été nécessaires, et en permettant aux développeurs de se synchroniser.

Git permet également des choses en plus. Déjà, il est dit «décentralisé», c'est à dire qu'on n'a pas besoin d'un serveur (pour tester : créez un dossier puis tapez «git init» dedans, hop, vous avez un dépot :) !). Logram utilise le serveur de Gitorious, mais cette gestion centralisée apporte tout de même des plus.

Le plus important est la possibilité de travailler en local. Par exemple, Marc décide de faire une grosse modification de Setup. Pour cela, il lui suffit de clôner le dépôt (donc d'en récupérer une copie chez lui), puis il fait ses modifications, en local. Il peut modifier autant qu'il veut, sauvegarder ses changements, se resynchroniser avec ce qu'il se passe dans le dépôt officiel, etc.

Cela peut durer des mois s'il le faut. Une fois que Marc a fini, il lui suffit de demander à Git de créer un beau patch, et de l'envoyer à Logram. On l'applique, ça marche tout de suite.

Néanmoins, pendant tout le temps où Marc développe dans son coin, les administrateurs de Logram n'en savent rien. Heureusement, Gitorious entre en jeu ici et propose une magnifique fonctionnalité : les dépôts privés.

C'est maintenant le temps de découvrir ce que Gitorious nous offre. Sur cette page, vous voyez 3 dépôts de Logram, les 3 sous-dossiers qu'il y avait dans trunk jusqu'à présent. Il y a le site web, Setup et la liblpackages, et Logram DE. Le reste (Logram DE 2, Assistant, le bot IRC) arrivera plus tard.

Si vous cliquez sur «Setup», vous arrivez sur la page de ce dépôt, et découvrez avec une extrême joie que le développement de Setup a bien avancé sur Git, en parralèle à Subversion. Si vous êtes enregistré, vous trouverez dans le menu de droite un bouton «Clone this repository on Gitorious».

Ce bouton fait ce que j'ai décris plus haut, avec Marc, mais directement sur Gitorious. Si Marc clique sur ce bouton, cela lui crée automatiquement un projet sur Gitorious. Il peut le modifier, enregistrer ses modifications, les envoyer sur Gitorious, etc, sans gêner Logram.

La différence ici est que les développeurs de Logram savent que Marc développe quelque-chose, et peuvent lui donner plus d'informations. Ainsi, le travail de Marc profitera mieux à Logram, et il apprendra des choses.

Une fois qu'il aura fini, plus besoin de faire un patch. Il lui suffit de créer ce qu'on appelle un merge request, c'est à dire une demande d'inclusion. Si son code plaît, il sera inclus en un clic par les développeurs de Logram.

Pour voir ce système en oeuvre, regardez la page d'Init-ng : dans le menu de droite, il y a plusieurs «Personal clones». On sait donc qui fait quoi et comment, c'est la base d'une belle communauté :) .

Ce que ça changera pour Logram

Logram sera bien plus facile à développer avec Git, rien que par deux fonctionnalités que Git propose et pas Subversion.

La première est un puissant système de branches. Il est extrêmement aisé de maintenir en parallèle deux versions de Setup par exemple, comme la version stable et la version de développement. Tout bug corrigé dans la version stable peut être rapatrié dans la version de développement en une commande, ainsi que l'inverse.

Ensuite, il y a les tags. À chaque sortie de Setup (alpha0, alpha1, bientôt alpha2 :) ), il faut créer un dossier SVN, y copier les bons fichiers, modifier une version, les copier en local, créer un fichier .tar.bz2, l'envoyer sur le site web, créer une section sur la page Téléchargements, et espérer qu'il n'y aura pas de bugs dedans parce qu'il faudrait tout recommencer :-° .

Avec Git, il suffit de tagger une certaine modification comme étant une version, et tout le monde pourra automatiquement la télécharger sous forme de .tar.bz2 depuis Gitorious. C'est donc d'une simplicité effarante.

De plus, couplé au système de branches, on peut imaginer que n'importe quelle correction faite dans la branche "alpha1" sera immédiatement disponible dans le fichier .tar.bz2 généré automatiquement par Gitorious. Ainsi, moins de bugs, c'est plus facile pour les développeurs, et les utilisateurs sont contents :) .

Nouveautés de Setup

J'en profite également pour vite citer les quelques modifications que j'ai apporté dans Setup. Je vous rappelle que vous avez tout l'historique, ainsi qu'un lien de téléchargement, ici (cliquez sur "Source Tree" pour avoir le lien de téléchargement dans le menu de droite).

Tout d'abord, il y a la gestion des tags. L'utilisateur peut maintenant dire à Setup qu'un paquet ne peut pas être installé, ne peut pas être mis à jour, ou ne peut pas être supprimé. Ainsi, on corrige un problème du Rolling Release : Madame Michu découvre KDE 4.4, et fait bien ses mises à jour. Du jour au lendemain, POF, plus de KDE 4.4 mais un KDE 4.5 bien différent, elle est perdue. Il suffit pour corriger celà de mettre "kdelibs" en "interdit à la mise à jour". Toute sa distribution sera parfaitement à jour, KDE restera dans la version qu'elle connaît.

Ces tags apportent également d'autres choses. Un paquet peut nécessiter un redémarrage, auquel cas Setup en prévient l'utilisateur. Il peut également nécessiter l'approbation d'une license (CLUF), auquel cas Setup affiche cette license avant de télécharger le paquet (détail important ça, puisque rapatrier le paquet sur son ordinateur accepte automatiquement la license).

Ensuite, changement que vous avez peut-être remarqué, il est possible de voir le changelog d'un paquet depuis la section Téléchargements. Allez par exemple voir le contenu de libinitng, puis cliquez sur «Voir le changelog», et vous arrivez sur une belle page :) .

Il y a également eu pas mal de bugs corrigés, d'améliorations, y compris sur la v4, elle aussi passée à Git

Conclusion et adaptation

Pour profiter de tout ça, il vous suffit d'aller sur la page de Gitorious, et de taper les commandes données.

Attention seulement, Git marche difficilement sous Windows, mais c'est une bonne excuse pour quitter ce système d'exploitation. :-°

Si vous avez des questions, le forum est là pour ça :) .

Commentaries

Author Message
danman
# le 31/01/2010 à 20h28
Heureux d'être là
Group : Member

j'avais pas accroché a git quand je comparais avec SVN, mais on va bien voir les changements :)