Projet

Général

Profil

Sortie nouvelle branche » Historique » Version 11

Stéphane Boireau, 14/06/2014 17:28

1 1 Stéphane Boireau
h1. Sortie d'une nouvelle branche GEPI
2
3 7 Stéphane Boireau
h2. Nouvelle branche
4 1 Stéphane Boireau
5 11 Stéphane Boireau
Supposons que la version stable précédente soit la 1.6.4, que la version qui va sortir en stable soit la 1.6.5 et qu'on suppose que la version de développement s'appellera un jour 1.6.6
6
7 10 Stéphane Boireau
<pre>
8
chemin_arbo_web=/home/www/html/steph
9
10
old_version=1.6.4
11
version=1.6.5
12
devel_version=1.6.6
13
oldv=164
14
newv=165
15
16
git checkout release-${old_version}
17
mkdir $chemin_arbo_web/gepi${oldv}_to_${newv}
18
cp -r ./* $chemin_arbo_web/gepi${oldv}_to_${newv}/
19
chown -R :www-data $chemin_arbo_web/gepi${oldv}_to_${newv}
20
chmod -R 770 $chemin_arbo_web/gepi${oldv}_to_${newv}
21
22
git checkout master
23
git pull
24 1 Stéphane Boireau
25 11 Stéphane Boireau
# Mise en réserve des fichiers (ils sont aussi dans mon arbo web master, mais bon):
26 10 Stéphane Boireau
27
tmp=$HOME/tmp/gepi_$(date +%Y%m%d%H%M%S)
28
mkdir - p $tmp $tmp/lib $tmp/sql $tmp/utilitaires
29
for i in $(echo "changelog.txt
30
MAJ.TXT
31
INSTALL.txt
32
README.txt
33
lib/global.inc.php
34
sql/data_gepi.sql
35
utilitaires/maj.php
36
utilitaires/maj.sh")
37
do
38
cp -v $i $tmp/$i
39
done
40
41 1 Stéphane Boireau
git checkout -b release-${version}
42 10 Stéphane Boireau
43 11 Stéphane Boireau
# Modif des fichiers ci-dessus dans la nouvelle arborescence ${version} pour changer la version et supprimer les références à une version de DEVEL.
44 10 Stéphane Boireau
sed -i "s|^Gepi-master (Version de développement)|Gepi-${version} ($(date +%d/%m/%Y))|" changelog.txt
45
sed -i "/Version de développement: NE PAS INSTALLER EN PRODUCTION \!/d" MAJ.TXT
46
sed -i "s|^GEPI-master|Gepi-${version}|" MAJ.TXT
47
sed -i "s|^GEPI-master (version de développement)|GEPI-${version} ($(date +%d/%m/%Y))|" README.txt
48
sed -i "/Version de développement: NE PAS INSTALLER EN PRODUCTION \!/d" INSTALL.txt
49
sed -i "s|^La branche stable actuelle est la ${old_version}|La branche stable actuelle est la ${version}|" INSTALL.txt
50
sed -ri 's|^(\$gepiVersion =)(.*)|\1 "'$version'";|' lib/global.inc.php
51
sed -i "s|INSERT INTO setting VALUES ('version', 'master');|INSERT INTO setting VALUES ('version', '$version');|" sql/data_gepi.sql
52
sed -i "s|updates/${oldv}_to_dev.inc.php|updates/${oldv}_to_${newv}.inc.php|" utilitaires/maj.sh
53
sed -i "s|quelle_maj(\"master\")|quelle_maj(\"$version\")|" utilitaires/maj.php
54
sed -i "s|updates/${oldv}_to_dev.inc.php|updates/${oldv}_to_${newv}.inc.php|" utilitaires/maj.php
55 1 Stéphane Boireau
56 10 Stéphane Boireau
git mv utilitaires/updates/${oldv}_to_dev.inc.php utilitaires/updates/${oldv}_to_${newv}.inc.php
57
58 11 Stéphane Boireau
# Tester sur une nouvelle install et sur une migration.
59 1 Stéphane Boireau
60 10 Stéphane Boireau
git commit -a -m "Correction des références à master dans la nouvelle branche ${version}"
61
62 11 Stéphane Boireau
# On va s'occuper de la version de devel:
63 1 Stéphane Boireau
git checkout master
64
git merge release-${version}
65 10 Stéphane Boireau
66 11 Stéphane Boireau
# On va remettre la version de devel en état:
67
68
# Correction inverse pour ce qui concerne les références à la version de DEVEL et au numéro de version.
69 10 Stéphane Boireau
sed -ri "s|^(Gepi-${version} .*)|Gepi-master (Version de développement)\n===========================\n\n\1|" changelog.txt
70
sed -i "s|^La branche stable actuelle est la|Version de développement: NE PAS INSTALLER EN PRODUCTION \!\nLa branche stable actuelle est la|" MAJ.TXT
71
sed -i "s|^Gepi-${version}|GEPI-master|" MAJ.TXT
72
sed -i "s|^GEPI-${version} .*|GEPI-master (version de développement)|" README.txt
73
sed -i "s|^Gepi-${version} |GEPI-master (version de développement)|" INSTALL.txt
74 1 Stéphane Boireau
sed -i "s|^La branche stable actuelle est la|Version de développement: NE PAS INSTALLER EN PRODUCTION \!\nLa branche stable actuelle est la|" INSTALL.txt
75
sed -ri 's|^(\$gepiVersion =)(.*)|\1 "master";|' lib/global.inc.php
76
sed -i "s|INSERT INTO setting VALUES ('version', '$version');|INSERT INTO setting VALUES ('version', 'master');|" sql/data_gepi.sql
77 10 Stéphane Boireau
sed -i "s|'${old_version}','defaut'|'${old_version}','${version}','defaut'|" utilitaires/maj.sh
78
sed -ri "s#require './updates/${oldv}_to_${newv}.inc.php';#require './updates/${oldv}_to_${newv}.inc.php';\n    }\n\n    if (\$force || \$start_from == '${version}') {\n        require './updates/${newv}_to_dev.inc.php';#" utilitaires/maj.sh
79
80 11 Stéphane Boireau
# Ajout d'un section dans maj.php (il faut le faire à la main...)
81
# Ebauche de truc à tester:
82 10 Stéphane Boireau
sed -ri "s#require 'updates/${oldv}_to_${newv}.inc.php';#require 'updates/${oldv}_to_${newv}.inc.php';\n\t}\n\n\tif ((\$force_maj == 'yes') or (quelle_maj(\"master\"))) {\n        require 'updates/${newv}_to_dev.inc.php';#" utilitaires/maj.php
83
84 11 Stéphane Boireau
# Création d'un fichier utilitaires/updates/${newv}_to_dev.inc.php
85 10 Stéphane Boireau
grep -B 1000 "^// Fin SECTION EXEMPLE$" utilitaires/updates/${oldv}_to_${newv}.inc.php > utilitaires/updates/${newv}_to_dev.inc.php
86
sed -i "s|${version}|${devel_version}|" utilitaires/updates/${newv}_to_dev.inc.php
87
sed -i "s|${old_version}|${version}|" utilitaires/updates/${newv}_to_dev.inc.php
88
echo -e "*/\n\n\n?>" >> utilitaires/updates/${newv}_to_dev.inc.php
89
git add utilitaires/updates/${newv}_to_dev.inc.php
90
91
git commit -m "Rétablissement des références à la version devel et ajout de ${newv}_to_dev.inc.php" ./
92
93
git push origin
94
</pre>
95
96
97
h2. Obsolète: Sortie d'une nouvelle branche avec SVN
98
99 7 Stéphane Boireau
Supposons pour la suite que la branche stable actuelle soit la 1.6.1 et que la 1.6.2 soit sur le point de sortir.
100
La 1.6.2 va devenir la nouvelle stable.
101
102 1 Stéphane Boireau
Pour effectuer la sortie, concrètement, il faut:
103
104 7 Stéphane Boireau
- compléter le changelog.txt
105 8 Stéphane Boireau
<pre>
106
<span style='color:red'>  Faire un
107 2 Stéphane Boireau
108 1 Stéphane Boireau
>     svn log -r REVISION_DU_changelog_branche_precedente:REVISION_DE_LA_DERNIERE_MODIF https://svn.sylogix.org/gepiphp/trunk/
109
110
  pour consulter si nécessaire la liste des modifications effectuées.
