Cette page explique la procédure à suivre pour publier officiellement une nouvelleversion en provenance de la branche de développement de MLV du serveur git.
On supposera, dans la suite de ce document que votre depôt git est nettoyé, comme si vous veniez de le cloner.
Commencez par fusionner la branche develop dans celle de release :
git checkout release git merge develop
Commencez par enlever le suffixe -dev du numéro de version. Pour cela, cherchez la ligne qui commence par,
AC_INIT([MLV], [2.0.2-dev], [adrien.boussicault@labri.fr], [], [http://www-igm.univ-mlv.fr/~boussica/mlv/index.html])
et remplacez là par
AC_INIT([MLV], [2.0.2], [adrien.boussicault@labri.fr], [], [http://www-igm.univ-mlv.fr/~boussica/mlv/index.html])
Modifiez ensuite les numéros de version mlvcurrent
, mlvrevision
et mlvage
situés dans le fichier configure.ac
.
La logique à suivre est expliquée en commentaire dans le fichier. Pour cela, vous aurez à conaître les modifications qui ont été réalisé depuis la dernière version. POur cela, consultez le fichier ChangeLog
situé dans à la racine. Regardez les modifications faites dans la version courrente de développement :
mlv-2.0.2-dev
Les lignes à modifier sont les suivantes :
define([mlvcurrent], [2])dnl define([mlvrevision], [0])dnl define([mlvage], [2])dnl
Mettez à jour, dans le fichier configure.ac
de la racine de mlv, les versions pour MacOSX et Fedora:
AC_SUBST(MLV_MACOSX_VERSION,[10.10])
Mettez à la place la version actuelle de MacOSX.
AC_SUBST(MLV_FEDORA_VERSION,[22])
Mettez à la place la version actuelle de Fedora.
Modifiez le fichier ChangeLog
situé à la racine de la bibliothèque. Pour cela, mettez à jour, le numéro de version apparaissant dans la première ligne de ChangeLog. Cette ligne ressemble à :
mlv-2.0.2-dev
Vous devez mettre le même numéro de version que celui que vous avez mis dans la section : Changer le numéro de version Changer, et vous devez enlever le suffixe -dev.
Mettez à jour le fichier todo
situé à la racine de la bibliothèque.
Pour la suite du document, pour que les numéros de versions coincident avec les nouveaux numéros de version que vous venez de renseigner, nous vous conseillons de recompiler la documentation et de continuer avec la nouvelle documentation ainsi générée. Pour cela tapez les commandes suivantes :
make distclean ./autogen.sh ./configure make
La nouvelle version de la page que vous êtes en train de lire se trouve dans le fichier
./doc/api/French/html/release_new_version.html
à partir de la racine de la bibliothèque MLV.
Créez uen clé qui servira à signer tous les paquets d'installation. Pour cela, tapez la commande suivante :
gpg --gen-key
et choisisez une clef RSA de 4096 bits, mettez un temps d'expiration de 3 jours (temps que vous vous donnez pour créer et tester l'ensemble des paquets de distribution) et choisissez comme commentaire: mlv-2.0.2 key
.
Vérifier que la clé est dans votre liste de clés en tapant :
gpg --list-key
Vous devriez obtenir l'affichage suivant :
/home/boussica/.gnupg/pubring.gpg --------------------------------- pub 4096R/E594D293 2014-02-25 [expire : 2014-02-28] uid Adrien Boussicault (mlv-2.0.2 key) <boussica@labri.fr> sub 4096R/4B3F1834 2014-02-25 [expire : 2014-02-28]
L'identifiant de la clé est ici E594D293
Exportez la clé publique pour pouvoir la comuniquer à différents utilisateurs
gpg --export --armor IDENTIFIANT_CLE > mlv-2.0.2-packaging-gpg-key-VOTRE_NOM
où IDENTIFIANT_CLE
est l'identifiant de la clé vu précédement.
Exportez votre clé privé pour pouvoir l'importer dans toutes les machines qui vont créer les paquets de distribution (notament pour debian et fedora).
gpg --export-secret-keys --armor IDENTIFIANT_CLE > mlv-2.0.2-packaging-gpg-secretkey-VOTRE_NOM
où IDENTIFIANT_CLE
est l'identifiant de la clé vu précédement.
Vous ne devez JAMAIS comuniquer cette clé. C'est elle qui sert à crypter les messages et à réaliser les signatures de vos paquets.
Archivez dans vos archives personnelles (et secrète) la clé publique et la clé privée.
Vérifiez maintenant le bon fonctionement de la bibliothèque.
Pour cela, créez tout les paquets de distribution en suivant les procédures présentes à la page : Créer des paquets distribuables de la bibliothèque MLV .
Testez ensuite tous les paquets crées et vérifiez le bon fonctionnement des programmes en compilant et testant tous les exemples présents dans le dossier example
du dossier de documentation qui a été installé par le paquet. Sous linux, il est situé dans /usr/share/doc/mlv/
.
Vous prendrez bien soin de bien vérifier que les programmes qui utilisent le son fonctionne correctement (notament sous Mac OS X et windows).
Vous vérifiez aussi que la documentation est bien à jour en verifiant que les nouveaux numéros de version sont à jour, notament dans la partie téléchargement de la documentation. Pour cela, il suffit de suivre les différents liens présents à la page doc/index.html
.
Quand la bibliothèque est prête à être publiée, il ne reste plus qu'à fusionner release dans master.
Commencez par bien vérifier que vous avez sauvegardé les dernières modifications de release :
git status
Ensuite, procédez à la fusion de merge dans master en tapant :
git checkout master git merge release
Ajouter un tag pour préciser que ce dernier commit est une nouvelle version.
git tag -a v2.0.2 -m 'The version 2.0.2 of MLV.'
où 2.0.2 est normalement le nouveau numéro de version de la bibliothèque. Si ce n'est pas le cas, c'est que vous n'avez pas recompilé cette documentation après avoir changé les numéros de version.
Vous pouvez éventuellement, ajoutez des commentaires dans l'opition -m.
Il ne reste plus qu'à envoyer tous les changements sur le dépot git.
git push --follow-tags
Il ne rest plus qu'à mettre en place une nouvelle version en developpement. Commencez par mettre à jour la branche de developpement :
git checkout develop git merge release
Mettez à jour le numéro de version : dans le fichier configure.ac
ajoutez le suffixe -dev au numéro de version. Pour cela, cherchez la ligne
AC_INIT([MLV], [2.0.2], [adrien.boussicault@labri.fr], [], [http://www-igm.univ-mlv.fr/~boussica/mlv/index.html])
et remplacez-là par
AC_INIT([MLV], [2.0.2-dev], [adrien.boussicault@labri.fr], [], [http://www-igm.univ-mlv.fr/~boussica/mlv/index.html])
Enfin, créer un nouveau paragraphe dans le fichier ChangeLog
situé à la racine de la bibliothèque. Ce paragraphe doit commencer par :
mlv-2.0.2-dev
Normalement, ce paragraphe ne doit pas déjà exister. Si c'est le cas, c'est que vous n'avez pas recompilé cette documentation après avoir mis à jour les numéros de version.
Mettez à jour le fichier todo
situé à la racine de la bibliothèque.
Enregistrez dans git les modifications, en mettant le commentaire d'une ligne "New developement version of MLV." lorsque cela est demandé :
git add configure.ac git commit
Enfin envoyez les modification sur le serveur git officiel.
git push
Basculez de nouveau sur la branche master, pour la suite de document.
git checkout master
Vérifiez que vous êtes bien sur la branche master du depot git de MLV. Tapez les commandes :
git checkout master # pour charger la branche master git status # pour vérifier que vous êtes sur la branche master
Commencez par créer un paquet de distribution pour le code source, à partir de la branche master :
./configure make dist
Normalement le fichier mlv-2.0.2.tar.gz
a du être créé. Il est très important d'exécuter le script ./configure
, même s'il existait déjà. En effet, son exécution permet de mettre à jour le numéro de révision git situé dans le code source.
Ensuite, à partir de ce dernier fichier, recréez l'ensemble des paquets de distribution.
Pour cela vous pouvez utiliser l'émulateur virt-manageur
pour installer localement une debian 32 bit, une debian 64 bit, un fedora 32 bits et 64 bits.
Pour chaque distribution (debian, fedora, window, MacOSX), créez des paquets d'installation en suivant les instructions suivantes :
mlv-2.0.2-packaging-gpg-secretkey-VOTRE_NOM
, qui a été générée précédement. Pour importer cette clé, il vous suffit de taper la commande suivante : gpg --import mlv-2.0.2-packaging-gpg-secretkey-VOTRE_NOM
Vérifiez le bon fonctionnement de ces paquets.
Commencez par créer deux dossiers : depot
et site
, dans le répertoire /tmp
.
Dans le dossier depot
, créez un dossier mlv-2.0.2
.
Mettez dans le dossier depot
le fichier mlv-2.0.2.tar.gz
.
Ensuite, mettez les fichiers suivants, dans le dossier depot/mlv-2.0.2
:
libmlv0_2.0.2-1_i386.deb libmlv0-dev_2.0.2-1_i386.deb libmlv0_2.0.2-1_amd64.deb libmlv0-dev_2.0.2-1_amd64.deb mlv-2.0.2-0.fc22.i686.rpm mlv-devel-2.0.2-0.fc22.i686.rpm mlv-static-2.0.2-0.fc22.i686.rpm mlv-2.0.2-0.fc22.src.rpm mlv-2.0.2-0.fc22.x86_64.rpm mlv-devel-2.0.2-0.fc22.x86_64.rpm mlv-static-2.0.2-0.fc22.x86_64.rpm mlv-2.0.2-0.fc22.src.rpm RPM-GPG-KEY-Boussicault mlv-2.0.2-win32.zip mlv-2.0.2-code_blocks.zip mlv-2.0.2-dev-cpp.zip mlv-2.0.2_macos-10.10.pkg mlv-2.0.2.tar.gz
N'oubliez surtout pas de mettre de nouveau le fichier mlv-2.0.2.tar.gz
.
Il faut maintenant signer tous les fichiers qui n'ont pas encore été signés :
cd /tmp/depot gpg -b --use-agent --local-user IDENTIFIANT_CLE mlv-2.0.2.tar.gz cd /tmp/depot/mlv-2.0.2 gpg -b --use-agent --local-user IDENTIFIANT_CLE mlv-2.0.2-win32.zip gpg -b --use-agent --local-user IDENTIFIANT_CLE mlv-2.0.2-code_blocks.zip gpg -b --use-agent --local-user IDENTIFIANT_CLE mlv-2.0.2-dev-cpp.zip gpg -b --use-agent --local-user IDENTIFIANT_CLE mlv-2.0.2_macos-10.10.pkg gpg -b --use-agent --local-user IDENTIFIANT_CLE mlv-2.0.2.tar.gz
où IDENtiFIANT_CLE
est l'identifiant de la clé créé dans la partie "Préparer une clé pour signer ...".
Puis on vérifie les signatures créés :
cd /tmp/depot gpg --verify mlv-2.0.2.tar.gz.sig cd /tmp/depot/mlv-2.0.2 gpg --verify mlv-2.0.2-win32.zip.sig gpg --verify mlv-2.0.2-code_blocks.zip.sig gpg --verify mlv-2.0.2-dev-cpp.zip.sig gpg --verify mlv-2.0.2_macos-10.10.pkg.sig gpg --verify mlv-2.0.2.tar.gz.sig
Copiez le fichier mlv-2.0.2.tar.gz
dans le dossier /tmp
et générez la documentation de la bibliothèque en tapant les commandes suivantes:
cd /tmp tar -xzf mlv-2.0.2.tar.gz cd mlv-2.0.2 ./configure make cp -r doc/api /tmp/depot/mlv-2.0.2/
Enfin, ajouter les programmes d'installation des ide Code-blocks et Dev-cpp en prenant soin de mettre la version de l'installateur correspondant au numéro de version qui se trouve sur la documentation.
Préparons maintenant le code source du site. Pour cela, tapez les commandes suivantes
cd /tmp/mlv-2.0.2/doc cp -r index.html api /tmp/site
Il ne reste plus qu'à télécharger les fichiers de distributions sur le serveur de Savannah en tapant les commandes suivantes :
cd /tmp/depot/ chmod 644 * rsync -av /tmp/depot/. LOGIN@dl.sv.nongnu.org:/releases/mlv/.
où LOGIN est votre login de developpeur et le mot de passe celui de votre clé RSA donné pour accéder au dépot git.
Il faut maintenant mettre à jour le site web. Commencez par monter le dossier du code source de http://www-igm.univ-mlv.fr/~boussica/mlv/index.html sur le dossier DOSSIER_SITE_WEB. Puis, tapez la commande suivante :
rsync -av --delete /tmp/site/. LE_SITE_WEB
Testez un à un tous les liens présents dans la section téléchargement de la documentation.
Vérifiez que les paquets s'installent correctement et vérifiez que les exemples s'executent correctement.
Vérifiez que, lors de l'exécution du programme example/beginner/10_library_information
, le numéro de version et la révision git qui apparaît à l'écran, correspond bien à la révision courante présente dans la branche master du dépôt git.