is not used any more and exists only for history. Post new tickets on the Github account. 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 en/sources

Mar 30, 2009, 11:38:12 AM (12 years ago)



  • en/sources

    v1 v2  
    11= Working with jelix sources =
    3 == principles ==
     3These are important informations for those who want to contribute or to retrieve sources directly from the repository.
     5== Principles ==
    57Sources stored in the subversion repository are not ready to be performed by PHP. There are some preprocessing instructions in some php files, so, sources should be parsed by a preprocessor in order to be used by PHP. This preprocessing instruction allow to build packages for some specific PHP configurations, or some specific jelix editions.
    24  1. récupération de la dernière version de jelix dans le dépôt subversion
    25  1. création d'un fichier de paramètres pour le générateur (un fichier ini)
    26  1. modification des fichiers sources de jelix (correction de bug, amélioration, nouvelle  fonctionnalité etc..)
    27  1. lancement du générateur de sources finales. On obtient un "build"
    28  1. test du build avec une application, et en particulier testapp (qui est fournie dans le dépôt subversion) qui contient tout les tests unitaires
    29  1. si les tests sont concluants, le développeur propose son patch (svn diff) et débute alors le processus de review.
    31 == getting sources ==
     26== Getting sources ==
    3328We use [ Subversion] to store sources of jelix and to follow the history of modifications. So you have to install a subversion client on your machine. Then you can access to the repository by giving the address of the repository to subversion commands.
    35 For "anonymous" users, the address is:
     30For "anonymous" contributors, the address is:
    4137For contributors who have the right to commit into the repository :
    4440   svn+ssh://
    4744Note: the username to give is always "svnjelix". The server recognize automatically your real login with your ssh key.
    5653svn checkout svn+ssh://
     56== Directories ==
     58The 'trunk' directory contains latest improvements for the next major release, and the 'branches' directory contains a directory for each minor releases. In this directory, we only fix bugs. No major new features are commited in them.
     61The directories you find in this directories are:
     63 * build: the scripts to build jelix sources
     64 * ext: the extension for PHP (in C language), for the gold edition of Jelix
     65 * lib: all the files of jelix itself
     66 * temp: temporary directory for the testapp application
     67 * testapp: an application which contains all unit tests, and some example
     69== How to build ==
     71After you retrieve the sources, you need to "build" jelix. There is a script, build/buildjelix.php, which do this build. this is like a "makefile", and it takes a ini file name as a first parameter. This ini file contains options for the build. You have some examples of this files into build/config/.
     73=== Building ===
     75Before doing modifications, you should prepare an working environment: a directory where the built files of jelix will be stored. In this "target" directory, you could use jelix in your applications. Example:
     77Your local copy of the subversion repository could be at:
     79   /home/laurent/projects/jelix/svn/
     82And the target directory where you will have usable files:
     84   /home/laurent/projects/jelix/tests/
     87Create a ini file mybuild.ini. You can copy from one of those which are in build/config, jelix-test.ini for example. It will contain this parameters:
     90MAIN_TARGET_PATH = /home/laurent/projects/jelix/tests/
     105PACKAGE_TAR_GZ =
     106PACKAGE_ZIP =
     111You can have a full list of availabled parameters by doing:
     114  php build/buildjelix.php -h
     117To generate the sources:
     120  php build/buildjelix.php mybuild.ini
     123If you want to build the testapp application, use an other provided script, build/buildapp.php with an other ini file, (see build/config/testapp-test.ini)
     126  php build/buildapp.php mytestapp.ini
     130'''Note''': Of course, you should run the build after each modification in the sources of jelix, on order to test this changes.
     133=== Generating a package ===
     135The principle is the same as previous. You just have to indicate a directory where the packages will be generated, and you have to activate the flags (PACKAGE_TAR_GZ and/or PACKAGE_ZIP) in your ini file (mypackages.ini for example).
     139MAIN_TARGET_PATH = /home/laurent/projects/jelix/dist/
     140EDITION_NAME =
     147WITH_BYTECODE_CACHE = auto
     153PACKAGE_TAR_GZ = 1
     154PACKAGE_ZIP = 1
     158And then:
     160  php build/buildjelix.php mypackages.ini