Projet

Général

Profil

Migrer-un-projet-EOLE-23-vers-Envole-4 » Historique » Version 6

Version 5 (Daniel Dehennin, 20/02/2015 11:58) → Version 6/7 (Daniel Dehennin, 20/02/2015 12:09)

{{toc}}

h1. Migrer un projet EOLE 3 vers Envole 4



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



h2. Ouvrir le projet à l’infrastructure de compilation EOLE

* Demander à EOLE l'activation du projet pour l’infrastructure de compilation EOLE
* Se positionner sur la branche d’empaquetage EOLE 2.3
<pre>
user@work:~src/etherpad (master=)$ git checkout dist/ubuntu/lucid/master

user@work:~src/etherpad (dist/ubuntu/lucid/master<)$ git pull
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$
</pre>



h2. Créer une étiquette de la dernière compilation de paquet EOLE 2.3

Cela permet de déclarer le dernier paquet à l’infrastructure de compilation EOLE.

Le fichier *@debian/changelog@* est mis à jour automatiquement depuis les logs GIT en ce basant sur le paquet précédent, il est donc important d’avoir des messages de commit [[eole:GitBonnesPratiques#De-lécriture-des-ChangeLog|qui ont du sens]].



h3. Déterminer l’étiquette de la dernière compilation de du dernier paquet EOLE 2.3

* Déterminer le dernier commit de compilation EOLE 2.3
<pre>
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git rev-list --oneline --no-merges -F --grep '## Nouveau paquet' --max-count 1 dist/ubuntu/lucid/master
b6f847f8859db1c77355f51300052bb95d4f202b ## Nouveau paquet compilé par afornerot : eole-etherpad (1.4.1-eole3~20.gbpfb4d64) eole-2.3-proposed depuis dist/ubuntu/lucid/master

user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ LAST_23_PKG_COMMIT=$(git rev-list --no-merges -F --grep '## Nouveau paquet' --max-count 1 dist/ubuntu/lucid/master)

user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ LAST_23_PKG_MESSAGE=$(git log --no-walk --oneline ${LAST_23_PKG_COMMIT})
</pre>
* Extraire la version du paquet EOLE 2.3
<pre>
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ echo ${LAST_23_PKG_MESSAGE} | sed -E -e 's,[^(]+\(([^)]+).*,\1,'
1.4.1-eole3~20.gbpfb4d64

user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ VERSION_23=$(echo ${LAST_23_PKG_MESSAGE} | sed -E -e 's,[^(]+\(([^)]+).*,\1,')
</pre>
* Définir l’étiquette du dernier paquet EOLE 2.3 (les "tildes":https://fr.wiktionary.org/wiki/tilde#Nom_commun (*@~@*) sont remplacés par des tirets bas (*@_@*))
<pre>
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ echo "pkg/envole/envole-4/${VERSION_23}" | sed -e 's,~,_,g'
pkg/envole/envole-4/1.4.1-eole3_20.gbpfb4d64

user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ TAG_23=$(echo "pkg/envole/envole-4/${VERSION_23}" | sed -e 's,~,_,g')
</pre>



h3. Créer l’étiquette pour la dernière compilation EOLE 2.3



* Créer l’étiquette
<pre>
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git tag -s -m "Debian package version ${VERSION_23}" "${TAG_23}" ${LAST_23_PKG_COMMIT}
</pre>
* Vérifier le contenu de l’étiquette
<pre>
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git show ${TAG_23}
</pre>



h3. Publier l’étiquette pour la dernière compilation EOLE 2.3



<pre>
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git push $(git config branch.master.remote) ${TAG_23}
</pre>

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

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

Cette étiquette pointera sur le même commit que l’étiquette créé précédemment car en 2.3 le fichier *@debian/changelog@* été géré sur la même branche que le packaging.


h3. Déterminer le tag du dernier paquet EOLE 2.3

* Définir l’étiquette du dernier paquet EOLE 2.3 (les "tildes":https://fr.wiktionary.org/wiki/tilde#Nom_commun (*@~@*) sont remplacés par des tirets bas (*@_@*))
<pre>
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ echo "debian/envole/4/${VERSION_23}" | sed -e 's,~,_,g'
debian/envole/4/1.4.1-eole3_20.gbpfb4d64

user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ DEB_TAG_23=$(echo "debian/envole/4/${VERSION_23}" | sed -e 's,~,_,g')
</pre>

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

* Créer l’étiquette
<pre>
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git tag -s -m "Debian package version ${VERSION_23}" "${DEB_TAG_23}" ${LAST_23_PKG_COMMIT}
</pre>
* Vérifier le contenu de l’étiquette
<pre>
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git show ${DEB_TAG_23}
</pre>

h3. Publier l’étiquette pour la dernière compilation EOLE 2.3

<pre>
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git push $(git config branch.master.remote) ${DEB_TAG_23}
</pre>

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



<pre>
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git checkout -b dist/envole/${ENVOLE_VERSION}/master dist/ubuntu/lucid/master

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



h2. Supprimer le fichier debian/changelog



Le fichier *@debian/changelog@* est [[eole:EoleDebianPackaging24#debianchangelog|géré automatiquement par l’infrastructure de compilation]] :

<pre>
user@work:~src/etherpad (dist/envole/4/master=)$ git rm debian/changelog
user@work:~src/etherpad (dist/envole/4/master+)$ git commit -m "Suppression du debian/changelog

Le fichier debian/changelog est géré automatiquement par
l’infrastructure de compilation EOLE."

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



h2. Créer le fichier debian/gbp.conf



Ce fichier permet à l’infrastructure de compilation EOLE de suivre les modifications sur le fichier *@debian/changelog@*

<pre>
user@work:~src/etherpad (dist/envole/4/master>)$ cat >| debian/gbp.conf <<EOF
# Set per distribution debian tag
[DEFAULT]
debian-tag = debian/envole/4/%(version)s
EOF

user@work:~src/etherpad (dist/envole/4/master%>)$ git add debian/gbp.conf
user@work:~src/etherpad (dist/envole/4/master+>)$
</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/etherpad (dist/envole/4/master+>)$ mkdir -p debian/source
user@work:~src/etherpad (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. Valider les changements d’empaquetage



<pre>
user@work:~src/etherpad (dist/envole/4/master+>)$ git commit -m "Configuration pour l’infrastructure de compilation EOLE

* debian/changelog: Suppression, il est géré automatiquement par
l’infrastructure de compilation EOLE

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

* debian/source/format: Utilisation du format « 3.0 (native) »"

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

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