Getting extensions ready for Joomla 4 - Marco Biagioni (J! Extensions Store)
While the development of the new major version of Joomla, the 2nd most used CMS worldwide, is in progress, the Joomla Community Magazine is continuing interviewing Joomla extensions developers to understand their own path towards Joomla 4. This month we had the chance to interview Marco Biagioni, the man behind J! Extensions Store, a renowned brand in the Joomla sphere, with its flagship JSitemap Pro extension.
We are grateful for Marco's time and commitment in this interview.
What will happen with your extensions when Joomla 4 is released? Will they be compatible or will the developers have to provide complete new versions?
We have rewritten all our extensions on the new Joomla 4 framework and architecture. Our philosophy has always been to provide a specific package to target each Joomla major release, so we will continue to distribute a separate package for Joomla 4.x, 3.x, 2.5 and so on. In this way we can be sure that each package is optimized for a specific Joomla version and that is compatible with all minor releases of the same branch. I know that the purpose of the Joomla team would be to deliver extensions that are compatible with both Joomla 3.10 and 4.x, but this is feasible only in an ideal world in which everyone updates Joomla to the latest release, but not in a real world. Indeed providing extensions that are compatible with Joomla 3.10 and 4.x would mean to break compatibility with older versions such as Joomla 3.8, and sadly it’s not possible to assume that everyone updates websites to the latest Joomla version. When someone installs one of our extensions that is marked as Joomla 3 compatible, he/she expects that it will run on every Joomla 3.x version. We have been contacted many times in the past just because of small compatibility issues within the same Joomla 3.x branch, and we discovered it was due to websites still running 3.1, 3.2 or similar old versions; there are websites that have been never updated out there. In the same way we received pre-sales questions about the compatibility with Joomla 3.6 or 3.7 for websites that couldn’t be updated for various reasons; if our extensions weren’t be compatible we would have lost a sale and a customer, unfortunately maintaining a code base that is compatible with both Joomla 3.1 and 4.x is not possible.
What should users do when they migrate to J4 with your extensions? What they should expect from you as an extension provider?
We have also planned a smooth upgrade path for our extensions.
Users have to migrate their websites to Joomla 4 and after that, when opening one of our extensions, they will be prompted to update it installing the package for Joomla 4. It will be possible to simply upload and install the Joomla 4 package to overwrite the previous one and preserve all settings and configuration.
It’s to be expected that upgrading a website with third-party extensions installed from Joomla 3 to Joomla 4 will cause unpredictable results and most probably PHP errors that may no longer make the website work. Indeed it’s enough having a system plugin installed that uses an old and removed Joomla API to cause a PHP fatal error across both frontend and backend.
For this reason it’s strongly recommended that all providers will test their extensions releasing updates to avoid these situations as much as possible, and obviously site owners must make a backup and work in a test area before going to upgrade a production website. Most probably the ease of this process will be crucial for the future of the CMS, if users will have to face a painful migration even this time like for previous major releases, it’s likely the Joomla market share will continue to go down.
As a developer, it is important to start working on the update as soon as possible?
Of course, this is fundamental especially if a developer has complex extensions.
For this reason we started to rework our extensions for Joomla 4 since 2015 when the first concept of Joomla 4 was born, thus following its development till today and gradually rewriting our code to use the new APIs introduced in the new Joomla 4 framework such as: the Service Provider, the Web Assets manager, the new MVC, the integration with Workflows and much more.
We have always been focused on the quality of our products, preferring to provide paid extensions with top features and a professional support, indeed developing extensions for Joomla is our main daily job. All our extensions are continuously developed and tested against the latest Joomla and PHP release, at the time of writing we have already started to update our code for the next generation of PHP 8 that is scheduled for the end of 2020.
How the different types of versions impact on the update of extensions (alpha, beta, RC)
An alpha phase is still subject to breaking changes being part of an active development, it’s the perfect moment for the introduction of new features and major architectural changes. During the 12 alpha versions of Joomla 4 our extensions often broke and required updates to the source code such as the adoption of Bootstrap 4, the new MVC, the DI container, etc. This has been the period during which the source code of our extensions have been totally refactored.
Given that the beta stage has been reached, we expect that breaking changes won’t happen anymore and that the current source code will continue to work even on the stable release. The beta phase is the perfect moment to test the code that should be considered the ‘definitive’ one. During the beta releases both extensions developers and the Joomla Production Department are strongly encouraged to work together to ensure that all bugs and B/C issues can be found and addressed as soon as possible.
The RC has to be considered the definitive version and should only be useful to identify small bugs. For the reasons explained above we hope that most of the work with our extensions has now been done.
How do you expect the launch of J4 to impact your business?
We hope that Joomla 4 will give a boost to this powerful platform and project, making it possible to regain a bit of market share that has been lost in favour of WordPress in the past years. The amount of work will likely increase as many people will take advantage of the new version to rebuild and update existing websites. Having extensions ready and compatible with Joomla 4 is a crucial aspect of the business for an extensions developer, customers should be able to find extensions they are used to and compatible with Joomla 4 as early as possible to avoid losing them. If an extension is not compatible with Joomla 4 when the stable release will be available, it’s likely that people will look for another solution.