La lumière au bout...

Date 29/09/2005 | Sujet : Xoops France

Je me dois de commencer ce texte par des excuses. Lorsque certains d'entre nous se sont rencontrés au printemps dernier lors du FOSDEM, j'ai annoncé plein de changements, j'étais plein de projets. Peu après, la roadmap pour XOOPS 4 fut publiée, et puis plus rien: j'ai dû totalement disparaître pendant plusieurs mois. Il est est vrai que cette absence a été aussi involontaire qu'imprévue, et dûe à d'énormes problèmes rencontrés dans la vraie vie... mais néamoins cela ne change rien pour les personnes qui sont présentes ici, et en revenant fin août je ne pouvais que constater les conséquences de cette absence.

En disparaissant comme cela, j'ai laissé ce projet sans guide, sans vision globale, et ce n'est pas juste un programmeur qui a manqué. Bien sur, quelques personnes ont essayé de pallier à ce manque, mais sans direction à suivre ni réelle expérience, leur tâche s'est retrouvée très dure, presque impossible.

Aussi je tiens encore à m'excuser. D'abord auprès des personnes qui ont essayé de contribuer à ce projet pendant ce temps pour les avoir laissées seules, puis auprès de tous les utilisateurs qui se sont retrouvés sans interlocuteur, sans position officielle ni réponse claire à certaines de leurs interrogations. Merci pour votre aide, pour votre patience ou votre support: les problèmes de ces derniers mois seront bientôt oubliés, c'est une promesse que je fais personnellement.

Expliquer en détail tout ce qui va se passer dans les prochaines semaines ou mois prendrait plusieurs pages, je vais donc me contenter de synthétiser au maximum aujourd'hui. L'idée principale qui est à l'origine de la plupart des changements que vous allez voir bientôt est la même, mais nous allons l'appliquer à notre programme, à la façon dont nous travaillons, partout où cela est possible. éfinir en quelques mots en quoi elle consiste a déjà été fait, par un autre architecte appelé Hans Reiser (le programmeur à l'origine du ReiserFS) et je me contenterai donc de citer ici sa "Loi de Reiser sur l'économie de l'information": Le pouvoir expressif d'un système d'information est proportionnel non pas au nombre d'objets qui sont implémentés pour celui-ci, mais au nombre d'interactions effectives qui sont possibles entre ces objets.

En langage normal qu'est-ce que cela veut dire ? Que communiquer est plus important qu'agir (en latin, communicare soit comm-unicare: comment donner le un au multiple, au avec, ou permettre au avec de donner naissance au un). Que le potentiel repose dans les interfaces, dans les relations, dans les protocoles, et que ce sont les aspects sur lesquels nous allons nous concentrer.

Concrètement, voici les principaux points qui seront visibles prochainement :


1) A propos de l'organisation

La première chose que j'ai faite en revenant fin août a été d'essayer de donner naissance à une réelle équipe de développement, alors que XOOPS a jusqu'à maintenant toujours été l'oeuvre d'un ou de quelques individus, mais qui ne formaient pas réellement ce que j'appelle une équipe. Nous utilisons pour l'instant une mailing-liste privée pour travailler, mais celle-ci deviendra publique dans quelques semaines. D'ici là, un nouveau site dédié à cette équipe verra le jour (en fait, une première version de ce site devrait ètre mise en ligne très bientôt): blogs de développeurs, documents... tout ce qui concerne le développement de XOOPS sera visible, expliqué, documenté. Chacun pourra voir ce qui se passe, ce qui va se passer, et pourra intervenir. Les développeurs vont aussi veiller à ce que les efforts des membres d'autres équipes soient synchronisés aux leurs : QA, documentation, sites de support locaux... autant d'entités qui agissent aujourd'hui de manière totalement indépendante, mais qui devront autant que possible se rapprocher, afin de s'assurer qu'elles travaillent de manière parallèlle, en s'entraidant.

2) A propos de XOOPS 2.2

Le développement et la sortie de XOOPS 2.2 ne se sont pas déroulés comme prévus, mais ces derniers mois n'auront pas été perdus. Quoiqu'il arrive, nous allons faire en sorte dans les semaines qui viennent que tout ce qui vient de se passer soit riche d'enseignements: faire face à de tels problèmes est la meilleure chose que l'on puisse espérer pour nous permettre de nous surpasser. La façon dont les nouveautés ont été ajoutées, la façon dont les versions de différents types ont été publiées et le manque de communication autour de celles-ci, le manque de documentation qui aurait permis à plus de personnes de comprendre et de contribuer au développement... de nombreuses choses ont été apprises afin que nous évitions de reproduire certaines erreurs.

