Composerification dans Jelix 1.7

6 views
Skip to first unread message

Laurent

unread,
Jun 3, 2015, 1:32:50 PM6/3/15
to jelix-fr
Bonjour,

Ces dernières semaines, ça a pas mal bougé dans le dépôt de Jelix,
surtout dans la branche 1.7.

J'avais prévu que Jelix 2.0 puisse être installable par Composer, mais
c'est une possibilité que je veux depuis pas mal de temps, et assez
rapidement (c'est à dire, pas dans je ne sais combien de mois, le temps
que la 2.0 soit opérationnelle).

Du coup, la "composerification" se fait dans la branche 1.7.

En quoi cela consiste ?

Composer est un système d'installation de bibliothèques et composants
pour PHP. C'est un système de paquet comme l'on trouve dans les
distributions linux (apt, yum, rpm), mais aussi pour d'autres langages
comme Npm pour javascript/nodejs, pip pour python, gem pour ruby etc...

https://getcomposer.org/

Ainsi les sources de Jelix vont être découpés en paquets plus ou moins
indépendants.

1) plus aucune bibliothèque externe n'est intégrée dans le dépôt de
Jelix. Elles sont juste déclarées dans un fichier composer.json (toutes
celles que Jelix utilise sont installables via Composer).

2) des classes utilitaires, certains composants et modules de Jelix sont
eux aussi externalisés, c'est à dire qu'ils ont leur propre dépôt git,
et sont installables par Composer (ou via un zip classique)

L'objectif de cette "composerification" est multiple :

1) alléger le dépôt de Jelix
2) mettre à jour plus facilement les libs externes
3) mettre à jour plus facilement les sources de Jelix dans vos projets,
quand vous utilisez Composer : Un changement de numéro de version dans
votre fichier composer.json, et c'est tout. (et pas besoin d'intégrer
les sources de Jelix dans le dépôt de votre projet) (restera quand même
à adapter le code de votre projet suivant les évolutions des libs de Jelix)
4) rendre disponible certaines classes et composants pour des projets
non basés sur Jelix. Comme par exemple les classes de manipulation de
fichier ini, ou la version standalone de jTpl...
5) rendre disponible plus rapidement des évolutions dans certains
modules : étant dans des dépôts séparés, ils peuvent vivre leur vie et
des releases de ces modules peuvent être faites en dehors des releases
de Jelix
6) Virer les classes/composants/modules dépréciés du dépôt de Jelix,
tout en les gardant disponibles pour ceux qui en ont encore besoin dans
leurs vieux projets.

etc..

Qu'est ce que cela va changer dans vos projets qui migreront vers Jelix
1.7 ?

Pas grand chose en fait. La "composerification" n'est en fait qu'une
réorganisation des sources de Jelix. Et vous aurez le choix entre
utiliser Composer, ou installer Jelix via un paquet zip comme
d'habitude. Le zip de Jelix contiendra le coeur de Jelix (ce qui sera
dans le dépôt de jelix donc), mais aussi les classes/composants/modules
"officiels" qui ont été externalisés. Donc au final un zip classique de
Jelix. Cette composerification ne changera en rien la structure et le
fonctionnement d'une application Jelix (à part quelques modifications
dans le fichier application.init.php pour l'autoloading).

La liste complète des nouveautés et le guide de migration ont été mis à
jour :

http://docs.jelix.org/fr/manuel-1.7/nouveautes

http://docs.jelix.org/fr/manuel-1.7/installation/migration

Bien sûr, Jelix 1.7 (et la composerification) n'est pas encore terminée
et ces pages vont évoluer. De plus, le reste du manuel n'est pas encore
mis à jour, toute contribution est la bienvenue ;-).

Les paquets Composer de tout ce qui a été fait sont disponibles dans le
dépôt officiel de Composer, Packagist
https://packagist.org/users/laurentj/ , mais aussi sur
http://packages.jelix.org (sorte de mirroir). Et vous trouverez tous les
dépôts de code source sur https://github.com/jelix/ . Et j'ai référencé
quelques paquets sur http://booster.jelix.org.

Au passage, je voulais signaler la disponibilité prochaine d'une version
stable de jTpl standalone (utilisable en dehors de Jelix), et que j'ai
nommé Castor. https://packagist.org/packages/jelix/castor

Bonne journée,

Laurent









Reply all
Reply to author
Forward
0 new messages