Getionnaire de version de code Bazaar
Forge logicielle LaunchPad

 

1) Introduction

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).

2) Installation de ssh et d'une clé rsa

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

3) Outils de traduction en ligne

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 :

  1. Systran http://www.systranet.com/translate/
  2. Deepl https://www.deepl.com/translator
  3. Yandex https://translate.yandex.com/?lang=en-fr
  4. Reverso http://www.reverso.net/text_translation.aspx?lang=FR
  5. Google https://translate.google.fr/?hl=fr
  6. Microsoft https://www.bing.com/translator/?from=en&to=fr

Mieux vaut éviter les monopoles marchands et grandes multinationales si possible.

4) Inscription sur LaunchPad

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.

https://launchpad.net

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/~dmabbouxdmabboux est le login du développeur (ici moi en l'occurrence)

La page de profile de chaque projet est accessible là https://launchpad.net/modmod est le nom court du projet.

5) Utilisation de Bazaar

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

6) Installation du plugin Bazaar pour Eclipse

  1. Lancez Eclipse
  2. Help | Install New Software
  3. Cliquez sur Add
  4. Name = bzr-eclipse update-site
  5. Location = http://bzreclipse.org/update-site/
  6. Cliquez sur OK
  7. Selectionnez Collaboration
  8. Cliquez sur Next
  9. Acceptez la licence
  10. Cliquez sur Finish
  11. Un warning s'affiche
  12. Cliquez sur Installer quand-même
  13. Cliquez sur Restart Eclispe

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

 

7) Sur Linux

"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 -------