111 7 Stéphane Boireau
  Ça c'était pour SVN...
112 1 Stéphane Boireau
  ... quelle serait la commande pour lister les diff?
113 8 Stéphane Boireau
</span>
114
</pre>
115 1 Stéphane Boireau
116 7 Stéphane Boireau
- Créer la nouvelle branche d'après la branche de développement (master)
117 1 Stéphane Boireau
118 7 Stéphane Boireau
>     git checkout master
119
>     git checkout -b release-1.6.2
120
>     git push git@github.com:tbelliard/gepi.git release-1.6.2
121 2 Stéphane Boireau
122 7 Stéphane Boireau
- Renommer dans le changelog.txt Gepi-trunk en Gepi-1.6.2
123 2 Stéphane Boireau
124 7 Stéphane Boireau
- Renommer dans le utilitaires/updates/1.6.1_to_dev.php en utilitaires/updates/1.6.1_to_1.6.2.php
125 2 Stéphane Boireau
126 9 Stéphane Boireau
- vérifier que le utilitaires/maj.sh et le utilitaires/maj.php tiennent bien compte de la nouvelle branche.
127 2 Stéphane Boireau
128 7 Stéphane Boireau
- modifier le titre GEPI-TRUNK en GEPI-1.6.2 dans les fichiers INSTALL.txt, MAJ.TXT et README.txt et supprimer les lignes d'alerte concernant la version de devel qui n'est pas recommandée en production.
129 2 Stéphane Boireau
130 7 Stéphane Boireau
- mettre à jour le numéro de version dans release-1.6.2/lib/global.inc.php et dans release-1.6.2/sql/data_gepi.sql
131 5 Stéphane Boireau
132 7 Stéphane Boireau
h2. Branche master
133
134
- créer une nouvelle section Gepi-trunk au début du fichier changelog.txt de la branche master
135 1 Stéphane Boireau
136
- dans les INSTALL.txt, MAJ.TXT et README.txt, la référence à la version de devel, doit être toujours présente.
137 8 Stéphane Boireau
<pre>
138 7 Stéphane Boireau
<span style='color:red'>Vérifier ce que donne un git merge release-1.6.2 dans la branche master... il risque de falloir y rétablir les références à la version de devel</span>
139 8 Stéphane Boireau
</pre>
140 7 Stéphane Boireau
- mettre à jour le trunk/utilitaires/maj.sh et créer un fichier trunk/utilitaires/updates/152_to_dev.inc.php pour les ajouts de tables, modifications de champs,... de la version suivante
141 1 Stéphane Boireau
142
- laisser le temps à Thomas de mettre à jour le script de génération des archives zip sur gepi.mutualibre.org
143
144
- envoyer un texte d'annonce pour mettre sur gepi-users