Si vous ne lisez rien d'autre, voici ce que vous devez savoir :

  • Joomla 5 n'inclura pas de changements de rupture pour les templates et les extensions tierces.
  • Ne supprimera aucun code qui a été marqué comme déprécié dans Joomla 4.
  • Joomla 5 aura une version minimale de PHP 8.1.
  • Les composants qui fonctionnent dans Joomla 4 devraient également fonctionner dans Joomla 5, pour autant qu'ils prennent en charge PHP 8.1.
  • Joomla 5 sera publié en octobre 2023. En raison des points ci-dessus, il ne s'agira pas d'une mise à jour importante et douloureuse comme les versions précédentes.
  • Les versions mineures resteront sur un calendrier de 6 mois, mais toutes les versions seront déplacées aux mois d'avril et d'octobre, à partir de la version 4.3 en (avril 2023).

Si vous souhaitez en savoir plus sur le raisonnement et les détails de ces décisions, poursuivez votre lecture.

Prélude

Il y a eu beaucoup de discussions ces dernières semaines suite à l'annonce : "Créer Joomla ! 5.0 en un an seulement - Mais pouvons-nous le faire ?". L'article a été conçu pour susciter l'intérêt et les réactions et le département de production apprécie cet échange d'idées, de demandes et de réactions. Les membres du département de production ont participé à la discussion par le biais de plusieurs canaux afin d'obtenir des opinions personnelles et de mieux comprendre comment les gens voient Joomla 5 affecter leur monde.
Sur la base de ce feedback, nous avons eu plusieurs motions et avons pris de nombreuses décisions au cours des derniers jours concernant l'avenir de Joomla 5.
Nous avons identifié les deux plus grandes préoccupations à surmonter, toutes deux coûteuses en temps et en argent :

  • Une mise à jour vers Joomla 5 sera une nouvelle migration douloureuse (puis vers 6, etc.).
  • Les extensions fonctionnant sur Joomla 4 ne sont toujours pas compatibles avec Joomla 5.

Il y avait également d'autres préoccupations, telles que :

  • Le code marqué comme déprécié n'avait pas de documentation indiquant aux développeurs ce qu'il fallait faire à la place.
  • Le calendrier actuel des versions est perturbant pour nos bénévoles et notre communauté, en particulier pendant l'été pour les deux hémisphères.
  • Une version majeure doit avoir quelque chose qui rend la mise à jour "intéressante".
  • L'utilisation du noyau (par exemple, les surcharges de templates) ne devrait pas punir les développeurs lors du passage à de nouvelles versions, les obligeant à reconstruire.
  • Les délais sont trop courts

À la suite de ces discussions, le département de la production a pris plusieurs décisions.

Cycles de Publication

  • Nous conserverons un cycle de publication de six mois pour les versions mineures. La raison en est de protéger les responsables de versions de l'épuisement professionnel, car une version représente beaucoup de travail, ils commencent 6 mois avant la sortie de la version et travaillent encore 6 mois après la sortie de la version. Le fait d'avoir des mois fixes et fiables aide tout le monde à planifier.
  • Nous resterons également sur des versions bi-annuelles pour les versions majeures. Ainsi, Joomla 5 sera publié en 2023, Joomla 6 en 2025 et ainsi de suite. La raison est de garder les étapes aussi petites que possible, afin d'éviter les mises à niveau majeures et douloureuses comme dans le passé.

Les nouvelles versions majeures s'attacheront à éliminer les dépréciations, à maintenir les dépendances et à rendre les étapes de mise à niveau aussi fluides que possible.

La quatrième version mineure de chaque cycle de vie (par exemple 4.4, 5.4, 6.4) est une "version d'entretien", dans laquelle l'accent est mis sur le perfectionnement du vérificateur de mises à jour, l'élimination des bugs restants et la production d'une solution stable servant de base à la prochaine version majeure.

