Projet

Général

Profil

Migrer-un-projet-EOLE-24-vers-Envole-4 » Historique » Version 3

Version 2 (Daniel Dehennin, 20/02/2015 11:11) → Version 3/5 (Daniel Dehennin, 20/02/2015 11:15)

{{toc}}

h1. Migrer un projet EOLE 2.4 vers Envole 4

{{include(envole:Intro-PreparationEnvole4)}}

h2. Vérifier que le paquet est bien compilé en EOLE 2.4


[[MigrationAppliEnvole4#État-des-lieux-application-par-application|La plupart des préparatifs ont déjà été fait]].

Il faut migrer certains éléments pour l’utilisation des "dépôts Envole":http://eole.ac-dijon.fr/envole.

*@ATTENTION@* : Assurez-vous que les branches soient bien à jour par rapport aux dépôts sur *@dev-eole.ac-dijon.fr@*.

h2. Dupliquer la branche de compilation EOLE 2.3 en branche de compilation Envole 4

<pre>
user@work:~/src/wordpress (master)$ git checkout -b dist/envole/4/master dist/ubuntu/precise/master

user@work:~/src/wordpress (dist/envole/4/master)$ git push -u $(git config branch.master.remote) dist/envole/4/master
user@work:~/src/wordpress (dist/envole/4/master=)$
</pre>

h2. Renommer l’étiquette de la dernière compilation EOLE 2.4

Les "étiquettes":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage de la forme *@pkg/*@* sont positionnées sur la branche d’empaquetage afin de pouvoir suivre les demandes de compilation.

h3. Déterminer l’étiquette de la dernière compilation EOLE 2.4

<pre>
user@work:~/src/wordpress (dist/envole/4/master=)$ git describe --abbrev=0 dist/ubuntu/precise/master
pkg/eole/eole-2.4/3.6.1-eole3-1

user@work:~/src/wordpress (dist/envole/4/master=)$ EOLE_TAG=$(git describe --abbrev=0 dist/ubuntu/precise/master)
</pre>

h3. Extraire la version

<pre>
user@work:~/src/wordpress (dist/envole/4/master=)$ echo ${EOLE_TAG##*/}
3.6.1-eole3-1

user@work:~/src/wordpress (dist/envole/4/master=)$ VERSION=${EOLE_TAG##*/}
</pre>

h3. Vérifier le message de l’étiquette

Nous allons réutiliser le message de l’étiquette de la dernière compilation EOLE 2.4, la première ligne non vide doit contenir la chaîne *@New package version@* :

<pre>
user@work:~/src/wordpress (dist/envole/4/master=)$ git show -s --format="format:" ${EOLE_TAG} | perl -lane 'print if (/New package version/ .. /^-+BEGIN/) =~ /^\d+$/'
Lionel MORIN: New package version 3.6.1-eole3-1 for eole-2.4-unstable.
[...]

user@work:~/src/wordpress (dist/envole/4/master=)$ EOLE_MESSAGE=$(git show -s --format="format:" ${EOLE_TAG} | perl -lane 'print if (/New package version/ .. /^-+BEGIN/) =~ /^\d+$/')
</pre>

h3. Dupliquer l’étiquette de la dernière compilation EOLE 2.4 en première étiquette de compilation Envole

* Créer l’"étiquette":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage
<pre>
user@work:~/src/wordpress (dist/envole/4/master=)$ git tag -m "${EOLE_MESSAGE}" pkg/envole/envole-4/${VERSION} ${EOLE_TAG}^{}
</pre>
* Vérifier le message de l’"étiquette":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage
<pre>
user@work:~/src/wordpress (dist/envole/4/master=)$ git show pkg/envole/envole-4/${VERSION}
</pre>

h3. Pousser la nouvelle étiquette

<pre>
user@work:~/src/wordpress (dist/envole/4/master=)$ git push --tags
</pre>

h2. Renommé l’étiquette du dernier paquet EOLE 2.4

Une étiquette de la forme *@debian/*@* est créé par l’infrastructure de compilation de paquet afin de gérer automatiquement le fichier *@debian/changelog@*.

h3. Déterminer l’étiquette du dernier paquet EOLE 2.4

<pre>
user@work:~/src/wordpress (dist/envole/4/master=)$ awk -F'=' '/^debian-tag/ {print $2}' debian/gbp.conf | sed -e "s,%(version)s,${VERSION},"
debian/eole/2.4/3.6.1-eole3-1

user@work:~/src/wordpress (dist/envole/4/master=)$ EOLE_DEB_TAG=$(echo $(awk -F'=' '/^debian-tag/ {print $2}' debian/gbp.conf | sed -e "s,%(version)s,${VERSION},"))
</pre>

h3. Récupérer l’étiquette du dernier paquet EOLE 2.4

Les "étiquettes":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage de la forme *@debian/*@* ne pointe sur aucune branche, ils ne sont utilisés que par l’infrastructure de compilation de paquet et ne sont donc que sur les dépôts *@dev-eole.ac-dijon.fr@*.

Pour récupérer la dernière "étiquette":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage de paquet :

<pre>
user@work:~/src/wordpress (dist/envole/4/master=)$ git fetch $(git config branch.master.remote) refs/tags/${EOLE_DEB_TAG}:refs/tags/${EOLE_DEB_TAG}
</pre>

h3. Vérifier le message de l’étiquette

<pre>
user@work:~/src/wordpress (dist/envole/4/master=)$ git show -s --format="format:" ${EOLE_DEB_TAG} | perl -lane 'print if (/Debian release/ .. /^-+BEGIN/) =~ /^\d+$/'
eole-wordpress Debian release 3.6.1-eole3-1

user@work:~/src/wordpress (dist/envole/4/master=)$ DEB_MESSAGE=$(git show -s --format="format:" ${EOLE_DEB_TAG} | perl -lane 'print if (/Debian release/ .. /^-+BEGIN/) =~ /^\d+$/')
</pre>

h3. Dupliquer l’étiquette du dernier paquet EOLE 2.4 en première étiquette de paquet Envole

<pre>
user@work:~/src/wordpress (dist/envole/4/master=)$ git tag -m "${DEB_MESSAGE}" debian/envole/4/${VERSION} ${EOLE_DEB_TAG}^{}
</pre>

On vérifie le message

<pre>
user@work:~/src/wordpress (dist/envole/4/master)$ git show debian/envole/4/${VERSION}
</pre>

h3. Pousser la nouvelle étiquette

<pre>
user@work:~/src/wordpress (dist/envole/4/master=)$ git push $(git config branch.master.remote) debian/envole/4/${VERSION}
</pre>

h2. Passer le projet en paquet natif

Pour la gestion des [[eole:EoleDebianPackaging24#debiansourceformat|numéros de version]] de paquet:

<pre>
user@work:~src/wordpress (dist/envole/4/master=)$ mkdir -p debian/source
user@work:~src/wordpress (dist/envole/4/master=)$ cat >| debian/source/format <<EOF
3.0 (native)
EOF

user@work:~src/etherpad (dist/envole/4/master*=)$ git add debian/source/format
user@work:~src/etherpad (dist/envole/4/master+=)$
</pre>

h2. Modifier la configuration git-buildpackage

Il faut modifier modifier le fichier de configuration *@debian/gbp.conf@* afin de modifier le format des "étiquettes":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage de suivi des compilations:

<pre>
user@work:~/src/wordpress (dist/envole/4/master+=)$ sed -i -e 's,^debian-tag.*,debian-tag = debian/envole/4/%(version)s,' debian/gbp.conf
user@work:~/src/wordpress (dist/envole/4/master*+=)$ git add debian/gbp.conf
user@work:~/src/wordpress (dist/envole/4/master+=)$ git commit -m "Configuration pour l’infrastructure de compilation EOLE

* debian/gbp.conf: Définition du format des étiquettes de compilation
pour Envole."

user@work:~/src/wordpress (dist/envole/4/master>)$
</pre>

{{include(envole:End-PreparationEnvole4)}}