Menu

joomla-bcIn this post, I’m continuing along the theme of backward compatibility, and this time, applying it directly to Joomla – specifically, its release policies – and what this means for extension developers like Digital Peak. Bear in mind that Joomla is open-source, which means that in theory, if you really need backward compatibility, you can always hack the source code yourself to implement whichever functions and behaviours that have changed in successive versions.

Joomla is in the rather curious (but hardly unique) position of being both a software package running on top of a platform (in most cases, the LAMP software stack, but it could equally be the WAMP, WIMP or MAMP stacks), as well as being a software platform of its own. Hence, backward compatibility is required both in respect to the platform it runs on, as well as the extensions that it runs.

Joomla’s Software Platform

While Joomla requires a software stack consisting of an OS, a Web server, a database engine and PHP to run, in practice the OS can be just about any version that will successfully install and run the other 3 components of the stack. Judging from previous data, Joomla is not very concerned with backward compatibility between major releases. For example, sometime between v1.5 and v2.5, Joomla dropped support for IIS6, Apache 1.3, PHP4.x and MySQL 4.x – but it also added support for nginx and SQL Server.

It’s hardly surprising – as a FOSS project, the Joomla project does not itself derive any income from licencing the CMS for commercial (or indeed any other) use, and cannot devote resources to supporting the edge cases. Between 2008 (when 1.5 was released) and 2012 (when 2.5 was released), both IIS6 and Apache 1.3 reached end-of-life (EOL) status (which meant neither would be supported by their respective manufacturers beyond the EOL date), while PHP4.x and MySQL 4.x were EOL even before that. Popular CMSes (and fellow FOSS projects) like WordPress and Drupal also dropped support for PHP4.x and MySQL 4.x around the same timeframe, so Joomla was in good company. From this, it can be inferred that Joomla will likely drop support for a particular component of the stack it runs on shortly after the component’s vendor itself drops support for it.

Joomla As Software Platform

What about the people who develop on or for Joomla, then, like Digital Peak? How does Joomla treat us whenever it updates itself? The current Joomla SDLC is a bit more clear-cut about how it treats backward compatibility. Within any individual major release, Joomla is guaranteed to be backward-compatible. That is to say, it will make no changes to its currently-supported APIs or other public surfaces (config and settings files, for instance). Every major release from 3.x onwards will be supported for a minimum of 4 years, presumably with a period of around 2 years between each major release.

Between major releases, however, Joomla makes no such guarantee. New APIs may be introduced, existing APIs may be deprecated, deprecated APIs may disappear completely, settings may be completely jettisoned. Joomla’s core developers see major releases as opportunities to refactor Joomla’s code, introduce new ground-breaking features and generally get rid of any cruft that may have accumulated.

Implications For Developers And Users

As a Joomla developer, Digital Peak has to be open to the possibility that each extension may need a separate version for each major release of Joomla (and perhaps drop support for older, unsupported releases of Joomla). For users, it is a clear signal that in order to stay supported by Joomla’s core developers, a proper upgrade roadmap needs to be in place. Or pay for 3rd-party support.

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.