Projet

Général

Profil

Sortie nouvelle branche » Historique » Version 17

Stéphane Boireau, 21/08/2016 15:18

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 17 Stéphane Boireau
Supposons que la version stable précédente soit la 1.6.8, que la version qui va sortir en stable soit la 1.6.9 et qu'on suppose que la version de développement s'appellera un jour 1.7.0
6 11 Stéphane Boireau
7 10 Stéphane Boireau
<pre>
8 12 Stéphane Boireau
9
# Renseignement de quelques variables:
10
11 10 Stéphane Boireau
chemin_arbo_web=/home/www/html/steph
12
13 12 Stéphane Boireau
# Ancienne stable:
14 16 Stéphane Boireau
old_version=1.6.8
15 12 Stéphane Boireau
# Nouvelle stable:
16 16 Stéphane Boireau
version=1.6.9
17 1 Stéphane Boireau
# Nom probable de la version devel quand elle passera en stable:
18 16 Stéphane Boireau
devel_version=1.7.0
19 12 Stéphane Boireau
# Noms courts intervenant dans des noms de fichiers:
20 16 Stéphane Boireau
oldv=168
21
newv=169
22
# Annee scolaire
23
gepiYear="2016/2017"
24 10 Stéphane Boireau
25 12 Stéphane Boireau
# Mise en place d'une arborescence web toute propre de l'ancienne version Gepi pour faire les tests de migration $old_version -> $version
26 10 Stéphane Boireau
git checkout release-${old_version}
27
mkdir $chemin_arbo_web/gepi${oldv}_to_${newv}
28
cp -r ./* $chemin_arbo_web/gepi${oldv}_to_${newv}/
29
chown -R :www-data $chemin_arbo_web/gepi${oldv}_to_${newv}
30
chmod -R 770 $chemin_arbo_web/gepi${oldv}_to_${newv}
31
32 12 Stéphane Boireau
# Passage sur master qui va devenir nouvelle stable:
33 10 Stéphane Boireau
git checkout master
34
git pull
35 1 Stéphane Boireau
36 11 Stéphane Boireau
# Mise en réserve des fichiers (ils sont aussi dans mon arbo web master, mais bon):
37 10 Stéphane Boireau
38
tmp=$HOME/tmp/gepi_$(date +%Y%m%d%H%M%S)
39 13 Stéphane Boireau
mkdir -p $tmp $tmp/lib $tmp/sql $tmp/utilitaires
40 10 Stéphane Boireau
for i in $(echo "changelog.txt
41
MAJ.TXT
42
INSTALL.txt
43
README.txt
44
lib/global.inc.php
45
sql/data_gepi.sql
46
utilitaires/maj.php
47
utilitaires/maj.sh")
48
do
49
cp -v $i $tmp/$i
50
done
51
52 12 Stéphane Boireau
# Création de la branche pour la nouvelle stable:
53 1 Stéphane Boireau
git checkout -b release-${version}
54 14 Stéphane Boireau
55 10 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.
56 15 Stéphane Boireau
sed -i "s|^Gepi-master (Version de développement)|Gepi-${version} ($(date +%d/%m/%Y))|" changelog.txt
57
sed -i "/Version de développement: NE PAS INSTALLER EN PRODUCTION \!/d" MAJ.TXT
58 1 Stéphane Boireau
sed -i "s|^GEPI-master|Gepi-${version}|" MAJ.TXT
59
sed -i "s|^La branche stable actuelle est la .*|La branche stable actuelle est la ${version}|" MAJ.TXT
60 15 Stéphane Boireau
sed -i "s|^GEPI-master (version de développement)|GEPI-${version} ($(date +%d/%m/%Y))|" README.txt
61 16 Stéphane Boireau
sed -i "s|^GEPI-master (version de développement)|GEPI-${version} (version stable)|" INSTALL.txt
62 15 Stéphane Boireau
sed -i "/Version de développement: NE PAS INSTALLER EN PRODUCTION \!/d" INSTALL.txt
63
sed -i "s|^La branche stable actuelle est la ${old_version}|La branche stable actuelle est la ${version}|" INSTALL.txt
64 10 Stéphane Boireau
sed -ri 's|^(\$gepiVersion =)(.*)|\1 "'$version'";|' lib/global.inc.php
65
sed -i "s|INSERT INTO setting VALUES ('version', 'master');|INSERT INTO setting VALUES ('version', '$version');|" sql/data_gepi.sql
66
sed -i "s|updates/${oldv}_to_dev.inc.php|updates/${oldv}_to_${newv}.inc.php|" utilitaires/maj.sh
67
sed -i "s|quelle_maj(\"master\")|quelle_maj(\"$version\")|" utilitaires/maj.php
68
sed -i "s|updates/${oldv}_to_dev.inc.php|updates/${oldv}_to_${newv}.inc.php|" utilitaires/maj.php
69 16 Stéphane Boireau
sed -i "s|INSERT INTO setting VALUES ('gepiYear', '[0-9/]*');|INSERT INTO setting VALUES ('gepiYear', '$gepiYear');|" sql/data_gepi.sql
70
sed -i "s|Copyright &copy; 2001-20[0-9]\{2\}|Copyright \&copy; 2001-${gepiYear:5:4}|" templates/origine/login_template.html
71 10 Stéphane Boireau
72
git mv utilitaires/updates/${oldv}_to_dev.inc.php utilitaires/updates/${oldv}_to_${newv}.inc.php
73 1 Stéphane Boireau
74 14 Stéphane Boireau
sed -i "s| jour vers la version ${version}(dev)| jour vers la version ${version}|" utilitaires/updates/${oldv}_to_${newv}.inc.php
75
76
# A CE STADE LES OPERATIONS NE SONT PAS SCRIPTEES
77 12 Stéphane Boireau
# Tester cette nouvelle stable sur une nouvelle install et sur une migration.
78 14 Stéphane Boireau
# Ensuite seulement poursuivre les opérations indiquées ci-dessous.
79 1 Stéphane Boireau
80 10 Stéphane Boireau
git commit -a -m "Correction des références à master dans la nouvelle branche ${version}"
81 15 Stéphane Boireau
82
# Envoi de la nouvelle branche
83
git push origin release-${version}
84
85 10 Stéphane Boireau
86 11 Stéphane Boireau
# On va s'occuper de la version de devel:
87 1 Stéphane Boireau
git checkout master
88
git merge release-${version}
89 10 Stéphane Boireau
90 11 Stéphane Boireau
# On va remettre la version de devel en état:
91
92
# Correction inverse pour ce qui concerne les références à la version de DEVEL et au numéro de version.
93 10 Stéphane Boireau
sed -ri "s|^(Gepi-${version} .*)|Gepi-master (Version de développement)\n===========================\n\n\1|" changelog.txt
94
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
95
sed -i "s|^Gepi-${version}|GEPI-master|" MAJ.TXT
96
sed -i "s|^GEPI-${version} .*|GEPI-master (version de développement)|" README.txt
97
sed -i "s|^Gepi-${version} |GEPI-master (version de développement)|" INSTALL.txt
98 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
99
sed -ri 's|^(\$gepiVersion =)(.*)|\1 "master";|' lib/global.inc.php
100
sed -i "s|INSERT INTO setting VALUES ('version', '$version');|INSERT INTO setting VALUES ('version', 'master');|" sql/data_gepi.sql
101 10 Stéphane Boireau
sed -i "s|'${old_version}','defaut'|'${old_version}','${version}','defaut'|" utilitaires/maj.sh
102
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
103
104 11 Stéphane Boireau
# Ajout d'un section dans maj.php (il faut le faire à la main...)
105
# Ebauche de truc à tester:
106 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
107
108 11 Stéphane Boireau
# Création d'un fichier utilitaires/updates/${newv}_to_dev.inc.php
109 10 Stéphane Boireau
grep -B 1000 "^// Fin SECTION EXEMPLE$" utilitaires/updates/${oldv}_to_${newv}.inc.php > utilitaires/updates/${newv}_to_dev.inc.php
110
sed -i "s|${version}|${devel_version}|" utilitaires/updates/${newv}_to_dev.inc.php
111
sed -i "s|${old_version}|${version}|" utilitaires/updates/${newv}_to_dev.inc.php
112
echo -e "*/\n\n\n?>" >> utilitaires/updates/${newv}_to_dev.inc.php
113
git add utilitaires/updates/${newv}_to_dev.inc.php
114
115
git commit -m "Rétablissement des références à la version devel et ajout de ${newv}_to_dev.inc.php" ./
116
117
git push origin
118
</pre>
119
120
121
h2. Obsolète: Sortie d'une nouvelle branche avec SVN
122
123 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.
124
La 1.6.2 va devenir la nouvelle stable.
125
126 1 Stéphane Boireau
Pour effectuer la sortie, concrètement, il faut:
127
128 7 Stéphane Boireau
- compléter le changelog.txt
129 8 Stéphane Boireau
<pre>
130
<span style='color:red'>  Faire un
131 2 Stéphane Boireau
132 1 Stéphane Boireau
>     svn log -r REVISION_DU_changelog_branche_precedente:REVISION_DE_LA_DERNIERE_MODIF https://svn.sylogix.org/gepiphp/trunk/
133
134
  pour consulter si nécessaire la liste des modifications effectuées.
