Utilisateur:Gotty/Extranet/Livraison

Organisation du dépôt

modifier

Le dépôt contient les 3 répertoires suivants : trunk, branches, tags.

Les principaux développements, relatifs à la version instable, se font dans le répertoire trunk. Une fois que l'on pense que notre version est stable, on transfère tout le contenu du trunk dans un tag. Les corrections de bugs éventuels se font alors dans une branche.

NB. : aucun développement ne doit être effectué dans le répertoire tags.

Cette organisation permet de :

  • pouvoir sortir des versions correctives de versions antérieures tout en continuant à travailler sur la version en cours ;
  • avoir un tronc correspondant toujours à la dernière version de l'extranet, la version dite 'unstable' ;
  • avoir une succession de versions dites stables marquées par des tags et des branches contenant leur(s) correctif(s).

Numéros de versions

modifier

Ils ont la forme x.y.z.

  • x est le numéro de version majeure : il est incrementé lorsque de grosses modifications ont été apportées, et qui cassent la compatibilité avec la version majeure précédente x-1, nécessitant donc de grosses modifications dans les projets pour la migration.
  • y est le numéro de version mineure : il est incrémenté quand il y a de nouvelles fonctionnalités, évolutions, corrections de bugs etc. Par contre un projet basé sur une version x.y devrait être compatible avec une version x.y-1.
  • z est le numéro de version de correction : il change quand il y a eu simplement des corrections de bugs par rapport à la version x.y.z-1.

Dans les dépôts, les tags de livraison sont de la forme livraison_EXTRANET_x_y_z, ceux de merge de la forme merged_EXTRANET_x_y_z et les branches de la forme EXTRANET_x_y.

Livrer une nouvelle version

modifier

La livraison d'une nouvelle version se fait en plusieurs étapes. D'abord la création d'un nouveau tag sous Eclipse et la création d'une branche adéquate, puis la création d'un paquet .deb et enfin la livraison du paquet et d'un fichier SQL.

Commencez par recenser l'ensemble des modifications faites en base, et vérifiez que les fichiers dans /misc/db sont correctement mis à jour.

Création d'un nouveau tag

modifier

La création d'un nouveau tag sous Eclipse se fait de la manière suivante :

  • Clic droit sur Trunk (si c'est un tag d'une nouvelle version venant du trunk), ou sur la branche de maintenance
  • Menu Team, cliquer sur Branch/Tag
  • Remplir alors les informations suivantes :
   From WC at URL : http://svn.eclair.ec-lyon.fr/svn/extranet/trunk (par exemple)
   To URL : http://svn.eclair.ec-lyon.fr/svn/extranet/tags/livraison_EXTRANET_x_y_z
  • Compléter le commentaire pour savoir ce que contient le tag
  • Faire un Update pour récupérer ce tag.

Création d'un paquet .deb

modifier

Cette méthode n'est valable que sous Ubuntu (d'autres méthodes sont les bienvenues !). Elle consiste en la création d'un utilisateur spécial sur votre machine qui ne servira qu'à la création de paquets. Il commence par créer un fichier rpm, que l'on transforme ensuite en paquet .deb

  • Installer, si nécéssaire, les paquets : fakeroot, rpm, subversion,alien
  • Créer les deux fichiers contenant les codes ci-dessous dans le même dossier, et nommez-les makeDeb.sh et extranet.spec
  • Placez vous dans le dossier dans lequel vous avez créé vos fichiers, et exécutez le script
sudo chmod 0755 makeDeb.sh 
sudo ./makeDeb.sh
  • Puis, créer le paquet en se loggant sous le nouvel utilisateur créé spécialement, et qui pourra aller chercher dans extranet.spec les données nécéssaires à la création du fichier rpm. Commencez par vous connecter :
sudo su - devrpm
  • Dans extranet.spec, corriger les variables en début de fichier packager et version (on utilisera ici vim, mais tout autre éditeur de texte est possible) :
vim /home/devrpm/SPECS/extranet.spec
  • Puis créer le .rpm
rpmbuild -bb /home/devrpm/SPECS/extranet.spec
  • Normalement, le nom du fichier créé apparaît à la fin de l'exécution du script. Si ce n'est pas le cas, consulter dans le répertoire de création des fichiers rpm le dernier fichier créé.Tous les RPM sont dans le dossiers RPMS. L'extranet n'étant pas spécifique a une architecture, il se trouve dans le dossier noarch. Il devrait donc être de la forme extranet-x.y.z-n.eclair.noarch.rpm, où x.y.z est le numéro de version et n le nombre de fichiers rpm créés pour cette version.
ls ~/RPMS/noarch/ 
  • Enfin, créer le fichier .deb en remplacant fichier par le nom de fichier trouvé ci-dessus. On utilise la commande alien, qui permet de convertir le RPM en DEB facilement. On peut aussi se servir directement du RPM ainsi créé sur de la redhat/fedora (à vérifier pour les noms des paquets de dépendance).
fakeroot alien -d -k --scripts ~/RPMS/noarch/fichier.rpm

Vous devriez alors un fichier .deb dans /home/devrpm .

Livrer le paquet et un fichier SQL

modifier

Enfin, vous pouvez livrer votre paquet .deb et un fichier SQL retraçant toutes les modifications de base de données effectuées depuis au responsable d'ECLAIR. Demandez également au responsable de mettre à jour les bases de données des sites de développement, et de faire pointer le site des branches vers la bonne branche en cas de changement de version (si vous livrez la version 2.9.0 par exemple, il faudra faire pointer le site des branches vers branches/EXTRANET_2_9 et non plus branches/EXTRANET_2_8)

Ajoutez ce fichier SQL en corps de texte d'une tâche Flyspray que vous clorez de suite, cela afin de garder un historique des modifications apportées à la base.

Merger avec le trunk (dans le cas du travail sur une branche)

modifier

Lorsque vous avez travaillé sur une branche et que vous l'avez déployée, il faut encore vous assurer que le trunk prendra en compte toutes les modifications apportées dans la branche (sinon, à la prochaine livraison, vous perdrez tout le travail effectué dans la branche). Pour cela, il faut donc fusionner (ou merger en franglais) la branche avec le trunk.

  • Cliquez donc sur le trunk.
  • Clic droit -> Team -> Merge
  • Remplissez les champs comme suit
From : http://svn.eclair.ec-lyon.fr/svn/extranet/trunk
Revision : HEAD (la dernière révision)

To : http://svn.eclair.ec-lyon.fr/svn/extranet/branches/EXTRANET_x_y
Revision : HEAD (la dernière révision)
  • Cliquez sur merge
  • Commitez le trunk.