Project

General

Profile

GitHotfix » History » Version 54

Version 53 (Joël Cuissinat, 06/12/2017 02:49 PM) → Version 54/85 (Joël Cuissinat, 06/12/2017 02:49 PM)

{{toc}}

h1. Préparer un correctif pour EOLE 2.4 ou EOLE 2.5

*RAPPEL* : Il ne faut jamais fusionner une branche d’une version supérieure à une version inférieure, par exemple :

* *NE PAS FAIRE*
<pre>
moi@work:~/src/$PAQUET (2.4.0/master)$ git merge master
</pre>
* *NE PAS FAIRE*
<pre>
moi@work:~/src/$PAQUET (2.4.0/master)$ git merge release/2.4.1
</pre>
* *NE PAS FAIRE*
<pre>
moi@work:~/src/$PAQUET (2.4.0/master)$ git merge 2.4.2/master
</pre>
* *NE PAS FAIRE*
<pre>
moi@work:~/src/$PAQUET (2.4.0/master)$ git merge release/2.4.2
</pre>
* *NE PAS FAIRE*
<pre>
moi@work:~/src/$PAQUET (2.4.0/master)$ git merge 2.4.2/42-fix-machin-truc
</pre>

h2. Principe de base

* *@X/master@* : branche d’intégration de code pour la version *X*
* *@dist/eole/X/master@* : branche de packaging pour la version EOLE *X*

On pourrait pousser la distinction pour les branches de codes :

* 2.4.0/master: branche d’intégration des hotfix pour 2.4.0, intégrée dans dist/eole/2.4.0/master pour créer un paquet, ce qui donne :

<pre>
moi@work:~/src/$PAQUET (2.4.0/master)$ git package 2.4.0
moi@work:~/src/$PAQUET (2.4.0/master)$ git package -b -d eole-2.4.0/proposed-updates 2.4.0
</pre>

* 2.4.1/master: branche d’intégration des hotfix pour 2.4.1, intégrée dans dist/eole/2.4.1/master pour créer un paquet, ce qui donne :

<pre>
moi@work:~/src/$PAQUET (2.4.1/master)$ git package 2.4.1
moi@work:~/src/$PAQUET (2.4.1/master)$ git package -b -d eole-2.4.1/proposed-updates 2.4.1
</pre>

