Migrer-un-projet-EOLE-23-vers-Envole-4 » Historique » Version 2
Version 1 (Daniel Dehennin, 20/02/2015 11:00) → Version 2/7 (Daniel Dehennin, 20/02/2015 11:03)
{{toc}}
h1. Migrer un projet EOLE-3 vers Envole 4
{{include(envole:Intro-PreparationEnvole4)}}
h2. h1. 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>
h1. 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. h2. Déterminer l’étiquette 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. h2. 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. h2. 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>
h1. 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>
h1. 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>
h1. 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>
h1. 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>
h1. 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)}}
h1. Migrer un projet EOLE-3 vers Envole 4
{{include(envole:Intro-PreparationEnvole4)}}
h2. h1. 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>
h1. 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. h2. Déterminer l’étiquette 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. h2. 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. h2. 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>
h1. 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>
h1. 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>
h1. 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>
h1. 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>
h1. 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)}}