XOOPS 2.2.3RC2 sera bientôt disponible publiquement. Cette version a été développée à partir de la 2.2.2 afin de ne pas souffrir des bugs apparus dans la RC1, sortie de façon un peu précipitée. Elle corrigera un nombre important de bugs, et devrait supprimer la plupart des notifications d'erreur concernant l'usage des références qui s'affichent lors de l'utilisation de PHP 4.4 et PHP 5.1 (cependant cette dernière modification a nécessité plusieurs dizaines de corrections, les réferences étant utilisées à outrance et de manière totalement inadéquate dans tout le core, ce qui explique que nous la testions encore avant de la sortir). Puis, une fois la 2.2.3 sortie, de nouvelles mises à jours de cette branche continueront à ètre publiées régulièrement au fur et à mesure, après que des problèmes encore existant nous soient reportés.

Enfin, pour de répondre aux attentes de certaines personnes ayant effectuées une mise à jour malheureuse de leur site, un script permettant de transformer une installation de XOOPS 2.2.x en XOOPS 2.0.13 sera également disponible en Release Candidate d'ici quelques jours.

3) A propos de XOOPS 2.3 / 2.4

La sortie de la nouvelle version de XOOPS destinée à montrer que ce qui a été annoncé ne sont pas de des promesses en l'air est également prévue très rapidement. Ceux qui ont pû suivre ma présentation au FOSDEM ou lu la roadmap pour XOOPS 4 reconnaitront certaines idées: j'y ai expliqué comment je voyais l'avenir de ce système, et c'est donc logiquement que les futures versions nous rapprocheront progressivement de cette vision.
Pour simplifier, alors que X4 correspond à ce que XOOPS devrait devenir, 2.4 sera une étape intermédiaire, correspondant plus à ce que XOOPS devrait ètre aujourd'hui: le meilleur système de portail pour le Web existant... les restructurations effectuées pendant le développement de cette version apporteront de nombreuses possibilités, mais certains gros ajouts comme le support multi-sites ou la couche de gestion de contenus devront attendre une prochaine étape (XOOPS 2.4 nous permettra néanmoins de préparer le core à recevoir ces ajouts).
Une description détaillée de ce que sera cette version sera surement l'objet d'un autre article, mois voici tout de mème quelques points principaux, ainsi que des explications sur ce que vous pourrez voir à (très) court terme...

Pour la méthode de développement:
Dès la première version (2.3.0), cette branche retrouvera instantanément le niveau de stabilité et de compatibilité de XOOPS 2.0.13. L'explication est extrêmement simple: nous allons "revenir dans le temps" et utiliser la base de code de la 2.0.13 pour travailler (ce qui sera plus pratique et rapide aue de modifier ou réparer certaines parties de la 2.2).

Ce petit tour de passe-passe me permettra de vous donner très vite certaines améliorations dont je dispose depuis maintenant presque un an, bien qu'elles n'aient jamais été rendues publiques

Les fonctionnalités de la 2.2 seront rajoutées à cette base de code, traitée au cas par cas: certaines seront recopiées de la branche 2.2, d'autres corrigées ou améliorées au passage, et les dernières concernant des parties devant de toute façon ètre entièrement refaites dans XOOPS 2.4 (comme la gestion des blocs) seront laissée de coté, mais nous nous assureront dans ce cas que l'équivalent 2.4 soit à la fois compatible avec ce qu'il y avait dans les 2.0.x et les 2.2.x.

Les versions instables seront réellement utilisables, bien que limitées (par exemple: les 2 ou 3 premières 2.3.x ne fonctionneront surement que sous Apache). Ces limitations seront documentées afin que le plus de développeurs, designers ou webmasters possible puissent utiliser 2.3.x.

La création de cette branche sera accompagnée de la mise en ligne d'un nouveau site dédié à l'équipe de développement: vous aurez la possibilité de suivre l'évolution de nos travaux et de notre réflexion, et d'intervenir (je reviendrai sur ce point plus tard, mais il est d'un extrème importance: toutes les 2.3.x auront pour but de montrer aux personnes concernées à quoi ressemblera demain, afin qu'ils nous fassent part de leur commentaire au plus tôt, avant que tout soit fini).


