Getionnaire de version de code Bazaar
Forge logicielle LaunchPad
Bazaar est un système de gestion de versions décentralisée et en ligne de commande, libre, sponsorisé par Canonical Ltd. Chaque copie de travail est un dépôt complet qui contient tout l'historique. Bazaar est écrit en Python et maintenu par le projet GNU depuis la version 1.2 publiée en 2008. Bazaar repose sur un jeu de commande très restreint. Chaque développeur dispose de sa propre branche, et peut demander à fusionner sa branche avec la branche principale du projet. Bazar installe une nouvelle commande unique, bzr. Toutes les autres commandes sont des sous-commandes de bzr.
Bazaar peut être utilisé en association avec la forge logiciel et hébergeur de code Launchpad. Ce service est développée et maintenue par Canonical Launchpad (Wikipedia). Il se compose de plusieurs parties :
Une présentation des fonctionnalités est consultable ici :
https://doc.ubuntu-fr.org/launchpad
http://wiki.bazaar.canonical.com/fr/IntroductionABzr
https://doc.ubuntu-fr.org/bzr
http://wiki.bazaar.canonical.com/BzrEclipse/Installation (en)
Bazaar et LaunchPad permettent la collaboration d'un grand nombre de personnes sur un même projet, en mettant à disposition des administrateurs, des développeurs et des utilisateurs, un mécanisme de gestion des équipes et des projets, laissant toujours la possibilité de créer des variantes (nouvelles branches, nouveaux projets) et de former de nouvelles équipes.
Chaque contributeur modifiant le code peut stocker sa version sur une branche du projet qui lui est propre. Puis lorsqu'il considère que les modifications qu'il a apporté sont suffisamment matures, il peut demander la fusion de sa branche avec la branche principale du projet. Les responsables du projet vont alors examiner sa demande et effectuer la fusion des deux versions à l'aide de Bazaar.
----
Nous expliquons comment à partir d'une distribution Lubuntu, ou d'une autre distribution de la famille Debian, utiliser le gestionnaire de version de code Bazaar en ligne de commande, et comment utiliser la forge logiciel et hébergeur de code LaunchPad.
----
Dans ce document, le code se présente en caractère à chasse fixe. Le code saisie à la console se présentera avec un prompt $ ou # selon que l'utisateur est dmabboux ou root. Le tilde ~ utilisé seul comme nom de fichier, désigne le fichier /home/dmabboux qui est le répertoire courant de l'utilisateur connecté (moi en l'occurrence).
On commence par installer un moyen sécurisé de transfère de fichier via le protocole ssh avec une clé rsa :
$ apt-get install ssh
$ ssh-keygen
La clé rsa privé et la clé rsa public se trouvent dans :
/home/dmabboux/.ssh/id_rsa
On peut utiliser les même clés à partir d'un autre ordinateur, il suffit de recopier ce dossier (éventuellement en ne gardant que les deux fichiers id_rsa et id_rsa_pub), mais il faut tout de même, mettre des droits d'accès restrictifs comme suit, sinon la connexion ne sera pas autorisées par de nombreux serveurs qui jugeront les moyens de connexion pas assez sécurisés :
$ cd ~
$ chmod 700 .ssh
$ chmod 600 .ssh/id_rsa
$ chmod 644 .ssh/id_rsa.pub
La forge LaunchPad a une interface web écrite en anglais. Beaucoup d'outils libres sont dans ce cas, et n'offrent parfois qu'une documentation écrite en anglais. C'est pourquoi un outils de traduction est utile. Voici 5 outils de traduction en ligne gratuits :
Mieux vaut éviter les monopoles marchands et grandes multinationales si possible.
Allez sur le site puis cliquez sur « Log in / Register » et créer votre compte. J'utilise comme identifiant Launchpad dmabboux qui est identique à mon login local sur mon PC.
Allez sur « SSH Key » pour transmettre votre clé public. Coller l'intégralité du contenue du fichier ~/.ssh/id_rsa.pub et cliquez sur « Import SSH Key ».
Créer un projet sur LaunchPad : https://launchpad.net/projects/+new
La page de profile de chaque développeur est accessible là https://launchpad.net/~dmabboux où dmabboux est le login du développeur (ici moi en l'occurrence)
La page de profile de chaque projet est accessible là https://launchpad.net/mod où mod est le nom court du projet.
Pour définir une identité globale :
$ bzr whoami "Dominique MABBOUX-STROMBERG <mabboux@wanadoo.fr>"
Pour voir l'identité de l'utilisateur actuel de Bazaar
$ bzr whoami
Si vous souhaitez utiliser une identité différente pour une branche spécifique, aller sur le dossier de la branche et faite la même commande avec l’option --branch :
$ cd le_chemin_de_la_branche
$ bzr whoami --branch "Dominique MABBOUX-STROMBERG <mabboux@wanadoo.fr>"
On peut le faire autrement en définissant l'adresse e-mail dans le fichier ~/.bazaar/bazaar.conf en ajoutant les lignes suivantes :
[DEFAULT]
email = Dominique MABBOUX-STROMBERG <mabboux@wanadoo.fr>
launchpad_username = dmabboux
Et vous pouvez spécifier ces paramètres par branche en créant une section de branche, en ajoutant les lignes suivantes :
[le_chemin_de_la_branche]
email = Dominique MABBOUX-STROMBERG <mabboux@wanadoo.fr>
Maintenant nous allons créer et initialiser un répertoire local pour le nouveau projet qui s'appellera par exemple mod et qui servira de dossier référentiel. Puis nous crérons et initialiserons un sous-dossier appelé tronc qui constitura la branche principale du projet.
$ cd ~
$ bzr init-repo mod
$ bzr init mod/tronc
On peut ne pas créer en local de répertoire pour l'application et créer directement un branche
$ cd ~
$ bzr init mod1
Chaque dossier controlé par Bazaar (qui permet le controle de version) contient un fichier .bzr
Placez des nouveaux fichiers par exemples mod.go et Lisez-moi.txt, dans le dossier ~/mod/tronc puis ajoutez-les dans Bazaar pour les soumettre au control de version, comme suit :
$ cd ~/mod/tronc
$ bzr add mod.go
$ bzr add Lisez-moi.txt
Valider leur version en mettant un message expliquant cela :
$ cd ~/mod/tronc
$ bzr commit -m "Ajout du fichier source mod.go et du Lisez-moi.txt"
Connectez l'outils Bazaar à launchpad. Puis Uploadez la branche sur LaunchPad en la mettant dans votre compte dmabboux :
$ bzr launchpad-login dmabboux
$ cd ~/mod/tronc
$ bzr push lp:~dmabboux/mod/tronc
L'opération inverse pour télécharger la branche dans un nouveau répertoire local que l'on crée :
$ cd ~
$ bzr init mod2
$ cd mod2
$ bzr pull lp:~dmabboux/mod/tronc
ou
$ bzr pull lp:mod/tronc
ou plus simplement
$ bzr pull lp:mod
Ouvrez un terminal, installer le package ssh-askpass nécessaire pour que Eclipse vous demande par le biais d'un interface graphique le passphrase lors des connexions.
apt install ssh-askpass
Pour ajouter un projet d'Eclipse à Bazaar faire un clique-droit sur le projet et Team | Share Project...
Pour récupérer une branche faire un clique-droit sur le projet et Team | Pull from... puis saisire l'adresse de la branche telle que lp:mod
"Debian 8 Jessie" (Raphaël Hertzog, Roland Mas) - Un ouvrage de référence sur Debian.
En ligne - En pdf - Sur papier
------- 3 septembre 2018 -------