The problems with the update checker stem from the fact that the people who implemented it only work in sterile, brand new sites. They have no idea about how messy real world sites are.
As I said in the article I already linked you to, in THEORY it should work because it checks the update information of the installed packages. In THEORY every sub–extension of the package has a record in the #__extensions table which includes the extension ID of the package it belongs to.
And then we have the reality.
If someone used install from directory or discover to install each sub–extension separately this link does not exist.
If these sub–extensions were installed before there was a package extension for Joomla this link does not exist. This can easily happen with our extensions if you have a site that you have been continuously maintaining since before 2014 when we released the first versions of our software as Joomla package extensions. THIS IS WHAT MOST OF OUR CLIENTS WILL EXPERIENCE AND WHAT I REPEATEDLY REPORTED TO JOOMLA — but why listen to someone who has real world experience when their clean room tests come up fine?
In both cases, installing the package extension DOES NOT fix the issue. Joomla updates the sub–extensions WITHOUT updating the package assignment.
The update information is stored in Joomla's #__update_extensions and #__update_sites tables. However, when a developer provides a new update site Joomla doesn't remove the old one. The extension has two update sites and it's anyone's guess which one will be used since they both have the same priority. This can only be fixed by rebuilding update sites but there is no indication that this is the root cause.
The update file may not be able to be downloaded for a myriad of reasons such as the host having compiled PHP against an old OpenSSL version which does not understand modern SSL certificates, DNS resolution issues on the side of the host, a firewall on the host's side etc.
Even when everything goes well it's possible that Joomla will report an extension as incompatible / needs update if a new version exists for the target CMS version of the update. So, if a developer provides version X which is compatible with Joomla 3 AND 4 and another, newer version Y which is only compatible with Joomla 4 it's possible that version X will appear as incompatible even though it's explicitly stated as compatible.
If nothing of that happens Joomla will STILL tell you that our extensions have potential update issues just because they include plugins. Again, something that ALL of our clients will experience and I reported to Joomla repeatedly.
This feature cannot work until Joomla fixes a number of issues:
- Installing a package MUST fix the assignment of included sub–extensions, even if they were already installed on the site.
- Installing an extension which has a different set of update sites MUST replace existing update sites. This is far harder than it sounds because of download keys (the extra_query field of the #__update_sites table).
- When Joomla cannot download the update information it needs to provide information that a user can understand instead of “Failed to download update information for Extension X (such and such URL)” which means absolutely sod all to the average Joomla user.
- Linked to the above, the reason the update information cannot be downloaded should be explicitly stated instead of implying that the developer is at fault.
- Joomla MUST NOT report all extensions with plugins as potential update issues. I understand that always–loading plugins can cause a problem. Add a generic message at the top of the page, for Christ's sake! Slandering those of us who take extreme care to make sure that our always loading plugins don't cause problems more frequently than once in a decade (that's once in over 400 version updates across all extensions!) is borderline illegal.
Until these items are fixed the pre–update check is counterproductive. It slanders developers, the same developers who contribute to Joomla itself. If it puts us out of business Joomla no longer gets developed, no longer has usable software anyway and nobody uses it. It's a suicidal route. A few users will be scared into NOT updating their sites. In turn, this means they are running vulnerable sites which will get hacked and they will rightfully blame Joomla for that, therefore they are never to use Joomla again. For the majority of users it will have the effect of tiring them out and teaching them to ignore the useless pre–update checks. In the unlikely event something breaks they will be treated as idiots which drives them away from Joomla.
This feature needs to be rolled back. It is so obvious to anyone who has managed real world sites.
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!