135 7 Stéphane Boireau
  Ça c'était pour SVN...
136 1 Stéphane Boireau
  ... quelle serait la commande pour lister les diff?
137 8 Stéphane Boireau
</span>
138
</pre>
139 1 Stéphane Boireau
140 7 Stéphane Boireau
- Créer la nouvelle branche d'après la branche de développement (master)
141 1 Stéphane Boireau
142 7 Stéphane Boireau
>     git checkout master
143
>     git checkout -b release-1.6.2
144
>     git push git@github.com:tbelliard/gepi.git release-1.6.2
145 2 Stéphane Boireau
146 7 Stéphane Boireau
- Renommer dans le changelog.txt Gepi-trunk en Gepi-1.6.2
147 2 Stéphane Boireau
148 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
149 2 Stéphane Boireau
150 9 Stéphane Boireau
- vérifier que le utilitaires/maj.sh et le utilitaires/maj.php tiennent bien compte de la nouvelle branche.
151 2 Stéphane Boireau
152 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.
153 2 Stéphane Boireau
154 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
155 5 Stéphane Boireau
156 7 Stéphane Boireau
h2. Branche master
157
158
- créer une nouvelle section Gepi-trunk au début du fichier changelog.txt de la branche master
159 1 Stéphane Boireau
160
- dans les INSTALL.txt, MAJ.TXT et README.txt, la référence à la version de devel, doit être toujours présente.
161 8 Stéphane Boireau
<pre>
162 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>
163 8 Stéphane Boireau
</pre>
164 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
165 1 Stéphane Boireau
166
- laisser le temps à Thomas de mettre à jour le script de génération des archives zip sur gepi.mutualibre.org
167
168
- envoyer un texte d'annonce pour mettre sur gepi-users