Joomla 4.4.x to 5.x Planning and Upgrade Step by Step

From Joomla! Documentation

WARNING BLOCK This guide assumes you are starting with Joomla 4.4.x. If you are on an earlier version, make sure you migrate or update to Joomla 4.4.x prior to upgrading to Joomla 5.x. /WARNING BLOCK

Introduction

Good news for Joomla 4.4.x to 5.x, it’s an upgrade, not a migration. Why? Two main reasons:

  1. Joomla 4 (J4) extensions that have removed all deprecations of code and are using up-to date Joomla code, will work in Joomla 5 (J5)
  2. Most others will work with the new Behaviour - Backward Compatibility Plugin enabled

This documentation reflects the simpler process by combining the planning and step by step in one document. Still, you will need some skills. Please see the Self Assessment to determine if you should or shouldn’t tackle the upgrade yourself.

INFO BLOCK Helpful links for third-party extension developers https://manual.joomla.org/migrations/44-50/removed-backward-incompatibility https://manual.joomla.org/migrations/44-50/new-deprecations https://manual.joomla.org/migrations/ /INFO BLOCK

Planning 4.4.x to 5.x

Hosting/Technical specification

1. Determine if your hosting environment meets the requirements.

You will not be able to upgrade to Joomla 5 if your server environment does not meet the technical requirements. The option to upgrade will not appear in the Joomla Update component.

  • Minimum PHP8.1
  • MySQL 8.0.13
  • MariaDB 10.4.x (testing has shown that J3, J4, and J5, are compatible with MariaDB 10.4.x)

You can check your system information in Joomla 4 site by clicking System -> System Information. Contact your hosting provider if your server doesn’t meet the requirements.

PLANNING IMAGE FILE NAME System-Information.png (coming soon)

The following is an example of an environment that meets the technical requirements. It shows mysql 8.0.34, PHP8.1, and Joomla 4.4.x.

PLANNING IMAGE FILE NAME Good-System-Information.png (coming soon)

2. Check all of your extensions for compatibility with Joomla 5

There are a number of third-party extension scenarios for this upgrade.

  1. The extension may be compatible with both J4 and J5 without the use of the backward compatibility plugin.
  2. The extension may be compatible with both J4 and J5 WITH the use of the backward compatibility plugin.
  3. The extension may appear to work in J5, but when you try to use it, it’s broken.
  4. The extension may break the entire site.

Don’t worry! It’s not as bad as it sounds! First let’s talk about the backward compatibility plugin.

The Backward Compatibility Plugin

The Behaviour - Backward Compatibility Plugin is an attempt to allow third-party extensions to use classes no longer included in Joomla 5.

PLANNING IMAGE FILE NAME Backward-Compatibility-Plugin.png

When performing an upgrade from J4.4.x to J5, the backward compatibility plugin will be enabled automatically. New installations of J5 the backward compatibility plugin will be enabled by default.

The backward compatibility plugin that supports extensions that work in J4 will be in place through J5. In J6, the J4 extensions will not be made backward compatible with the plugin. This gives extension developers two additional years to make their extensions compatible with J5 without the backward compatibility plugin. The intention is that with every life cycle release, a backward compatibility plugin will support the life cycle before it until the life cycle after it.

Can you ever disable the backward compatibility plugin in J5? Great question. After determining that every single one of your third-party extensions are compliant and fully functional without the backward compatibility plugin enabled, you can disable the backward compatibility plugin. That said, we recommend using caution. Before you disable the backward compatibility plugin, doing one of the following two things is suggested:

  1. Do it on a dev/test site. That way, if you accidentally missed one extension that makes your backend inaccessible, it doesn’t take your production site down.
  2. Make sure you have access to the db. That way, you can enable the plugin again quickly if needed. More about this below.

Pre-update check vs. System -> Manage Extensions

Theoretically, the pre-update check would tell you if your third-party extensions are compatible with J5. However, the pre-update check is only helpful if all extension developers have made their extension reflect compatibility with their extensions. In a perfect world, the Extensions portion of the pre-update check would tell you if an extension either:

  • Can be upgraded without the backward compatibility plugin enabled
  • Can be upgraded with the backward compatibility plugin enabled
  • If an update to the extension is required before upgrading from J4 to J5
  • If an extension is incompatible completely

Testing has shown discrepancies between extensions that are compatible and are not compatible. This isn’t an issue with the pre-update check component. Rather, extension developers send information through their extensions which would populate the pre-update check correctly. If their extensions aren’t coded to tell the pre-update check the correct information, there’s very little (nothing) the pre-update check nor the Joomla! Project can do about it. A good source of information would be the third-party extension developer’s website to verify how the specific extension should be handled during the upgrade from J4 to J5.

The image below shows an example of the pre-update check component in Joomla 4.4.x of the Extensions section.

The top section will show the extensions that require an update. Please go to System -> Update -> Extensions and update your extensions.

The middle section shows extensions that the update information is unavailable from the extension developer. You will not know if these are compatible or not without testing them or contacting the developer.

The bottom section shows the extensions that have no update required. This means that the extensions are telling Joomla that they are compatible with Joomla 5. It is not specified if they require the backward compatibility plugin or not.

Please note that these extensions are not preferred by the CMS Release Team. These extensions are shown as an example only. They were randomly picked from the JED as a test.

I'm nowhere near done. To be continued. Thanks for your patience.