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.

Changes between Version 1 and Version 2 of fr/sources


Ignore:
Timestamp:
Nov 5, 2006, 10:32:31 AM (14 years ago)
Author:
laurent
Comment:

mise à jour pour le nouveau système de build

Legend:

Unmodified
Added
Removed
Modified
  • fr/sources

    v1 v2  
    11= Travailler avec les sources =
    22
    3 Travailler avec les sources de Jelix est assez différent des projets PHP traditionnels, en ce sens que le contenu du dépot 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épot.
     3Travailler 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.
    44
    55En 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
     
    1010 * etc.
    1111
    12 Les fichiers sources de Jelix du dépot doivent donc passer par un [wiki:fr/preprocesseur 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.
     12Les fichiers sources de Jelix du dépôt doivent donc passer par un [wiki:fr/preprocesseur 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.
    1313
    1414== Récupérer les sources ==
    1515
    16 Il faut les récupérer à partir du dépot [http://subversion.tigris.org/ Subversion]. Il faut donc installer sur votre machine un client subversion. Puis ensuite le configurer pour accéder au dépot.
     16Il faut les récupérer à partir du dépôt [http://subversion.tigris.org/ Subversion]. Il faut donc installer sur votre machine un client subversion. Puis ensuite le configurer pour accéder au dépôt.
    1717
    18 Addresse du dépot, pour les contributeurs "anonymes" :
     18Adresse du dépôt, pour les contributeurs "anonymes" :
    1919
    2020
     
    6868Une 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.
    6969
    70 Pour ce faire il y a un fichier Makefile à la racine des sources, et deux scripts utiles dans le répertoire build : mkdist.php et preprocess.php.
     70Pour 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.
    7171
    72 Le premier permet de créer une arborescence entière en suivant les instructions situées dans des fichiers "manifest", et le deuxième permet d'exécuter le préprocesseur sur un fichier précis pour en générer sa version exécutable.
     72Il existe aussi un fichier Makefile à la racine du dépot, qui ne fait qu'appeler buildjelix.php.
    7373
    7474=== Générer une version de travail ===
     
    8686Afin d'initialiser le répertoire cible tapez en ligne de commande :
    8787
    88 
    89 
    9088{{{
    91 make DEV=/home/laurent/projets/jelix/tests/ dev-all
     89make TESTPATH=/home/laurent/projets/jelix/tests/ all-test
    9290
    9391}}}
     
    105103Il faut ensuite configurer votre serveur web local pour qu'il pointe sur tests/ ou directement sur tests/testapp/www et/ou tests/myapp/www/
    106104
    107 Ensuite, à chaque modification que vous faites dans jelix, et avant de pouvoir tester, il faut refaire un make, ou alors exécuter directement le préprocesseur. Par exemple, imaginons que vous avez modifié le fichier lib/jelix/core/jCoordinator.class.php, vous devrez alors exécuter cela (en supposant que vous êtes dans jelix/svn/trunk )
     105Ensuite, à chaque modification que vous faites dans jelix, et avant de pouvoir tester, il faut refaire un make, ou appeler directement buildjelix.php.
    108106
     107{{{
     108  make TESTPATH=/home/laurent/projets/jelix/tests/ jelix-test
     109}}}
     110
     111ou
     112
     113{{{
     114  php build/buildjelix.php -D TESTPATH=/home/laurent/projets/jelix/tests/ build/config/jelix-test.ini
     115}}}
     116
     117Vous 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.
    109118
    110119
    111120{{{
    112   php build/preprocess.php lib/jelix/core/jCoordinator.class.php ../../tests/lib/jelix/core/jCoordinator.class.php
     121MAIN_TARGET_PATH = /home/laurent/projets/jelix/tests/
     122PHP_VERSION_TARGET =
     123ENABLE_PHP_FILTER =
     124ENABLE_PHP_JSON =
     125ENABLE_PHP_XMLRPC =
     126ENABLE_DEVELOPER = 1
     127PACKAGE_TAR_GZ =
     128PACKAGE_ZIP =
     129STRIP_COMMENT =
     130ENABLE_OPTIMIZE =
    113131}}}
    114132
     133puis vous exécuterez :
    115134
    116 Vous pouvez automatiser cette action en configurant votre éditeur (si c'est possible), afin qu'il exécute cette commande à chaque sauvegarde d'un fichier.
    117 
    118 Pour en savoir plus sur le préprocesseur et ses directives : [wiki:fr/preprocesseur preprocesseur].
     135{{{
     136  php build/buildjelix.php monfichier.ini
     137}}}
    119138
    120139=== Générer un package ===
     
    122141Le principe est exactement le même que pour générer une version de travail. Vous avez par exemple :
    123142
    124    /home/laurent/projets/jelix/svn/trunk/... pour le répertoire du dépot
     143   /home/laurent/projets/jelix/svn/trunk/... pour le répertoire du dépôt
    125144   /home/laurent/projets/jelix/dist/ pour le répertoire cible
    126145
     
    128147
    129148{{{
    130 make DIST=/home/laurent/projets/jelix/dist/ dist-all
     149make DISTPATH=/home/laurent/projets/jelix/dist/ jelix-dist
    131150}}}
    132151
     152Ce qui est en fait équivalent à
     153
     154{{{
     155  php build/buildjelix.php -D TESTPATH=/home/laurent/projets/jelix/dist/ build/config/jelix-dist.ini
     156}}}
     157
     158Si 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.
    133159
    134160
    135161Vous aurez alors dans /home/laurent/projets/jelix/dist/ des archives prêtes à être distribuées.
    136162
    137 Notez bien que ce n'est plus dev-all, mais dist-all. Et que ce n'est plus DEV mais DIST.
    138163
    139164=== Autres paramètres pour make ===
    140165
    141 Le Makefile accepte différentes cibles, on a vu dist-all et dev-all. En fait ces cibles regroupent d'autres cibles qu'il est possible d'appeler directement :
     166Le 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.
    142167
    143 || dist-jelix || génère une archive des bibliothèques jelix ||
    144 || dist-testapp || génère une archive de l'appli testapp ||
    145 || dist-myapp || génère une archive de l'appli myapp ||
    146 || dev-jelix || génère un répertoire pour les test de la bibliothèque jelix ||
    147 || dev-testapp || génère un répertoire pour les test de l'appli testapp ||
    148 || dev-myapp || génère un répertoire pour les test de l'appli myapp ||
    149 || jtpl      || pour avoir une version standalone de jtpl ||
     168Il permet de travailler aussi avec jtpl standalone et autres produits issus de Jelix.
    150169
    151 Le Makefile gère aussi le numéro de version. Il récupère le numéro de version contenu du fichier lib/jelix/VERSION pour l'utiliser dans le nom des archives. Si ce "numéro" est SVN (comme c'est le cas par défaut), alors il va récupérer le numéro de version du source subversion pour l'ajouter à ce numéro et générer un nouveau fichier VERSION dans le répertoire dist. Par ex : SVN-88. (version 88 dans le dépot).
    152 
    153 Vous pouvez imposer un autre numero de version, en l'indiquant au makefile :
    154 
    155 
    156 {{{
    157 make LIB_VERSION=1.5.0 DIST=/home/laurent/projets/jelix/dist/ dist-all
    158 }}}
    159 
    160 
    161 
    162 === Plus d'aide ===
    163 
    164 Tapez Make tout court, pour afficher une petite aide et les valeurs courantes pour chaque paramètre.
    165170
    166171