Projet

Général

Profil

Sortie nouvelle branche » Historique » Version 10

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

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