Mettre à jour sa version de Jelix ET son dépôt en une fois
Dans ce numéro nous allons voir comment mettre à jour le dossier lib de son site/application, directement depuis les sources Jelix, en passant par un type de makefile.
Vous me direz « oui c’est facile, pas besoin de faire un build pour si peu ; je prends le dernier tar.gz stable et je remplace le dossier lib et voilà »
Oui !
mais non…
Si vos sources sont sur un dépôt (j’espère pour vous;) … vous voyez où je veux en venir, le patacaisse pour gérer ce qui est là / plus là, etc…
Donc le process de build va s’occuper, certes de produire une version de Jelix prête à l’emploi, mais également effectuer le ménage parmi les fichiers qui doivent être supprimés, ajoutés, modifiés afin qu’il ne vous reste plus qu’à faire un commit et push tout beau tout propre. Oui madame !
Partons d’un dépôt git que l’on va cloner :
foxmask@home:~$ git clone github/foxmask-havefnubb Cloning into foxmask-havefnubb... done.
vérifions que rien n’a été modifié
foxmask@home:~$ cd foxmask-havefnubb foxmask@home:~/foxmask-havefnubb$ git status # On branch master nothing to commit (working directory clean)
dans ce dossier je dispose du dossier lib contenant jelix
foxmask@home:~/foxmask-havefnubb$ ls -1 cache [...] lib migration.php [...]
à présent, depuis un clone git du projet jelix, je lance la mise à jour comme suit :
foxmask@home:~/github/jelix-original$ php build/buildjelix.php foxmask-dev.ini foxmask@home:~/github/jelix-original$
à présent dans mon dossier ~/foxmask-havefnubb retournons voir ce qui a changé
foxmask@home:~/foxmask-havefnubb$ git status|wc -l 1057
ca rigole pas hein ;) bon aller juste quelques lignes parce que je sens que vous n’y croyez pas :
foxmask@home:~/foxmask-havefnubb$ git status|more # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: lib/jelix-admin-modules/jpref_admin/classes/jpref_admin.listener.php # new file: lib/jelix-admin-modules/jpref_admin/controllers/prefs.classic.php [...]
Donc on parachèvera par un git commit -a -m « update to jelix x.y » suivi d’un push et voilà !
Vous allez me dire « hey mais ho ; comment tu fais tout ce mic mac ? on a rien vu ! »
Ah ba oui grand balot que je suis, je ne vous ai pas montré l’essentiel : le contenu du fichier foxmask-dev.ini ; mon fichier de config pour builder jelix !
le voici :
MAIN_TARGET_PATH = /home/foxmask/foxmask-havefnubb/ EDITION_NAME = PHP_VERSION_TARGET = 5.2 ENABLE_PHP_XMLRPC = ENABLE_PHP_JELIX = ENABLE_DEVELOPER = 1 WITH_BYTECODE_CACHE = auto INCLUDE_ALL_FONTS = STRIP_COMMENT = ENABLE_OPTIMIZED_SOURCE = PACKAGE_TAR_GZ = PACKAGE_ZIP = DELETE_DEPRECATED_FILES = 1 TARGET_REPOSITORY=git
le paramètre qui permet de gérer vos sources est bien évidement le dernier : TARGET_REPOSITORY qui peut aussi être hg ou svn.
Quant au premier paramètre MAIN_TARGET_PATH , il doit contenir le chemin vers le dossier de votre application, celui « contenant » le répertoire lib (celui de jelix bien sûr).
A présent vous êtes fin prêt pour obtenir les versions stables directement des sources de Jelix et faire votre mise à jour de Jelix au sein de vos applications/sites sans aucun effort. Pas belle la vie ? ;)
Bonnes mises à jour ;)