Quelques objectifs

Réécriture de bas niveau

Beaucoup de travail sera effectué dans la réécriture du noyau et les séquences de démarrage. Ici nous aurons plusieurs objectifs. Le premier sera de nettoyer la présente partie du noyau, pour arriver à quelque chose de fortement structuré pour aller plus loin : développement distribué des classes qu'il contiendra. Ceci nous permettra d'ajouter quelques fonctionnalités avant d'atteindre la 2.4.0 (amélioration des sessions et de l'authentification, possibilité d'utiliser plusieurs fichiers de démarrage, véritable capacité https...)
Enfin, cette étape nécessaire nous permettra d'apporter quelques unes des fonctionnalités les plus demandées au noyau dans une prochaine version (2.5/2.6), comme la possibilité de gérer plusieurs sites XOOPS à partir d'une seule installation, ou une véritable
capacité multi-langues.

La couche externe
La nouvelle couche de sortie sera l'une des premières nouvelles fonctionnalites à être distribuée. Inspirée de certains des concepts de la programmation Orientée Objet (comme l'héritage), elle permettra aux thèmes d'avoir des parents afin qu'un webmestre puisse réaliser un thème commun pour son site, et ensuite ajouter des thèèmes dérivés (= enfants) en ne changeant que quelques templates ou fichiers. Cette nouvelle couche éliminera la confusion entre les thèmes et les jeux de templates, autorisera certaines ressources à être personnalisées (templates, css, mais aussi les images), et nous nous attendons à ce qu'elle soit plus véloce que la couche actuelle.

Standards Web
Cette partie sera également extrêmement importante: le respect des standards web est ce qui permettra à XOOPS de passer d'une plateforme serveur (comme la plupart des autres CMS) vers une véritable plateforme web.
Toutes les pages de XOOPS respecteront strictement les standards (utilisation des codes de réponse, redirection, mais également envoyer les en-têtes appropriés). D'un autre côté, plusieurs thèmes par défaut seront fournis: au minimum un thème permettant de s'assurer que XOOPS fonctionnera avec les anciens navigateurs, mais plus important, un thème XHTML strict pour de véritables navigateurs comme Safari, Mozilla ou Opéra: et strict ici signifie strict... s'il était incorrect d'utiliser les tables pour faire de la présentation quelques années auparavant, il est tout aussi incorrect de mal employer les CSS, en ne faisant pas la différence entre une classe et un id.

Le dernier point concernant les standards et le web est celui que les gens comprendront le mieux: le Net est bâti sur le concept des URIs... Cela signifie qu'en interne, le nouveau noyau traitera des URIs canoniques, et non plus des "script locations" (ce que les gens appellent shortURLs).

L'application de gestion du portail
Toute la couche de gestion du portail sera externalisée, recodée depuis une page blanche et ce nouveau module apportera de nouvelles fonctionnalités. Tout d'abord, la navigation dans le site deviendra indépendante des applications installées. Il sera possible de définir des sections ou pages comme les dossiers, et associer des URIs de contenu ou des blocs (de sorte que la même page puisse être affichée à différents endroits avec des blocs différents). La seconde nouveauté majeure sera ce que le module considérera comme "bloc" ou "page". XOOPS sera un wrapper universel, et vous permettra d'afficher n'importe quoi sur le web (contenu de modules XOOPS, autres applications, en réalité, N'IMPORTE quelle page web).
Ce sera tout pour aujourd'hui...

Mais avant de me remettre au travail, j'aimerai remercier toutes les personnes qui nous aident:
tout d'abord, merci aux lecteurs qui furent suffisamment patients pour lire ce long article, merci à tous ceux qui contribuent au projet, merci à tous les membres si positifs de notre communauté, merci aux trolls qui hantent nos forums et nous font rire, et même merci à tous les gobelins qui passent leur temps à ruiner les efforts de toutes celles et ceux ipliqués dans XOOPS, sans réussir à sortir quelque chose de constructif; volontairement ou non, vous nous aidez tous à trouver l'énergie et la force qui nous font réussir: Merci à tous, sincèrement...

Skalpa.>

Ndt: Skalpa est le leader de l'équipe de développement du noyau pour Xoops




Cet article provient de Communauté Francophone des Utilisateurs de Xoops
https://www.frxoops.org

L'adresse de cet article est :
https://www.frxoops.org/modules/news/article.php?storyid=874