Projet

Général

Profil

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

Arnaud FORNEROT, 17/06/2015 12:02

1 1 Daniel Dehennin
{{toc}}
2 1 Daniel Dehennin
3 4 Daniel Dehennin
h1. Migrer un projet EOLE 3 vers Envole 4
4 2 Daniel Dehennin
5 6 Daniel Dehennin
6 6 Daniel Dehennin
7 6 Daniel Dehennin
8 1 Daniel Dehennin
{{include(envole:Intro-PreparationEnvole4)}}
9 1 Daniel Dehennin
10 1 Daniel Dehennin
11 6 Daniel Dehennin
12 6 Daniel Dehennin
13 5 Daniel Dehennin
h2. Ouvrir le projet à l’infrastructure de compilation EOLE
14 1 Daniel Dehennin
15 1 Daniel Dehennin
* Demander à EOLE l'activation du projet pour l’infrastructure de compilation EOLE
16 1 Daniel Dehennin
* Se positionner sur la branche d’empaquetage EOLE 2.3
17 1 Daniel Dehennin
<pre>
18 1 Daniel Dehennin
user@work:~src/etherpad (master=)$ git checkout dist/ubuntu/lucid/master
19 1 Daniel Dehennin
20 1 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master<)$ git pull
21 1 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ 
22 1 Daniel Dehennin
</pre>
23 1 Daniel Dehennin
24 1 Daniel Dehennin
25 1 Daniel Dehennin
26 6 Daniel Dehennin
27 3 Daniel Dehennin
h2. Créer une étiquette de la dernière compilation de paquet EOLE 2.3
28 1 Daniel Dehennin
29 1 Daniel Dehennin
Cela permet de déclarer le dernier paquet à l’infrastructure de compilation EOLE.
30 1 Daniel Dehennin
31 1 Daniel Dehennin
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]].
32 1 Daniel Dehennin
33 5 Daniel Dehennin
34 1 Daniel Dehennin
35 6 Daniel Dehennin
h3. Déterminer l’étiquette de la dernière compilation de paquet EOLE 2.3
36 6 Daniel Dehennin
37 1 Daniel Dehennin
* Déterminer le dernier commit de compilation EOLE 2.3
38 1 Daniel Dehennin
<pre>
39 1 Daniel Dehennin
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
40 1 Daniel Dehennin
b6f847f8859db1c77355f51300052bb95d4f202b ## Nouveau paquet compilé par afornerot : eole-etherpad (1.4.1-eole3~20.gbpfb4d64) eole-2.3-proposed depuis dist/ubuntu/lucid/master
41 1 Daniel Dehennin
42 1 Daniel Dehennin
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)
43 1 Daniel Dehennin
44 1 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ LAST_23_PKG_MESSAGE=$(git log --no-walk --oneline ${LAST_23_PKG_COMMIT})
45 1 Daniel Dehennin
</pre>
46 1 Daniel Dehennin
* Extraire la version du paquet EOLE 2.3
47 1 Daniel Dehennin
<pre>
48 1 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ echo ${LAST_23_PKG_MESSAGE} | sed -E -e 's,[^(]+\(([^)]+).*,\1,'
49 1 Daniel Dehennin
1.4.1-eole3~20.gbpfb4d64
50 1 Daniel Dehennin
51 1 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ VERSION_23=$(echo ${LAST_23_PKG_MESSAGE} | sed -E -e 's,[^(]+\(([^)]+).*,\1,')
52 1 Daniel Dehennin
</pre>
53 1 Daniel Dehennin
* 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 (*@_@*))
54 1 Daniel Dehennin
<pre>
55 1 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ echo "pkg/envole/envole-4/${VERSION_23}" | sed -e 's,~,_,g'
56 1 Daniel Dehennin
pkg/envole/envole-4/1.4.1-eole3_20.gbpfb4d64
57 1 Daniel Dehennin
58 1 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ TAG_23=$(echo "pkg/envole/envole-4/${VERSION_23}" | sed -e 's,~,_,g')
59 1 Daniel Dehennin
</pre>
60 1 Daniel Dehennin
61 1 Daniel Dehennin
62 6 Daniel Dehennin
63 5 Daniel Dehennin
h3. Créer l’étiquette pour la dernière compilation EOLE 2.3
64 1 Daniel Dehennin
65 6 Daniel Dehennin
66 1 Daniel Dehennin
* Créer l’étiquette
67 1 Daniel Dehennin
<pre>
68 1 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git tag -s -m "Debian package version ${VERSION_23}" "${TAG_23}" ${LAST_23_PKG_COMMIT}
69 1 Daniel Dehennin
</pre>
70 1 Daniel Dehennin
* Vérifier le contenu de l’étiquette
71 1 Daniel Dehennin
<pre>
72 1 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git show ${TAG_23}
73 1 Daniel Dehennin
</pre>
74 1 Daniel Dehennin
75 1 Daniel Dehennin
76 6 Daniel Dehennin
77 5 Daniel Dehennin
h3. Publier l’étiquette pour la dernière compilation EOLE 2.3
78 1 Daniel Dehennin
79 6 Daniel Dehennin
80 1 Daniel Dehennin
<pre>
81 1 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git push $(git config branch.master.remote) ${TAG_23}
82 1 Daniel Dehennin
</pre>
83 1 Daniel Dehennin
84 1 Daniel Dehennin
85 1 Daniel Dehennin
86 6 Daniel Dehennin
87 6 Daniel Dehennin
h2. Renommé l’étiquette du dernier paquet EOLE 2.3
88 6 Daniel Dehennin
89 6 Daniel Dehennin
90 6 Daniel Dehennin
Une étiquette de la forme *@debian/*@* est créé par l’infrastructure de compilation de paquet afin de gérer automatiquement le fichier *@debian/changelog@*.
91 6 Daniel Dehennin
92 6 Daniel Dehennin
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.
93 6 Daniel Dehennin
94 6 Daniel Dehennin
95 6 Daniel Dehennin
96 6 Daniel Dehennin
h3. Déterminer le tag du dernier paquet EOLE 2.3
97 6 Daniel Dehennin
98 6 Daniel Dehennin
99 6 Daniel Dehennin
* 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 (*@_@*))
100 6 Daniel Dehennin
<pre>
101 6 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ echo "debian/envole/4/${VERSION_23}" | sed -e 's,~,_,g'
102 6 Daniel Dehennin
debian/envole/4/1.4.1-eole3_20.gbpfb4d64
103 6 Daniel Dehennin
104 6 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ DEB_TAG_23=$(echo "debian/envole/4/${VERSION_23}" | sed -e 's,~,_,g')
105 6 Daniel Dehennin
</pre>
106 6 Daniel Dehennin
107 6 Daniel Dehennin
108 6 Daniel Dehennin
109 6 Daniel Dehennin
h3. Dupliquer l’étiquette du dernier paquet EOLE 2.3 en première étiquette de paquet Envole
110 6 Daniel Dehennin
111 6 Daniel Dehennin
112 6 Daniel Dehennin
* Créer l’étiquette
113 6 Daniel Dehennin
<pre>
114 6 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git tag -s -m "Debian package version ${VERSION_23}" "${DEB_TAG_23}" ${LAST_23_PKG_COMMIT}
115 6 Daniel Dehennin
</pre>
116 6 Daniel Dehennin
* Vérifier le contenu de l’étiquette
117 6 Daniel Dehennin
<pre>
118 6 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git show ${DEB_TAG_23}
119 6 Daniel Dehennin
</pre>
120 6 Daniel Dehennin
121 6 Daniel Dehennin
122 6 Daniel Dehennin
123 6 Daniel Dehennin
h3. Publier l’étiquette pour la dernière compilation EOLE 2.3
124 6 Daniel Dehennin
125 6 Daniel Dehennin
126 6 Daniel Dehennin
<pre>
127 6 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git push $(git config branch.master.remote) ${DEB_TAG_23}
128 6 Daniel Dehennin
</pre>
129 6 Daniel Dehennin
130 6 Daniel Dehennin
131 6 Daniel Dehennin
132 6 Daniel Dehennin
133 3 Daniel Dehennin
h2. Dupliquer la branche de compilation EOLE 2.3 en branche de compilation Envole 4
134 1 Daniel Dehennin
135 6 Daniel Dehennin
136 1 Daniel Dehennin
<pre>
137 1 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git checkout -b dist/envole/${ENVOLE_VERSION}/master dist/ubuntu/lucid/master
138 1 Daniel Dehennin
139 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master)$ git push -u $(git config branch.master.remote) dist/envole/${ENVOLE_VERSION}/master
140 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master=)$ 
141 1 Daniel Dehennin
</pre>
142 1 Daniel Dehennin
143 1 Daniel Dehennin
144 1 Daniel Dehennin
145 6 Daniel Dehennin
146 3 Daniel Dehennin
h2. Supprimer le fichier debian/changelog 
147 1 Daniel Dehennin
148 6 Daniel Dehennin
149 1 Daniel Dehennin
Le fichier *@debian/changelog@* est [[eole:EoleDebianPackaging24#debianchangelog|géré automatiquement par l’infrastructure de compilation]] :
150 1 Daniel Dehennin
151 1 Daniel Dehennin
<pre>
152 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master=)$ git rm debian/changelog 
153 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+)$ git commit -m "Suppression du debian/changelog
154 1 Daniel Dehennin
155 1 Daniel Dehennin
Le fichier debian/changelog est géré automatiquement par
156 1 Daniel Dehennin
l’infrastructure de compilation EOLE."
157 1 Daniel Dehennin
158 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master>)$
159 1 Daniel Dehennin
</pre>
160 1 Daniel Dehennin
161 1 Daniel Dehennin
162 1 Daniel Dehennin
163 6 Daniel Dehennin
164 3 Daniel Dehennin
h2. Créer le fichier debian/gbp.conf
165 1 Daniel Dehennin
166 6 Daniel Dehennin
167 1 Daniel Dehennin
Ce fichier permet à l’infrastructure de compilation EOLE de suivre les modifications sur le fichier *@debian/changelog@*
168 1 Daniel Dehennin
169 1 Daniel Dehennin
<pre>
170 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master>)$ cat >| debian/gbp.conf <<EOF
171 1 Daniel Dehennin
# Set per distribution debian tag
172 1 Daniel Dehennin
[DEFAULT]
173 1 Daniel Dehennin
debian-tag = debian/envole/4/%(version)s
174 1 Daniel Dehennin
EOF
175 1 Daniel Dehennin
176 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master%>)$ git add debian/gbp.conf
177 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+>)$ 
178 1 Daniel Dehennin
</pre>
179 1 Daniel Dehennin
180 1 Daniel Dehennin
181 1 Daniel Dehennin
182 6 Daniel Dehennin
183 3 Daniel Dehennin
h2. Passer le projet en paquet natif
184 1 Daniel Dehennin
185 6 Daniel Dehennin
186 1 Daniel Dehennin
Pour la gestion des [[eole:EoleDebianPackaging24#debiansourceformat|numéros de version]] de paquet:
187 1 Daniel Dehennin
188 1 Daniel Dehennin
<pre>
189 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+>)$ mkdir -p debian/source
190 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+>)$ cat >| debian/source/format <<EOF
191 1 Daniel Dehennin
3.0 (native)
192 1 Daniel Dehennin
EOF
193 1 Daniel Dehennin
194 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master*+>)$ git add debian/source/format
195 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+>)$ 
196 1 Daniel Dehennin
</pre>
197 1 Daniel Dehennin
198 1 Daniel Dehennin
h2. Valider les changements d’empaquetage
199 6 Daniel Dehennin
200 1 Daniel Dehennin
201 1 Daniel Dehennin
<pre>
202 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+>)$ git commit -m "Configuration pour l’infrastructure de compilation EOLE
203 1 Daniel Dehennin
204 1 Daniel Dehennin
* debian/changelog: Suppression, il est géré automatiquement par
205 1 Daniel Dehennin
  l’infrastructure de compilation EOLE
206 1 Daniel Dehennin
207 1 Daniel Dehennin
* debian/gbp.conf: Définition du format des étiquettes de compilation
208 1 Daniel Dehennin
  pour Envole.
209 1 Daniel Dehennin
210 1 Daniel Dehennin
* debian/source/format: Utilisation du format « 3.0 (native) »"
211 1 Daniel Dehennin
212 7 Arnaud FORNEROT
user@work:~src/etherpad (dist/envole/4/master>)$ git push
213 1 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master=)$ 
214 1 Daniel Dehennin
</pre>
215 1 Daniel Dehennin
216 1 Daniel Dehennin
217 1 Daniel Dehennin
218 1 Daniel Dehennin
{{include(envole:End-PreparationEnvole4)}}