Projet

Général

Profil

GitHotfix » Historique » Version 61

Version 60 (Joël Cuissinat, 13/06/2019 15:15) → Version 61/85 (Joël Cuissinat, 08/07/2019 17:31)

{{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. Fixer un fichier ou deux

Se placer dans la branche de version la plus ancienne qui doit contenir le commit :
<pre>
moi@work:~/src/$PAQUET (master)$ git checkout 2.6.2/master
</pre>

Chercher le dernier commit effectué sur le fichier impacté à modifier
<pre>
moi@work:~/src/$PAQUET (2.6.2/master)$ git log nomDuFichier
commit f1b38d73d5cc0ea3cca7fb15d3b77bb996df824d
Merge: 1b5ad84 636c2d6
Author: Prénom Nom <pnom@domaine.fr>
Date: Fri Mar 31 16:16:53 2017 +0200
[…]
</pre>

Créer la branche à partir du dernier commit :
<pre>
moi@work:~/src/$PAQUET (2.6.2/master)$ git checkout f1b38d73d5cc0ea3cca7fb15d3b77bb996df824d -b 2.6.2/numeroDemande-fix-descriptif
moi@work:~/src/$PAQUET (2.6.2/numeroDemande-fix-descriptif)$
</pre>

Corriger, commiter :
<pre>
moi@work:~/src/$PAQUET (2.6.2/numeroDemande-fix-descriptif)$ git add nomDuFichier
moi@work:~/src/$PAQUET (2.6.2/numeroDemande-fix-descriptif)$ git commit
</pre>

Se placer sur la branche recevant le merge :
<pre>
moi@work:~/src/$PAQUET (2.6.2/numeroDemande-fix-descriptif)$ git checkout 2.6.2/master
moi@work:~/src/$PAQUET (2.6.2/master)$ git merge 2.6.2/numeroDemande-fix-descriptif
</pre>

Pousser et empaqueter :
<pre>
moi@work:~/src/$PAQUET (2.6.2/master)$ git push origin 2.6.2/master
moi@work:~/src/$PAQUET (2.6.2/master)$ git package 2.6.2
moi@work:~/src/$PAQUET (2.6.2/master)$ git package -b -d eole-2.6.2/proposed-updates 2.6.2
</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

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

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

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

| ATTENTION : *Pas de version EOLE 2.6.3* prévue à ce jour|

h2. EOLE 2.7

h3. EOLE 2.7.0

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

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

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



h3. EOLE 2.7.1

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

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

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

h3. EOLE 2.7.2 (unstable)

Depuis la publication de la version EOLE 2.7.1, 2.7.1-RC, les nouvelles fonctionnalités paquets doivent être compilés en version unstable candidate :
<pre>
moi@work:~/src/$PAQUET (master)$ git package 2.7.2 2.7.1
moi@work:~/src/$PAQUET (master)$ git package -b -d eole-2.7/unstable 2.7.2/master eole-2.7.1/proposed-updates 2.7.1/master
</pre>

NB : suivi graphique http://castor.eole.lan:9998/dist/eole-2.7-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