Getting extensions ready for Joomla 4
The release of Joomla 4 Beta is getting closer. Reaching this milestone is a crucial moment in the development roadmap of a product, and it means that the stable version is almost there. However, there is still plenty of work to do.
One key feature of Joomla is its extensibility, with thousands of third-party extensions and templates allowing further customization to meet specific needs. This new version of Joomla is a major version, which implies a more significant change in the compatibility of extensions.
To hear first-hand an extension developer approach, we talked with Geraint Edwards, YourSites lead developer.
First of all, we are very grateful for giving us your time in answering these questions.
What will happen with the extensions when J4 is released? Will they be compatible or will the developers have to provide complete new versions?
It is likely that most extensions will need to be updated to varying degrees to make them compatible with Joomla 4. For many ‘straightforward’ extensions this isn’t a particularly difficult exercise and, from my experience, it's feasible to make a single version of an extension compatible with both Joomla 3.9 and Joomla 4.0. Joomla 3.0 has flagged many classes, methods and functions as deprecated and the suggested replacements often work in Joomla 3 and 4 - so the need to version-specific code is limited.
What should users do when they migrate to J4 with the extensions? What they should expect from their extension providers?
Users need to research ahead of time to know if the extensions they use are compatible with Joomla 4. Joomla 3.10 and 4.0 have pre-upgrade compatibility checks built-in and YourSites (our site management extension) allows you to perform these checks across all your client sites, even if they are running Joomla 3.9. We also let users know if there is a version of the extension that is compatible with BOTH Joomla 3.x and 4.0.
A point of attention is, though, that these tools in Joomla and YourSites rely on the information provided by extension developers from their update server. This can be out of date or completely missing and could give users a false sense of security that a version of an extension will work in both Joomla 3.9 and 4.0.
One problem users may encounter is if an extension or template version requires a different version for Joomla 3.x and 4.0. Should they upgrade Joomla first OR the extension first? In my opinion, each extension provider should give their users detailed migration/upgrade instructions explaining which versions are compatible with which version of Joomla.
When it comes to the process of upgrading Joomla and the installed extensions it will be essential for users to create a clone of their site and test out the upgrade process there first! One thing that extension and template developers will not be able to help users with is migrating any template overrides they may have in place - this is where testing on a cloned site and running a side by side comparison is so important!
Finally, this upgrade may be the ideal time to review the extensions that users have installed on their sites and remove the ones they don’t need and consider using core Joomla features that could replace some extensions they have installed. For example, the use of template overrides or a virtual template override tool like EasyLayouts alongside Joomla custom fields can eliminate the need for many page builders or CCK extensions.
As a developer, is it necessary to start working on the update as soon as possible?
Joomla 4 has now reached sufficient maturity that extension developers should be working on updating their extensions as a matter of urgency. Most of the core functionality is now there and the underlying architecture is no longer changing.
We have found that using the backwards compatibility documentation searching for deprecated function calls, using some sort of a Joomla namespace checker such as Joomla Namespace Checker (JNSC), combined with a side by side functionality check and search/replace in the code works well.
How the different types of versions impact on the update of extensions (Alpha, Beta, RC)
The development of Joomla 1.5, many years ago, taught us a painful lesson. We had spent a lot of time early on making sure we would be ready to support Joomla 1.5 and the ground was taken from under our feet repeatedly from significant structural changes in the code. For Joomla 4 we have therefore concentrated on making sure we would be able to accommodate the underlying code architecture, working on the proof of concept tests rather than migrating the whole of our codebase.
Additionally, for some of our extensions (e.g. YourSites and EasyLayouts) we have been unable to finalise our code updates because these extensions use parts of Joomla that had not been updated in Joomla 4 until recently or that they relied on low-level Joomla functionality that we needed to make sure would not be changed.
We are now working full stream on code updates and already have code released (or soon to be released) that is compatible with current overnight builds of Joomla 4,
As an extension developer, how do you expect the launch of J4 to impact your business?
We are taking the opportunity of the J4 launch to reinvigorate our product line and bring them up to date with the latest web standards and design expectations.
Additionally, the launch of J4 should provide a platform to offer more sophisticated functionalities that were not possible in J3 because of the need to support very old browser and server software.
Please, note that the recommendations of JNSC are only suggestions for Joomla 4.
Classes such as JTable, JPlugin, JPluginHelper, JFactory, JPluginHelper and JFactory are NOT going to be removed until Joomla 5.
For further information on the list of classes and the version of deprecation, check the file libraries/classmap.php.