No Code Attached Yet
avatar brianteeman
brianteeman
11 Oct 2023

Steps to reproduce the issue

On a joomla 4.4 site set the update server to https://update.joomla.org/core/nightlies/next_major_list.xml

Install a variety of extensions and run the pre-update check

image

targetplatform name="joomla" version=".*" (rsform)
targetplatform name="joomla" version="((4)|(5.(0|1|2|3|4|5|6|7|8|9)))" (dpattachments)

image

targetplatform name="joomla" version="((3.(10|11))|(4))" (dpcalendar)
targetplatform name="joomla" version="((3.(8|9|10|11))|(4.(0|1|2|3)))" (acf)

Issue

No matter what I try I cant see a way for me to declare that an extension is NOT compatible with joomla 5

Is that not supported?
If it is supported what is the way to declare an extension as not compatible with joomla 5 in the update checker.

for example I hjave some tinymce 5 based plugins that will crash joomla 5 as it uses tinymce6 and I would expect there to be a way for me to mark the extension as not compatible and should be removed before update

System information (as much as possible)

Additional comments

avatar brianteeman brianteeman - open - 11 Oct 2023
avatar joomla-cms-bot joomla-cms-bot - change - 11 Oct 2023
Labels Added: No Code Attached Yet
avatar joomla-cms-bot joomla-cms-bot - labeled - 11 Oct 2023
avatar rabidgrowth
rabidgrowth - comment - 11 Oct 2023

Me too! Your problem is one problem from two I come here to say.

I make small plugins for clients. I putted targetplatform="(4.(1|2|3|4|5|6|7|8|9|10))". I copy this trick from JCE, heh. Your problem happen for me also with joomla 4.4. He says "update information unavailable". Not can stop clients upgrade to joomla5. If they upgrade, boom.

Hope he fix before joomla6.

avatar richard67
richard67 - comment - 11 Oct 2023

If an update is compatible or not is determined by the targetplatformversion of the update site’s extension.xml. There is no way for the user to change something on that.

avatar rabidgrowth
rabidgrowth - comment - 11 Oct 2023

I know the way targetplatform work. I think. My targetplatform says joomla 4 is only compatible, no? Problem: with my targetplatform joomla says "Update Information Unavailable". He not says "no compatible". How user knows extension is no compatible, don't upgrade, site go boom? I don't see.

avatar brianteeman
brianteeman - comment - 11 Oct 2023

If an update is compatible or not is determined by the targetplatformversion of the update site’s extension.xml.

That is the entire point of this. There is no way to say an extension is NOT compatible in the update site’s extension.xml

avatar alikon
alikon - comment - 12 Oct 2023

There is no way to say an extension is NOT compatible in the update site’s extension.xml

let me disagree

there is already , i mean instead of "No Comaptibility information" -> "Not Compatible"

avatar brianteeman
brianteeman - comment - 12 Oct 2023

Please show me how to do that as I have tried everything I can think of

avatar PhocaCz
PhocaCz - comment - 12 Oct 2023

Copied from the discussion:
Please take the following with a grain of salt as it is based on total ignorance of the update process.

If I understood correctly, we would need three results instead of two.

At the moment everything is probably checked via the preg_match function and it returns only two possible results: True or False. So, if the check is: 4.[01234]|!5.* (and for the sake of example we take that condition as valid), then False will be valid for two variants:

FALSE:
(a) the number was not found (4.[01234])
(b) the number is found, but we want the opposite, to exclude it (!5.*)
TRUE:
(a) the number was found

and since the PHP function only fractions TRUE/FALSE, one extra condition would have to be split into two. In the case of false, it would still check whether the version was not found or was found and marked for exclusion. This is a difficult task to get information from the regex about whether it returned false because it didn't find the version, or because it did find it but it was marked for exclusion. Because it returns true or false.

One could simplify everything with the targetplatformexclude parameter. Probably the condition should be tested before targetplatform.

avatar brianteeman brianteeman - change - 21 Nov 2023
Status New Closed
Closed_Date 0000-00-00 00:00:00 2023-11-21 18:28:24
Closed_By brianteeman
avatar brianteeman brianteeman - close - 21 Nov 2023

Add a Comment

Login with GitHub to post a comment