Quels sont les défis que nous devons relever ?

Soyons honnêtes, une nouvelle version majeure tous les deux ans, ça fait peur. Par le passé, nous n'avons pas toujours été à la hauteur en matière de migration et de mises à jour. Les raisons en étaient multiples. La longue phase de développement a entraîné un écart important entre la version majeure actuelle et la prochaine version. Et comme la technologie évolue constamment, toute période de temps importante signifie qu'un grand nombre de changements technologiques doivent être pris en compte, ce qui implique un obstacle de migration plus important.

La réduction du délai de réalisation présente des avantages, mais aussi des inconvénients. D'une part, nous pouvons plus facilement réagir aux nouvelles technologies, les changements ne seront donc pas trop importants. Si la nouvelle version majeure est laissée trop longtemps, la migration conduit à une reconstruction presque complète.

D'autre part, les mises à jour technologiques plus rapides posent des défis aux développeurs d'extensions et de templates. Nous sommes pleinement conscients qu'il est parfois pénible de se tenir à jour avec les changements dans l'architecture de Joomla, cela implique le remaniement régulier du code pour se débarrasser des fonctions et des classes dépréciées.

Il n'y a pas de calendrier parfait. Il n'y a pas de période de publication idéale pour satisfaire tout le monde, il y a toujours des gagnants et des perdants, et le problème sera toujours lié à une partie du processus de construction ou à une autre.

Certains changements semblent également un peu douteux à première vue. Par exemple, pourquoi la plupart des classes de Joomla\Cms\Factory sont-elles dépréciées et devraient-elles être supprimées avec Joomla 5 ? Elle a fonctionné à merveille pendant 11 ans ; pourquoi devrait-elle devenir une mauvaise pratique maintenant ?

Telles sont les réflexions que nous avons eues au sein des différentes équipes responsables de la livraison de notre excellent produit, extensible, évolutif et maintenable. Mais abordons les défis un par un.

Les bonnes nouvelles

Avant de commencer à parler de l'avenir, regardons où nous en sommes avec Joomla 4. Après environ sept longues années de développement, nous avons enfin lancé une nouvelle version majeure de Joomla ! Et Joomla 4 est vraiment un excellent logiciel, sans conteste. Construire un composant à la manière de Joomla 4 nécessite beaucoup moins de code par rapport à Joomla 3. La sécurité a été renforcée par de nombreux changements, y compris les instructions préparées pour se protéger contre les injections SQL.

L'accessibilité a progressé à pas de géant et les fonctionnalités intéressantes ne cessent de croître : flux de travail, planificateur, templates enfants, etc.

Nous sommes également dans un bien meilleur état au niveau de la communauté, avec de nombreuses personnes qui s'engagent pour remplir les places vides. Les équipes se développent, et il y a eu une atmosphère positive dans GitHub ainsi que dans les canaux de la communauté. Il y a toujours des choses que nous pourrions améliorer, mais ce n'est pas faute d'essayer, et le déclin de notre part de marché a ralenti, s'est arrêté, et au moment de la rédaction de cet article, montre une très légère croissance dans le graphique de W3Tech et d'autres sources ont montré une augmentation plus marquée.

Nous avons une stratégie claire pour réussir, nous devons juste la mettre en œuvre.

Quels sont les projets pour la version 5.0 ?

La "fonctionnalité" la plus importante de Joomla 5.0 est la suppression du code déprécié. Cela permet à Joomla d'être à l'épreuve du futur. Nous allons fortement réduire l'effort de maintenance en consolidant différentes zones du code. En outre, l'écriture de tests sera beaucoup plus facile et plus fiable à l'avenir.

Nous voulons avoir une structure de code qui nous donne la possibilité de soutenir les développeurs tiers en augmentant la qualité et la sécurité de leur code. Imaginez que votre code soit automatiquement couvert par des tests simplement parce que vous suivez la norme de base de Joomla ; c'est notre vision de l'avenir. Plus important encore, nous connaissons le défi des méthodes dépréciées de Joomla\Cms\Factory, qui sont largement utilisées dans tout l'écosystème. Nous sommes actuellement en train de nous assurer que nous aurons une solution, de sorte que les extensions utilisant cette méthode ne seront pas inutilisables dans Joomla 5.0.

Avec Joomla 5.0, nous allons augmenter la version minimale de PHP à 8.1. Ce changement nous apportera de nombreux avantages et nous aidera à rester compétitifs sur le marché.

PHP 8.1 apporte une énorme amélioration des performances pour Joomla. L'effet secondaire est le suivant : nous utilisons une version plus récente de PHP, une version qui n'est pas sur le point d'être en fin de vie trop tôt. Cela nous permet de franchir les étapes suivantes dans les versions ultérieures de Joomla, comme l'utilisation de fibres, de boucles d'événements et d'autres fonctions d'amélioration des performances.

