Projet

Général

Profil

Sortie nouvelle branche » Historique » Révision 10

Révision 9 (Stéphane Boireau, 09/01/2013 18:47) → Révision 10/20 (Stéphane Boireau, 14/06/2014 17:25)

h1. Sortie d'une nouvelle branche GEPI 

 h2. Nouvelle branche 

 <pre> 
 chemin_arbo_web=/home/www/html/steph 

 old_version=1.6.4 
 version=1.6.5 
 devel_version=1.6.6 
 oldv=164 
 newv=165 

 git checkout release-${old_version} 
 mkdir $chemin_arbo_web/gepi${oldv}_to_${newv} 
 cp -r ./* $chemin_arbo_web/gepi${oldv}_to_${newv}/ 
 chown -R :www-data $chemin_arbo_web/gepi${oldv}_to_${newv} 
 chmod -R 770 $chemin_arbo_web/gepi${oldv}_to_${newv} 

 git checkout master 
 git pull 

 Mise en réserve des fichiers (ils sont aussi dans mon arbo web master, mais bon): 

 tmp=$HOME/tmp/gepi_$(date +%Y%m%d%H%M%S) 
 mkdir - p $tmp $tmp/lib $tmp/sql $tmp/utilitaires 
 for i in $(echo "changelog.txt 
 MAJ.TXT 
 INSTALL.txt 
 README.txt 
 lib/global.inc.php 
 sql/data_gepi.sql 
 utilitaires/maj.php 
 utilitaires/maj.sh") 
 do 
 cp -v $i $tmp/$i 
 done 

 git checkout -b release-${version} 

 Modif des fichiers ci-dessus dans la nouvelle arborescence ${version} pour changer la version et supprimer les références à une version de DEVEL. 
 sed -i "s|^Gepi-master (Version de développement)|Gepi-${version} ($(date +%d/%m/%Y))|" changelog.txt 
 sed -i "/Version de développement: NE PAS INSTALLER EN PRODUCTION \!/d" MAJ.TXT 
 sed -i "s|^GEPI-master|Gepi-${version}|" MAJ.TXT 
 sed -i "s|^GEPI-master (version de développement)|GEPI-${version} ($(date +%d/%m/%Y))|" README.txt 
 sed -i "/Version de développement: NE PAS INSTALLER EN PRODUCTION \!/d" INSTALL.txt 
 sed -i "s|^La branche stable actuelle est la ${old_version}|La branche stable actuelle est la ${version}|" INSTALL.txt 
 sed -ri 's|^(\$gepiVersion =)(.*)|\1 "'$version'";|' lib/global.inc.php 
 sed -i "s|INSERT INTO setting VALUES ('version', 'master');|INSERT INTO setting VALUES ('version', '$version');|" sql/data_gepi.sql 
 sed -i "s|updates/${oldv}_to_dev.inc.php|updates/${oldv}_to_${newv}.inc.php|" utilitaires/maj.sh 
 sed -i "s|quelle_maj(\"master\")|quelle_maj(\"$version\")|" utilitaires/maj.php 
 sed -i "s|updates/${oldv}_to_dev.inc.php|updates/${oldv}_to_${newv}.inc.php|" utilitaires/maj.php 

 git mv utilitaires/updates/${oldv}_to_dev.inc.php utilitaires/updates/${oldv}_to_${newv}.inc.php 

 Tester sur une nouvelle install et sur une migration. 

 git commit -a -m "Correction des références à master dans la nouvelle branche ${version}" 

 git checkout master 
 git merge release-${version} 

 Correction inverse pour ce qui concerne les références à la version de DEVEL et au numéro de version. 
 sed -ri "s|^(Gepi-${version} .*)|Gepi-master (Version de développement)\n===========================\n\n\1|" changelog.txt 
 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 
 sed -i "s|^Gepi-${version}|GEPI-master|" MAJ.TXT 
 sed -i "s|^GEPI-${version} .*|GEPI-master (version de développement)|" README.txt 
 sed -i "s|^Gepi-${version} |GEPI-master (version de développement)|" INSTALL.txt 
 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 
 sed -ri 's|^(\$gepiVersion =)(.*)|\1 "master";|' lib/global.inc.php 
 sed -i "s|INSERT INTO setting VALUES ('version', '$version');|INSERT INTO setting VALUES ('version', 'master');|" sql/data_gepi.sql 
 sed -i "s|'${old_version}','defaut'|'${old_version}','${version}','defaut'|" utilitaires/maj.sh 
 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 

 Ajout d'un section dans maj.php (il faut le faire à la main...) 
 Ebauche de truc à tester: 
 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 


 Création d'un fichier utilitaires/updates/${newv}_to_dev.inc.php 
 grep -B 1000 "^// Fin SECTION EXEMPLE$" utilitaires/updates/${oldv}_to_${newv}.inc.php > utilitaires/updates/${newv}_to_dev.inc.php 
 sed -i "s|${version}|${devel_version}|" utilitaires/updates/${newv}_to_dev.inc.php 
 sed -i "s|${old_version}|${version}|" utilitaires/updates/${newv}_to_dev.inc.php 
 echo -e "*/\n\n\n?>" >> utilitaires/updates/${newv}_to_dev.inc.php 
 git add utilitaires/updates/${newv}_to_dev.inc.php 

 git commit -m "Rétablissement des références à la version devel et ajout de ${newv}_to_dev.inc.php" ./ 

 git push origin 
 </pre> 


 h2. Obsolète: Sortie d'une nouvelle branche avec SVN 

 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. 
 La 1.6.2 va devenir la nouvelle stable. 

 Pour effectuer la sortie, concrètement, il faut: 

 - compléter le changelog.txt 
 <pre> 
 <span style='color:red'>    Faire un 

 >       svn log -r REVISION_DU_changelog_branche_precedente:REVISION_DE_LA_DERNIERE_MODIF https://svn.sylogix.org/gepiphp/trunk/ 

   pour consulter si nécessaire la liste des modifications effectuées. 
   Ça c'était pour SVN... 
   ... quelle serait la commande pour lister les diff? 
 </span> 
 </pre> 

 - Créer la nouvelle branche d'après la branche de développement (master) 

 >       git checkout master 
 >       git checkout -b release-1.6.2 
 >       git push git@github.com:tbelliard/gepi.git release-1.6.2 

 - Renommer dans le changelog.txt Gepi-trunk en Gepi-1.6.2 

 - Renommer dans le utilitaires/updates/1.6.1_to_dev.php en utilitaires/updates/1.6.1_to_1.6.2.php 

 - vérifier que le utilitaires/maj.sh et le utilitaires/maj.php tiennent bien compte de la nouvelle branche. 

 - 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. 

 - 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 

 h2. Branche master 

 - créer une nouvelle section Gepi-trunk au début du fichier changelog.txt de la branche master 

 - dans les INSTALL.txt, MAJ.TXT et README.txt, la référence à la version de devel, doit être toujours présente. 
 <pre> 
 <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> 
 </pre> 
 - 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 

 - laisser le temps à Thomas de mettre à jour le script de génération des archives zip sur gepi.mutualibre.org 

 - envoyer un texte d'annonce pour mettre sur gepi-users