The New Joomla 2.5 to 3 Pre-update Check

Joomla 3 UpdatesOver the last two years, Joomla! has been working really hard to make it easier to update to the next Joomla version (for example, from 2.5 to 3.0).

Joomla has been able to do this through its smaller, more manageable releases and through its relatively new (since Joomla 1.6) one-click updater. The one-click upgrader is now quite mature and has proven itself to be very reliable.

However, a major improvement is coming soon. Joomla will soon provide a check to make sure your updates are always done safely and securely.

Why check before updating?

At the moment, Joomla does not do any checks to see if your site is ready to update. This is also true with other CMSs, but Joomla wants to take the lead on this.

Why is it a problem if no checks are done?

Simply said, when you update you could accidentally break your site. This could if your server environment, your extensions or your template are not compatible with the new version. In order to be sure that they are compatible, you have to manually go through each extension as well as through all the technical requirements for the next version. Many new users don't realize this and one-click to their own peril.

The new pre-update check

Wouldn't it be nice if Joomla had a pre-update check that checked for system compatibility, as well as extension compatibility all in one area before you upgrade?

Guess what. It's coming to a Joomla version near you. A team of Joomla enthusiasts got together and built a pre-upgrade check for the Joomla core and for custom extensions. We're also making it more flexible for custom extension developers to mark their extension compatibility and we hope to have it ready in time for Joomla 2.5.10.

Our goal is to make it as easy as possible for Joomla 2.5 users to go to Joomla 3, whenever they decide to make the transition. There's certainly no rush to update (as Joomla 2.5 will be supported through at least 2014), but just know that you'll have a pre-upgrade check available to you, should you need it.

All right, now for the exciting part, the preview. There's actually nothing secret about it, as the discussion and repository are both publicly available at https://groups.google.com/d/topic/joomla-dev-cms/eIGjGvSUZ3A/di and https://github.com/nicksavov/joomla-cms, respectively. So if you'd like to read up on it (forewarning: it's a very long discussion) or download it and play around with it, you're more than welcome to and even encouraged to do so. I'lll add some advanced instructions at the bottom of this page if you want to test it yourselves. For those that want a sneak peek, read on.

Joomla without the pre-update check

This screenshot is what the current update looks like. The update is made immediately with no checks done.

media_1357653890744.png

Joomla with the pre-update check

The below screenshot is what part of the new pre-update check looks like:

media_1357654132709.png

We disable the "Install the update" button

If there's an incompatible setting or extension or if there's a missing compatibility tag, we disable the Install the update button to prevent accidental upgrading and to also let the user know to check the warnings.

media_1357654407800.png

If you feel confident that everything is ready in spite of the warnings, you override the safety-lock by clicking on the "Enable the update" checkbox. 

media_1357654352451.png

Compatible extensions

All the extensions are organized into tabs of compatibility. Clicking on the "Compatible" tab lists all the extensions that the extension developers have specified are compatible.

media_1357670948035.png

Non-compatible extensions

Clicking on the "Not Compatible" tab lists all the extensions that the extension developers have specified are not compatible. You should consult with the extension developer's documentation and/or support concerning these, as there may be specific upgrade instructions.

media_1357671007890.png

Missing compatibility tags

Clicking on the "Missing Compatibility Tag" tab lists all the extensions that have no compatibility tag. These should be treated as "unknowns".

media_1357671051423.png 

Advanced: How to test the pre-update check

  1. Go to https://github.com/nicksavov/joomla-cms/
  2. Click Zip
  3. Install it as you normally would Joomla
  4. Go to Administrator >> Component >> Joomla! Update
  5. Options >> Update Server >> Short Term Support >> Save & Close
  6. Go to Extensions >> Extension Manager >> Update >> Purge cache
  7. Go to  Component >> Joomla! Update
  8. You should see the code that we have so far for the pre-upgrade check

Here are sample compatibility tags to the extensions' XML files.

<compatibilities>
<compatibility with="joomla">
<include>
<versions from="2.5" />
</include>
</compatibility>
</compatibilities>

If you have any questions or feedback, leave a comment below.

Special thanks

Special thanks from me goes out to:

  • The guys from YouJoomla for taking first coding step of faith with me in this project and seeing the value of this project. They wrote almost all the initial code.
  • The guys from Cloudaccess.net who provided the initial design work for me as a proof of concept.
  • Nicholas from AkeebaBackup who provided much of the code too.
  • Andrew Eddie who has volunteered to code the new version compatibility check as well as the unit tests.
  • Everyone who helped with testing, provided feedback, and an assortment of other important contributions.