Nous voulons apporter quelques avantages sur le plan fonctionnel. Pour Joomla 4, nous avons prévu la fonctionnalité multi-domaine, mais après avoir évalué l'ensemble des exigences, nous avons décidé de déplacer cette fonctionnalité vers une version ultérieure, car d'autres idées sont apparues et nous ne voulions pas nous précipiter car elle doit bien fonctionner. Aujourd'hui, avec Joomla 5.0, le moment est peut-être venu et le code est suffisamment mature pour intégrer cette fonctionnalité dans le noyau.

Nous sommes également dans une discussion active sur l'avenir de l'édition de contenu. Les éditeurs de blocs comme Gutenberg sont une nouvelle façon de faire fonctionner l'édition de contenu. Nous voulons tester les conditions et voir si cela convient à Joomla. Cela dépend, bien sûr, du nombre de volontaires qui sont prêts à nous aider.

Il est prévu que tout ce qui concerne les CSS et les templates de quelque manière que ce soit seront déplacé des mises en page de base vers Cassiopeia. Cassiopeia (ou peut-être un nouveau template) sert de template parent basé sur Bootstrap et peut ensuite être personnalisé via des template enfants. Il est ainsi possible de construire des template parents supplémentaires basés sur d'autres frameworks comme Tailwind ou UIKit. Nous aimerions intégrer un tel modèle alternatif dans Joomla 5 si quelqu'un peut être trouvé pour l'implémenter.

Comme il est typique pour une nouvelle version majeure, la plupart des améliorations ne sont pas visibles en surface mais se trouvent plutôt sous le capot.

Cela inclut la séparation des pilotes de base de données pour MySQL et MariaDB, qui deviennent de plus en plus divergents. Des pilotes séparés nous permettent de supporter les systèmes de gestion de base de données (SGBD) respectifs de la meilleure façon possible. En outre, nous voulons réaliser les connexions aux bases de données de préférence via des sockets, ce qui apporte une augmentation de la vitesse.

Ce que l'on appelle les expressions de table communes - une fonctionnalité désormais offerte par toutes les bases de données prises en charge par Joomla - nous permettent de rendre les droits d'accès, les catégories et les menus plus performants, car nous pouvons nous passer de la mise en œuvre compliquée des ensembles imbriqués. Les accès en lecture ne sont pas accélérés par cela, mais nous attendons une amélioration significative des accès en écriture.

Quelles sont les prochaines étapes ?

Actuellement, nous travaillons sur deux choses principales : la documentation pour les développeurs et l'évaluation de toutes les classes et fonctions dépréciées dans le CMS Joomla. Ainsi, avec la sortie de Joomla 4.3, nous voulons que tout le code déprécié de Joomla soit revu. Cette révision aboutira à l'une des deux choses suivantes :

Soit la dépréciation est supprimée, soit
Une description et des exemples de code complets sont fournis comme commentaire de code sur la façon de migrer l'utilisation de ce code.

En outre, la documentation complète de migration des développeurs devrait être prête, expliquant comment une extension Joomla 3 peut être migrée et rendue entièrement compatible avec Joomla 4, qui est ensuite compatible avec Joomla 5.

Nous prévoyons de supprimer l'utilisation de tout le code déprécié dans le CMS Joomla pour la sortie de la version 4.4. Ainsi, le CMS de Joomla peut être considéré comme la meilleure pratique de la façon dont le code devrait être écrit.

Enfin, nous prévoyons de créer pour la version 5.0 RC1 de Joomla un ensemble complet de règles pour soutenir la réécriture automatique du code déprécié. Pour ce faire, nous n'ajusterons pas manuellement les endroits où le code déprécié est encore utilisé dans le CMS mais nous écrirons avec Rector, les règles correspondantes pour effectuer les changements. Ces règles sont ensuite disponibles pour les développeurs d'extensions pour adapter leurs composants, modules et plugins à Joomla 5 avec un appel de ligne de commande, y compris le remaniement automatique pour les dépréciations de Joomla\Cms\Factory. Nous espérons améliorer le vérificateur JED de manière à ce qu'il puisse donner des informations sur le code déprécié dans les extensions tierces.

Pendant cette période, nous serons en développement intensif pour les nouvelles fonctionnalités comme le multi-domaine. Si vous pensez pouvoir apporter une fonctionnalité intéressante, n'hésitez pas à nous contacter via les canaux habituels et nous verrons s'il est possible de l'intégrer pour le bénéfice de tous.

Pour répondre à la question soulevée au début : nous sommes très positifs sur le fait que la version 5.0 sera prête à temps avec de nombreux changements importants pour l'avenir de Joomla, mais nous dépendons de VOUS. Nous avons besoin de votre puissance de codage, de vos compétences en matière de tests, de vos talents d'écrivain et de graphiste, et de toute l'aide que vous pouvez offrir. Alors nous aurons tous un grand Joomla 5.0 !