Nous nous efforçons de mettre en place un processus de mise à niveau en douceur et sans heurts. De nombreuses personnes impliquées dans la prise de décision sont elles-mêmes des développeurs de sites Web et comprennent donc les difficultés que cela implique. Des délais plus longs impliquent des étapes plus importantes, tandis que des délais plus courts permettent des étapes plus fluides. L'objectif du département Production est de créer un processus fluide et de permettre aux développeurs et aux agences web de mieux contrôler le moment où ils effectuent les changements.

Nouveaux mois de libération

  • Les versions majeures seront publiées sur un cycle de deux ans - Joomla 5 en 2023, Joomla 6 en 2025 etc. Cela réduira les étapes nécessaires à la mise à niveau vers une nouvelle version majeure.
  • Les versions mineures continueront d'être publiées selon un cycle de six mois. Cela permet d'éviter l'épuisement des administrateurs de versions et de garantir une date de sortie fiable.
  • Les mois de sortie seront déplacés en avril et octobre afin d'éviter les vacances d'été dans les deux hémisphères. (résultat direct des commentaires reçus)

Dépréciations

Pour faire court :

Nous ne supprimerons pas le "legacy MVC framework", le "legacy plugin framework", le "legacy module framework" et la classe "Factory". Cela signifie que les composants fonctionnant dans Joomla 4 devraient également fonctionner avec Joomla 5 (à condition qu'ils supportent PHP 8.1).

Pour résumer :

La production a adopté une motion selon laquelle toutes les dépréciations peuvent être supprimées, au plus tôt, +2 versions majeures après qu'elles aient été déclarées dépréciées. Cela signifie que si un code est déclaré comme déprécié dans la version 4.x, le plus tôt qu'il peut être retiré est Joomla 6. Cette motion couvre (entre autres) :

  • Héritage du MVC Framework
  • Héritage du Plugin Framework
  • Héritage du Module Framework
  • La classe Factory

et permet de retirer le code déprécié au plus tôt en 2025.

Au lieu d'étendre le cycle de publication à 3 ans pour Joomla 5, nous donnons aux développeurs tiers au moins un total de 4 ans pour mettre à jour leur extension. Cela atténue également la nécessité de prendre en charge trois versions de l'extension.

Rappelez-vous, "au plus tôt" ne signifie pas que le code déprécié sera supprimé à ce moment-là, il ouvre simplement la possibilité.

Nous avons commencé à commenter et à clarifier les dépréciations avec cette demande de retrait, qui sera mise à jour dans les deux prochains jours.

Version de PHP

Joomla 5 nécessitera une version minimale de PHP de 8.1.
Lorsque Joomla 5 sortira, PHP 7.4 sera en fin de vie (EOL) sans mises à jour de sécurité ni corrections de bogues (voir les versions de PHP).
Joomla 5 nécessitera PHP 8.1. Si votre hébergeur ne prend pas en charge la version 8.1 au moment de la sortie de Joomla 5, vous pouvez soit changer d'hébergeur, soit continuer avec Joomla 4 pour deux années supplémentaires.
PHP 8.1 apporte, entre autres nouvelles fonctionnalités, la possibilité d'exécuter des parties du code en "parallèle", ce qui peut se traduire par une augmentation considérable des performances. Le passage à PHP 8.1 pour Joomla 5 nous permet d'écrire du code qui utilise cette fonctionnalité et même si nous n'avons pas le temps de l'utiliser dans la version 5.0, cette exigence nous laisse la porte ouverte pour l'utiliser dans une version mineure plus tard, ce qui accélère le CMS et permet aux développeurs d'extensions de récolter les bénéfices.

SQL Versions

Joomla 5 supportera MySQL 8.0.11+, MariaDB 10.4+ et PostgreSQL 12+.
Nous allons séparer les pilotes de base de données pour MySQL et MariaDB, car les deux systèmes sont de plus en plus éloignés l'un de l'autre. Des pilotes séparés nous permettent de prendre en charge les systèmes de gestion de base de données (SGBD) respectifs de la meilleure façon possible.
En tant que développeurs, vous pouvez continuer à expédier un fichier MySQL tant que vous n'utilisez que des fonctions supportées par les deux pilotes. Si vous avez besoin de fonctions spécifiques à MariaDB, vous pouvez fournir un fichier MariaDB.

Optimisations

PHP 8.1 nous permet de rendre les opérations d'E/S (lecture et écriture) asynchrones, c'est-à-dire de les exécuter en arrière-plan. Cette possibilité sera disponible pour les extensions de Joomla 5.
Les systèmes de bases de données modernes proposent des requêtes récursives. Cela permettra de remplacer les ensembles imbriqués. Les ensembles imbriqués sont utilisés pour le contrôle d'accès, les catégories, etc., mais, s'ils sont très rapides à la lecture, ils sont très longs à l'écriture. Pour les sites comportant des milliers d'articles dans des catégories ou des utilisateurs et groupes d'utilisateurs, cela entraîne parfois des problèmes de performance. C'est pourquoi, dans Joomla 5, les ensembles imbriqués seront remplacés par des requêtes récursives.

Plugin de compatibilité (Early adopters)

Le code déprécié l'est pour une raison précise : la plupart du temps, il existe un code meilleur, plus rapide et plus utilisable qui donne un coup de pouce à votre site Web. La prise en charge d'un code déprécié pendant une longue période est un élément négatif pour les propriétaires de sites Web qui souhaitent utiliser uniquement du code de pointe (ou uniquement le noyau). Pour eux, le code déprécié est un fardeau. Comment pouvons-nous les aider ?
L'objectif est de déplacer autant de code déprécié que possible vers un plugin système qui est activé par défaut lors de la mise à jour. Cette idée a été utilisée dès la version 1.0 de Joomla et a fonctionné. Avec des avancées telles que l'espacement des noms, l'idée peut être rendue encore plus puissante pour aider à rendre le pouvoir au propriétaire d'un site. Les propriétaires de sites qui savent qu'ils ne dépendent pas de ce code peuvent désactiver le plugin et bénéficier de meilleures performances et d'un code plus propre. Par exemple, nous allons déplacer les alias de classe comme JDatabase (qui n'existe que virtuellement) vers ce plugin système.
Ce plugin a certaines règles quant au moment où il peut être modifié :

  • Le plugin ne contient que le code obsolète de la version majeure précédente.
  • Il ne peut être mis à jour que lorsqu'une nouvelle version majeure est publiée.

Ainsi, avec Joomla 5, le plugin contiendrait toutes les dépréciations (possibles) de Joomla 4, mais aucune dépréciation de Joomla 5.
Lorsque nous publierons Joomla 6, nous supprimerons toutes les dépréciations provenant de Joomla 4 dans le plugin (et s'il en reste) dans le noyau. Nous pourrions alors également déplacer toutes les imprécisions possibles du noyau de Joomla 5 vers le plugin. Lors de la mise à jour vers Joomla 6, le plugin sera réactivé, afin d'assurer une mise à niveau en douceur.
Les nouvelles installations seront livrées avec le plugin désactivé et les développeurs d'extensions pourront, si nécessaire, activer le plugin sur l'installation de leur extension. Lorsque le plugin sera activé, un message dans le tableau de bord backend sera affiché à l'utilisateur pour l'en informer.
Nous avons écouté les craintes de beaucoup que les mises à jour affectent l'adoption de Joomla et rendent la vie des agences web et des développeurs difficile, et nous avons entendu d'autres personnes dire que nous devions rester dans la courbe de la vitesse et de la sécurité. Nous espérons que cette solution permettra de faciliter les mises à jour, de disposer de plus de temps en cas de besoin et d'offrir le paquet le plus récent, le plus rapide et le plus sécurisé à ceux qui en ont besoin.

Documentation

Une question importante pour Joomla est la documentation. Nous avons besoin d'une documentation solide. La production ne peut pas la gérer seule. Nous pouvons diriger et fournir des ressources, mais nous dépendons absolument de l'aide de la communauté pour y parvenir.

  • Nous avons commencé un nouveau projet : manual.joomla.org que nous prévoyons de remplir avec une documentation détaillée et pratique pour le développement d'extensions. Cette année, nous prévoyons d'organiser des sprints communautaires auxquels tout le monde pourra participer pour apprendre à connaître la nouvelle documentation et aider à la remplir de contenu. Nous vous tiendrons au courant.
  • La production a adopté une motion selon laquelle, à partir de maintenant, les nouvelles fonctionnalités ne peuvent être fusionnées que lorsqu'il existe une documentation écrite pour les développeurs (manual.joomla.org) et les utilisateurs finaux (docs.joomla.org).
  • Le code ne peut être déprécié que lorsqu'un guide de migration est écrit pour manual.joomla.org. Cela permettra à toute personne intéressée de suivre ces dépréciations en s'abonnant au référentiel de documentation. Il est possible de fournir des commentaires avant que la dépréciation ne soit finalement effectuée.

Avec l'adoption de nouvelles motions stipulant que la documentation est requise lors de l'ajout de nouvelles fonctionnalités et que le code est déprécié avec des guides de migration, un soutien est également apporté pour aider les développeurs à rédiger leur documentation. Même si l'anglais n'est pas votre langue maternelle ou si l'écriture n'est pas votre point fort, vous pouvez toujours contribuer au code et obtenir de l'aide pour la rédaction de la documentation auprès d'un "Guide de la documentation". Ce "guide ou partenaire de la documentation" vous indiquera des ressources pour rédiger votre documentation, ou vous aidera à rédiger votre documentation.

Pour trouver un partenaire de documentation, contactez le Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser..

Vous êtes doué pour les mots mais pas pour le codage et vous pouvez devenir un partenaire de documentation ? Contactez le Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. et nous vous aiderons à démarrer.
Le développeur, le partenaire de documentation et la communauté bénéficieront d'une documentation plus abondante et de meilleure qualité tout au long du processus de développement. Cela permettra à chacun de comprendre, d'apprécier et d'utiliser les nouvelles fonctionnalités et d'éviter d'utiliser du code obsolète.

Templates/UI

La suite est plus technique et pour ceux qui ne sont pas des développeurs, le résumé est que nous mettons de l'ordre dans les choses afin que les changements fondamentaux aient moins d'impact sur les développeurs de templates.
Lors des discussions sur la nouvelle version, des craintes ont été exprimées quant à la nécessité d'adapter tous les templates à grands frais pour les développeurs. Cela résulte de l'expérience des versions majeures précédentes, qui ont dû casser des templates afin d'améliorer la structure interne.
Heureusement, dans Joomla 4, nous disposons du WebAsset Manager, qui nous permet de limiter ces ruptures dans les futures versions. Nous prévoyons également de tirer un grand avantage de la nouvelle fonctionnalité de Joomla 4 "les templates enfants" pour réduire encore plus la douleur.
L'objectif à long terme est que les templates de base et Cassiopeia soient découplés (autonomes et ne dépendant plus les uns des autres).
Le découplage nous permettrait d'envisager d'avoir un "template bootstrap" comme base de référence où tout le code dépendant du bootstrap est inclus comme une surcharge. Tout ce qui est spécifique au template est déplacé des layouts de base vers Cassiopeia. Cassiopeia devient alors un template enfant de ce nouveau template "bootstrap 5" ou reste autonome avec toutes les surcharges incluses. Il est ainsi possible de créer des templates parents supplémentaires basés sur d'autres frameworks tels que Tailwind ou UIKit.
Pour les concepteurs de templates, cela signifie que leurs personnalisations de mise en page et leurs surcharges deviennent moins sensibles aux changements du CMS et que les surcharges ne doivent pas être reconstruites à chaque nouvelle version majeure.
Le template backend restera sur bootstrap 5 et ne devrait recevoir que des changements mineurs pour améliorer la convivialité.

Un engagement renouvelé envers l'UX

Nous sommes tous conscients que les deux templates de base ont encore des défauts et peuvent être améliorés. C'est pourquoi nous sommes très heureux d'annoncer qu'une nouvelle équipe est en formation : L'équipe Joomla Experience (JXT).
L'objectif de l'équipe est d'améliorer l'expérience globale de l'utilisateur dans Joomla, ce qui inclut également les modèles et bien plus encore. Nous avons tous de grands espoirs que cette équipe nous donnera, en coopération avec l'équipe d'accessibilité de Joomla (JAT), un grand coup de pouce dans la bonne direction.
Nous avons besoin de votre aide ! Nous prévoyons de créer des événements Pizza, Bugs & Fun très prochainement, mais n'hésitez pas à contacter les équipes et à vous impliquer dès maintenant ! Pour progresser, nous avons besoin de nombreux esprits et doigts qui travaillent ensemble.

Nouvelles fonctionnalités

La tâche essentielle d'une version majeure est de fournir de nouvelles fonctionnalités qui n'étaient pas réalisables avec la base de code existante.
Dans le court laps de temps que nous avons pour sortir Joomla 5, nous n'aurons probablement pas toutes les nouvelles fonctionnalités que nous aimerions inclure (comme le multi-domaine). Cependant, Joomla 5 apportera tout ce qui est nécessaire pour les mettre en œuvre dans une version ultérieure, si désiré.
Cela ne doit pas vous empêcher de contribuer vous-même à de nouvelles fonctionnalités. Nous allons également, une fois de plus, bénéficier des fonctionnalités développées pendant le Google Summer of Code, et qui sont presque prêtes, comme l'amélioration de l'optimisation des moteurs de recherche (SEO).
Et qui sait, nous pourrons peut-être réaliser d'autres fonctionnalités... c'est à vous, la communauté Joomla, de décider.

Soutien aux développeurs d'extensions

Nous fournirons un ensemble (complet) de règles Rector à temps pour la première version candidate de Joomla 5 afin de supporter la réécriture automatique du code déprécié. (Rector est un outil de développement relativement nouveau qui peut réécrire du code sur la base d'ensembles de règles). Ces règles seront à la disposition des développeurs d'extensions pour adapter leurs composants, modules et plugins à Joomla 5 par un appel en ligne de commande. Il ne sera probablement pas possible d'éliminer toutes les modifications manuelles mais, avec Rector, elles pourront être réduites au minimum.

Cela ne peut se faire qu'avec votre aide

Nous sommes une grande communauté. Il est bon de rappeler les réalisations de ce projet, les entreprises qu'il soutient et les emplois qu'il fournit. Pour de nombreux membres des équipes, ce sont leurs soirées et leur temps libre qu'ils consacrent au projet, semaine après semaine. Ils veulent, comme tout le monde, que tout se passe bien.
Les articles que nous avons publiés demandaient un retour d'information, puis mettaient en évidence une voie possible.
Nous avons donc dû prendre le temps de distiller, d'affiner et d'approfondir nos recherches afin de recueillir davantage de faits, puis de discuter des solutions aux idées proposées.
C'est un processus qui en vaut vraiment la peine, tout le monde n'obtiendra pas ce qu'il voulait en particulier, mais Production espère qu'avec un travail acharné et la communauté qui se serre les coudes, nous pouvons tous bénéficier de ce dialogue ouvert et utile, que le produit que nous transmettons évoluera vers un produit meilleur, plus élaboré, capable de soutenir les futures générations de sites Web et de constructeurs de sites Web.
Joomla est entièrement bénévole et communautaire. Sans les personnes qui ont été si passionnées par les différentes idées et qui viennent à bord pour transformer les idées en code, cela ne se fera pas. Plusieurs personnes se sont déjà manifestées et ont accepté de former des équipes et de travailler ensemble, ce qui est brillant et inspirant, mais il y a toujours de la place pour plus.
S'il vous plaît, si vous êtes un codeur, un rédacteur de documents, un spécialiste du marketing, ou un utilisateur prêt à tester et à rapporter ce que vous trouvez, contactez-nous via le portail des volontaires et la page Contribuer à Joomla, impliquez-vous et faites passer Joomla au niveau supérieur !