Menu
Man waiting for Joomla 5

In this article we give you some insight about the next major release 5.0 of our lovely Joomla CMS. This article doesn't list the new features, it is more about the importance of the first major version after 4.0. 4.0 was one of the most challenging release for end users, site integrators and extension developers, because of the difficult migration process. So the whole world is looking at Joomla, if we learn from the mistakes, made in the past.

When Joomla 4.0 was on full development, the involved people put a lot of effort to make the API changes backwards compatible with the 3.x series. For more or less up to date extensions, it is nowadays possible to use the same code base for Joomla 3 and 4 (and 5, we come to that later). Our flagship extension DPCalendar proves that.

Unfortunately the changes in the UI between 3 and 4 were so big, that most extensions had to rebuild the template files completely. This was a huge challenge for large components and templates, it took them ages to migrate. A side effect was, that many sites had to be rebuild from scratch on Joomla 4, no upgrade was possible. It was hard for agencies to sell that to their clients. Beside the code changes, the release had too many big new features and took too long for development, almost 6 years. Users of Joomla lost faith in the release process, as it is impossible to rebuild a web site on every major release.

Frustration

The project realized that something needs to change and the leadership decided to enforce time based releases. Every two years will be a new major and every 6 months a new feature release published. So, two years after 4.0 we are now waiting for 5.0. Beside that should a clear and better long term deprecation policy relax the tension for extension developers to update their code. But what does that have to do with 5.0? The Joomla project wants to gain back the trust that major updates can be upgrades and no migrations with as less disruptive changes for the eco system as possible. Many other projects have painless major upgrades and a sustainable deprecation policy. So we can do that as well, and 5.0 should be the first version which implements that new way.

Meaning of a new major version

Joomla follows semantic versioning. This is a software release approach where changes of a release version in the first digit represents a new major release with backwards incompatible changes, while the others do not break existing code on update.

The primary purpose of a new major version is NOT to introduce new kickass features. We know, everybody expects that. But it is a misconception. The main target of a major version is to make the software ready for the future as it will stay like that for a longer period of time. For example, the project introduced a new architecture for extensions in 4.0. The old one was outdated and did not meet the minimum requirements of nowadays software standard. Also a lot of base work was done on the Javascript code to make Joomla lightning fast in the browser for the upcoming years.

This process is very important as a software, which adheres to state of the art architecture and technologies, will survive. Everything else comes with the cost that it dies slowly, when no cuts are made from time to time. These cuts are backwards compatibility changes and should be done wisely in a developer friendly way.

Bridge past to future

New deprecation policy

Before we dive into the breaking changes chapter, we want to mention one of the most important changes during the lifetime of Joomla 4. The foundation of every long term software project, which supports integration endpoints and an extendable code base, is a stable deprecation policy. This ensures that external developers have enough time to adapt to the changes.

If the project would follow the normal deprecation policy, then support for legacy extensions, written with the old file structure in a none namespaced way, would be removed in 5.0. This is way too early and the leadership realized that. The motion PROD2022/011 got accepted where a +2 deprecation policy was introduced.

This new policy defines, that code which is marked as deprecated can only be removed in the over next major version. This is at least two years and at max 4 years an extension developer has time to adapt his code. So when something got marked as deprecated in 4.x, the earliest possible version where it can be removed is in version 6.0 and not 5.0 as it was before the motion.

Sandclock, symbolising the running time

What happened with the existing deprecations for 5.0 then? With the release 4.3.0 all of them got changed to 6.0 too. Since that version are all new deprecations made for the target version 6.0 as well, which will be released in October 2025. This means that the deprecated code stays in Joomla till 6.0. For the future, it means every deprecation made in a 5.x version will stay in Joomla till version 7.0. The project will not hesitate to extend specific deprecations when it realizes that there is still too much code out in the wild, which depends on the deprecation.

BC breaks in Joomla 5.0

Joomla 5.0 comes with a new minimum requirement of PHP 8.1.0 and MySQL 8.0.13. This ensures that the project doesn't have to support end of life versions. Keep in mind that every major version has a lifetime of 4 years. For example 4.4 will be supported till October 2025, means that code base needs still to run on PHP 7.2 till then, despite that version is end of life since November 2020. Increasing the minimum requirements will also be part of every new major release in Joomla and can be counted as backwards compatibility break.

5.0 does contain some backwards compatible changes. We list here a few ones, to illustrate the new way that only obsolete stuff get removed:

  • Demo task plugin removal
  • Removal of old legacy Javascript files, written for IE11
  • Inheritance breakup for CMSObject, which got deprecated 11 years ago
  • Codemirror update to version 6
  • Remove a resync function which was only used for the migration from 1.6 to 1.7

A full documentation about all the breaking changes can be found in the manual of Joomla.

Tradeoff between old and new

Changing stuff will always influence existing extensions, while legacy code will not bring any interest to new developers. It is a small path to satisfy the existing user base and to bring the project forward.

Keeping a major series like Joomla 3 alive for over 10 years is too much. Developing a new major version like 4.0 for 6 years is too much. Finding the right software process is a difficult task, but we at Digital peak are sure, that the current release process with all the changes, since 4.0 came out, paves the path for a glorious future of Joomla. Finally a balance was found between stability and going forward, and this is what all comes together with the version 5.0 and makes it so important.

We hope that you are happy about the end result as we are. We found confidence back into the release process of Joomla and will be happy to assist Joomla for the release of 4.4 and 6.0.

Balance

Kind regards

Allon Moritz aka laoneo
Founder of Digital Peak, release manager of Joomla 4.4 and 6.0

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.