* *@2.4.1/42-fix-machin-bidule@* : branche contenant le correctif pour le bug *machin bidule* (numéro redmine *@#42@*) apparu sur 2.4.1.

Cette branche sera intégrée à 2.4.1/master, 2.4.2/master et toutes les autres 2.4.X/master si le problème *machin bidule* y est présent, jusqu’à la branche de développement.

Cela pourrait être représenté de la façon suivante, les *o* sont des commits et les *M* sont des *@merge commits@* :

<pre>
o-o-o-o-o-o-o-o-o-o-o-o---M <- master
\ \ \ /
\ \ o-o-o-o-M / <- 2.4.2/master
\ \ / /
\ \ o-o---+ <- 2.4.1/42-fix-machin-bidule (amené à disparaître)
\ \ / \
\ o-o-o-o-M <- 2.4.1/master
\
\
o-o-o-o-o-o-o-o-o <- 2.4.0/master
</pre>

h2. Mode Opératiore

Voici une description succinte des manipulations à faire pour produire un correctif

# S’assurer qu’il y a une demande redmine, on l’appel *@$REDMINE_ISSUE@*
# Trouver le commit qui a introduit l’erreur, on l’appel *@$COMMIT_ID@*
# Trouver la release EOLE associée à ce commit, on l’appel *@$EOLE_RELEASE@*
<pre>
moi@work:~/src/$PAQUET (master)$ git describe --match release/* $COMMIT_ID
</pre>
# Créer une branche temporaire pour faire le correctif
<pre>
moi@work:~/src/$PAQUET (master)$ git checkout -b $EOLE_RELEASE/$REDMINE_ISSUE-fix-machin-bidule $COMMIT_ID
</pre>
# Faire le correctif
# Intégrer le correctif aux branches impactés, en commençant par master si le problème existe dans la branche de développement:
<pre>
moi@work:~/src/$PAQUET ($EOLE_RELEASE/$REDMINE_ISSUE-fix-machin-bidule)$ git checkout master
moi@work:~/src/$PAQUET (master)$ git merge --no-ff $EOLE_RELEASE/$REDMINE_ISSUE-fix-machin-bidule
</pre>
# Faire un paquet

h2. EOLE 2.4

h3. EOLE 2.4.0

<pre>
moi@work:~/src/$PAQUET (master)$ git checkout 2.4.0/master
moi@work:~/src/$PAQUET (2.4.0/master)$ git package 2.4.0
moi@work:~/src/$PAQUET (2.4.0/master)$ git package -b -d eole-2.4.0/proposed-updates 2.4.0
</pre>

h3. EOLE 2.4.1

<pre>
moi@work:~/src/$PAQUET (master)$ git checkout 2.4.1/master
moi@work:~/src/$PAQUET (2.4.1/master)$ git package 2.4.1
moi@work:~/src/$PAQUET (2.4.1/master)$ git package -b -d eole-2.4.1/proposed-updates 2.4.1
</pre>

h3. EOLE 2.4.2

Les branches *2.4.2/master* et *dist/eole/2.4.2/master* ayant été créées à la demande, les projets n'ayant pas nécessité de modifications spécifiques pour la version 2.4.2 ne possèdent pas ces branches.

<pre>
moi@work:~/src/$PAQUET (master)$ git checkout 2.4.2/master
moi@work:~/src/$PAQUET (2.4.2/master)$ git package 2.4.2
moi@work:~/src/$PAQUET (2.4.2/master)$ git package -b -d eole-2.4.2/proposed-updates 2.4.2
</pre>

h2. EOLE 2.5

h3. EOLE 2.5.0

Seuls les paquets communs et ceux utilisés par les modules annoncés comme stables (Zéphir et Seshat) possèdent les branches *2.5.0/master* et *dist/eole/2.5.0/master*.

<pre>
moi@work:~/src/$PAQUET (master)$ git checkout 2.5.0/master
moi@work:~/src/$PAQUET (2.5.0/master)$ git package 2.5.0
moi@work:~/src/$PAQUET (2.5.0/master)$ git package -b -d eole-2.5.0/proposed-updates 2.5.0
</pre>

h3. EOLE 2.5.1

Les branche *2.5.1/master* et *dist/eole/2.5.1/master* sont utilisées pour la 2.5.1

<pre>
moi@work:~/src/$PAQUET (master)$ git checkout 2.5.1/master
moi@work:~/src/$PAQUET (2.5.1/master)$ git package 2.5.1
moi@work:~/src/$PAQUET (2.5.1/master)$ git package -b -d eole-2.5.1/proposed-updates 2.5.1
</pre>

h3. EOLE 2.5.2

Les branche *2.5.2/master* et *dist/eole/2.5.2/master* sont utilisées pour la 2.5.2

<pre>
moi@work:~/src/$PAQUET (master)$ git checkout 2.5.2/master
moi@work:~/src/$PAQUET (2.5.2/master)$ git package 2.5.2
moi@work:~/src/$PAQUET (2.5.2/master)$ git package -b -d eole-2.5.2/proposed-updates 2.5.2
</pre>

|La branche de packaging *dist/eole/2.5/master* ne doit plus être utilisée.|

h2. EOLE 2.6

h3. EOLE 2.6.0

Les branches *2.6.0/master* et *dist/eole/2.6.0/master* sont utilisées pour la 2.6.0

<pre>
moi@work:~/src/$PAQUET (master)$ git checkout 2.6.0/master
moi@work:~/src/$PAQUET (2.6.0/master)$ git package 2.6.0
moi@work:~/src/$PAQUET (2.6.0/master)$ git package -b -d eole-2.6.0/proposed-updates 2.6.0
</pre>

h3. EOLE 2.6.1

Les branche *2.6.1/master* et *dist/eole/2.6.1/master* sont utilisées pour la 2.6.1

<pre>
moi@work:~/src/$PAQUET (master)$ git checkout 2.6.1/master
moi@work:~/src/$PAQUET (2.6.1/master)$ git package 2.6.1
moi@work:~/src/$PAQUET (2.6.1/master)$ git package -b -d eole-2.6.1/proposed-updates 2.6.1
</pre>

NB : suivi graphique http://castor.eole.lan:9998/dist/eole-2.6.1-proposed-updates/arch/all

h3. EOLE 2.6.2 (2.6 dév)

Depuis la publication de la version EOLE 2.6.1-RC1, les branches 2.6.1/master ont été sorties et les nouveaux développements sont réalisés sur la branche master
<pre>
moi@work:~/src/$PAQUET (master)$ git package 2.6.2
moi@work:~/src/$PAQUET (master)$ git package -b -d eole-2.6/unstable 2.6.2
</pre>

NB : suivi graphique : http://castor.eole.lan:9998/dist/eole-2.6-unstable/arch/all

h2. ENVOLE 4

Les dépôts envole4 sont utilisés pour les versions *EOLE 2.4.2* et *EOLE 2.5.1*

h3. Paquets de dév

Distribution : envole-4-unstable

h3. Paquets candidats

Distribution : envole-4-testing

h2. ENVOLE 5

Les dépôts envole5 sont utilisés à partir de la version *EOLE 2.5.2*.

Certains des logiciels fournis dans cette version sont incompatibles avec les versions d'apache/php de la distribution _Precise_ (2.4).

A terme les logiciels seront tous adaptés pour utiliser project:eole-db.

h3. Paquets de dév

Distribution : envole-5-unstable

h3. Paquets candidats

Distribution : envole-5-testing