wiki:fr/sources
developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Version 2 (modified by laurent, 14 years ago) (diff)

mise à jour pour le nouveau système de build

Travailler avec les sources

Travailler avec les sources de Jelix est assez différent des projets PHP traditionnels, en ce sens que le contenu du dépôt des sources n'est pas directement utilisable. En clair, le contenu qui est proposé dans les archives en téléchargement, est légèrement différent de ce qui est dans le dépôt.

En effet, certains fichiers de Jelix contiennent des directives pour générer un fichier source différent en fonction de paramètre. Cela permettra de fournir des versions différentes de Jelix

  • en fonction d'une version de PHP
  • optimisée selon le context : optimisée pour un environnement en production, ou contenant des outils et fonctions supplémentaires pour aider au développement.
  • de l'arborescence finale souhaitée : configuré pour fonctionner sans documentRoot, ou avec documentRoot.
  • etc.

Les fichiers sources de Jelix du dépôt doivent donc passer par un pré-processeur avant de pouvoir être utilisé par PHP. Ce qui veut dire aussi que les contributeurs à Jelix doivent effectuer leurs modifications, non pas dans les fichiers sources disponibles en téléchargement, mais dans le code source obtenus via le dépot subversion.

Récupérer les sources

Il faut les récupérer à partir du dépôt Subversion. Il faut donc installer sur votre machine un client subversion. Puis ensuite le configurer pour accéder au dépôt.

Adresse du dépôt, pour les contributeurs "anonymes" :

   svn://svn.berlios.de/jelix/trunk

Addresse du dépot, pour les contributeurs "officiels" qui ont un accès en écriture sur le dépot :

   svn+ssh://''votre_login_berlios''@svn.berlios.de/svnroot/repos/jelix/trunk

jelix/trunk est pour récupérer uniquement la version en cours de développement de la branche principale. Si vous voulez récupérer d'autres branches ou versions officielles, indiquez juste jelix

   svn+ssh://''votre_login_berlios''@svn.berlios.de/svnroot/repos/jelix/

Cela donne donc, avec un client subversion en ligne de commande :

svn checkout svn+ssh://''votre_login_berlios''@svn.berlios.de/svnroot/repos/jelix/trunk

Arborescence

Voici les differents répertoires que vous récupérez :

  build/     les outils de génération de sources
  lib/       les bibliothèques de jelix
  myapp/     application simple
  temp/      repertoire temporaire pour les applications jelix
  testapp/   application qui permet de tester le framework

Les outils de constructions

Les sources obtenues ne peuvent pas être utilisable directement.

Une fois que vous avez effectué des modifications dans le code source, il faut générer une version utilisable par PHP pour pouvoir tester ces modifications.

Pour ce faire il y a un script build/buildjelix.php. C'est une sorte de makefile. Il prend en argument un nom de fichier ini qui déclare des paramètres. Le repertoire build/config/ contient des fichiers ini que vous pouvez utiliser.

Il existe aussi un fichier Makefile à la racine du dépot, qui ne fait qu'appeler buildjelix.php.

Générer une version de travail

Avant de faire des modifications, il faut préparer votre environnement. Vous devez avoir le répertoire contenant les sources du dépot, et le répertoire qui contiendra une version utilisable du framework. Par exemple :

   /home/laurent/projets/jelix/svn/ pour le répertoire du dépot, et contenant donc trunk/lib etc..
   /home/laurent/projets/jelix/tests/ pour le répertoire cible, contenant la version interprêtable par php

Afin d'initialiser le répertoire cible tapez en ligne de commande :

make TESTPATH=/home/laurent/projets/jelix/tests/ all-test

Cela va vous générer dans ce répertoire tests :

lib/ temp/ testapp/ myapp/ ..

Il faut ensuite configurer votre serveur web local pour qu'il pointe sur tests/ ou directement sur tests/testapp/www et/ou tests/myapp/www/

Ensuite, à chaque modification que vous faites dans jelix, et avant de pouvoir tester, il faut refaire un make, ou appeler directement buildjelix.php.

  make TESTPATH=/home/laurent/projets/jelix/tests/ jelix-test

ou

  php build/buildjelix.php -D TESTPATH=/home/laurent/projets/jelix/tests/ build/config/jelix-test.ini

Vous pouvez aussi créer votre propre fichier ini pour éviter d'avoir à indiquer tout le temps le chemin, ou avoir un build personnalisé de jelix. Copiez alors le fichier jelix-test.ini sous un autre nom, où vous voulez, et modifiez-le à votre convenance.

MAIN_TARGET_PATH = /home/laurent/projets/jelix/tests/
PHP_VERSION_TARGET =
ENABLE_PHP_FILTER =
ENABLE_PHP_JSON =
ENABLE_PHP_XMLRPC =
ENABLE_DEVELOPER = 1
PACKAGE_TAR_GZ =
PACKAGE_ZIP =
STRIP_COMMENT =
ENABLE_OPTIMIZE =

puis vous exécuterez :

  php build/buildjelix.php monfichier.ini

Générer un package

Le principe est exactement le même que pour générer une version de travail. Vous avez par exemple :

/home/laurent/projets/jelix/svn/trunk/... pour le répertoire du dépôt /home/laurent/projets/jelix/dist/ pour le répertoire cible

Faites alors :

make DISTPATH=/home/laurent/projets/jelix/dist/ jelix-dist

Ce qui est en fait équivalent à

  php build/buildjelix.php -D TESTPATH=/home/laurent/projets/jelix/dist/ build/config/jelix-dist.ini

Si vous avez fait un fichier ini personnalisé, il vous suffit simplement de mettre la valeur 1 (ou "on") pour les paramètres PACKAGE_TAR_GZ et/ou PACKAGE_ZIP.

Vous aurez alors dans /home/laurent/projets/jelix/dist/ des archives prêtes à être distribuées.

Autres paramètres pour make

Le Makefile accepte différentes cibles, qui permettent de générer des repertoires de travail ou des paquets à distribuer avec les paramètres standards. Tapez simplement make pour en avoir la liste.

Il permet de travailler aussi avec jtpl standalone et autres produits issus de Jelix.


Retour au sommaire