User tests: Successful: Unsuccessful:
Pull Request for Issue # .
This pull request (PR) adds 2 new checks to the "Required Settings" checks of the pre-update checker which are shown when an update to the next major version (here 6) is found:
If one of these checks fails, you cannot update to the next major version with Live Update.
You can bypass these tests by using the "Upload & Update" button, but that's already the case with other required settings checks and should be fixed with another PR, if ever.
In addition, this PR adds the same checks to the CLI's core::update
command.
The first check has been agreed by the CMS Maintenance Team.
The plugin has to be disabled before the update so the user can see if the site crashes due to a 3rd party extension like e.g. a system plugin which requires the plugin so it very likely will not work anymore on Joomla 6.
If that happens, the user can enable it again in the database and the site is operable again, e.g. fopr updating or uninstalling that extension.
If we would not do that, the site would break during the update when files are already unpacked but the database has not been updated yet, and that would be fixed not that easy.
The second check is for the case that the admin has disabled the J6 b/c plugin, what one should not do, but we can't really prevent it.
On a current 5.4-dev branch or latest 5.4 nightly build without the changed from this PR applied, make sure that automated updates are switched off and the "Behaviour - Backward Compatibility" plugin is enabled.
In the options of the Joomla Update Component, set the update channel to "Custom URL" and enter the custom update URL of the 6.0 nightly builds: https://update.joomla.org/core/nightlies/next_major_list.xml
Check for updates.
Result: See section "Actual result BEFORE applying this Pull Request" below.
In a command line in your Joomla root folder, run php ./cli/joomla.php core:update
.
Result: See section "Actual result BEFORE applying this Pull Request" below.
Restore the starting conditions described in steps 1 and 2.
Apply the changes from this PR.
Check again for updates.
Result: There are 2 new checks in the "Required Settings" section of the pre-update check.
The first check for the J5 plugin has failed, and a notice is shown with a link to the plugin manager, telling to disable the plugin, and you can not update to Joomla 6 with Live Update.
See first image "1. Both plugins enabled" in section "Expected result AFTER applying this Pull Request" below.
In a command line in your Joomla root folder, run php ./cli/joomla.php core:update
.
Result: There is a new step for checking the pre-conditions for a major update after the dcheck of the database table structure.
It shows an error message telling that the 'Behavior - Backward Compatibility' plugin is enabled and a message that the pre-conditions for a major upgrade are not fulfilled.
See second image "1. Both plugins enabled" in section "Expected result AFTER applying this Pull Request" below.
Disable the "Behaviour - Backward Compatibility 6" plugin.
Check again for updates.
Result: Both checks have failed, and for each of the 2 plugins a notice is shown with a link to the plugin manager, telling what to do with the particular plugin, and you can not update to Joomla 6 with Live Update.
See first image "2. Joomla 5 plugin enabled and Joomla 6 plugin disabled" in section "Expected result AFTER applying this Pull Request" below.
In a command line in your Joomla root folder, run php ./cli/joomla.php core:update
.
Result: The new check shows for each of the 2 plugins an error message with the plugin's translated name and its actual status, and finally a message that the pre-conditions for a major upgrade are not fulfilled.
See second image "2. Joomla 5 plugin enabled and Joomla 6 plugin disabled" in section "Expected result AFTER applying this Pull Request" below.
Disable the "Behaviour - Backward Compatibility" plugin.
Check again for updates.
Result: The second check for the J6 plugin has failed, and a notice is shown with a link to the plugin manager, telling to enable the plugin, and you can not update to Joomla 6 with Live Update.
See first image "3. Both plugins disabled" in section "Expected result AFTER applying this Pull Request" below.
In a command line in your Joomla root folder, run php ./cli/joomla.php core:update
.
Result: The new check shows an error message telling that the 'Behavior - Backward Compatibility 6' plugin is disabled and a message that the pre-conditions for a major upgrade are not fulfilled.
See second image "3. Both plugins disabled" in section "Expected result AFTER applying this Pull Request" below.
Enable the "Behaviour - Backward Compatibility 6" plugin.
Check again for updates.
Result: Both new checks have succeeded, and you could update to Joomla 6.
See first image "4. Joomla 5 plugin disabled and Joomla 6 plugin enabled" in section "Expected result AFTER applying this Pull Request" below.
In a command line in your Joomla root folder, run php ./cli/joomla.php core:update
.
Result: The update is executed.
See second image "4. Joomla 5 plugin disabled and Joomla 6 plugin enabled" in section "Expected result AFTER applying this Pull Request" below.
On a current 5.4-dev branch or latest 5.4 nightly build, make sure that automated updates are switched off.
Apply the changes from this PR.
Edit file libraries/src/Version.php
and change line 50 from public const MINOR_VERSION = 4;
to public const MINOR_VERSION = 3
;.
This will fake the current version to be 5.3 so that an update to a 5.4 nightly can be found.
Go to "Extensions - Manage - Database", select the CMS record and use the "Update Structure" button.
This will apply the faked version from step 3 in the database.
In the options of the Joomla Update Component, set the update channel to "Custom URL" and enter the custom update URL of the 5.4 nightly builds: https://update.joomla.org/core/nightlies/next_minor_list.xml
Check for updates.
Result: The new checks are not shown in the pre-update check as it is not a major upgrade.
See Test 2 in section "Expected result AFTER applying this Pull Request" below.
In a command line in your Joomla root folder, run php ./cli/joomla.php core:update
.
Result: There is no check of the pre-conditions for a major upgrade performed. The update is executed.
See Test 2 in section "Expected result AFTER applying this Pull Request" below.
There is no check about backward compatibility plugins in the "Required Settings" checks of the pre-update checker, and you could update to J6.
When running the CLI core update command, the update is executed.
There is not check for the prerequisites to upgrade to a new major version.
When an update to a new major version has been found, there are 2 new checks shown in the "Required Settings" section of the pre-update check:
When one of these checks of both have failed, you can't update with Live Update.
If both checks succeed, the button to perform the update is shown, so you could perform the update.
In the core:update
command of the CLI there is a new step for checking the pre-conditions of a major upgrade when an update to a new major version was found.
The 2 new checks mentioned above are performed with that new step. If any of the test fails, an error message is shown with the (translated) plugin name, a final message tells that the conditions are not fulfilled, and the update is not performed.
If both checks succeed, the update is performed by the CLI.
If the update which was found is not an upgrade to a new major version, the 2 nex checks are not shown in the pre-update check, and in the CLI the new step for checking the pre-conditions of a major upgrade is not executed.
When an update has been found which is not an upgrade to a new major version, the new checks are not shown in the pre-update check, and in the CLI update the new step for checking the pre-requisites is not executed, i.e. everything works the same as without this PR.
Please select:
Documentation link for docs.joomla.org:
No documentation changes for docs.joomla.org needed
Pull Request link for manual.joomla.org:
No documentation changes for manual.joomla.org needed
Status | New | ⇒ | Pending |
Category | ⇒ | Administration com_joomlaupdate Language & Strings |
Labels |
Added:
Language Change
Release Blocker
PR-5.4-dev
|
Why should I have to enable the j6 compatible plugin. My sites only contain core, no extensions. I don't need to enable the plugin. This requirement makes no sense.
@brianteeman Because we can not know if this is the case when someone updates to J6. Therefore it was decided by the CMS Maintenance Team that it shall be enabled on updates to 6, and the compat6 plugin is enabled by default in Joomla 5, see #45371 . You can later after the update disable in in J6.
P.S.: Even if there are no 3rd party extensions at all, there still can be overrides using classes which were moved into the compat6 plugin in J6, e.g. from the CMS Filesystem stuff, and we can not really check all that.
Crazy
Crazy
@brianteeman If you think making the update as safe as possible for as many users as possible is crazy then I cannot help you.
we are doing something very wrong if a site with only core requires this plugin
we are doing something very wrong if a site with only core requires this plugin
It seems you did not understand my previous comment. It is not needed for the core but for the case someone has 3rd party extensions or overrides which require it.
thank you that pr looks good to me, will test later
I have tested this item β
successfully on 89b2893
Works as expected.
I have tested this item π΄ unsuccessfully on 89b2893
Completely ignores the cli update
@brianteeman Thanks for testing. It seems that there is only the check for database schema in the CLI, all other checks (including those added by this PR) are not there. I wasn't aware of that.
Before I update this PR to work also with the CLI, I will investigate if there are other ways to handle the compatibility plugins.
We might also need to discuss it again in the maintainers team.
I'm setting this PR to draft in the mean time.
@brianteeman Thanks for testing. It seems that there is only the check for database schema in the CLI, all other checks (including those added by this PR) are not there. I wasn't aware of that.
It is a two year old bug
#40444
Ok, we have discussed this PR in the maintainer meeting, and it is ok, so I change back from draft to ready for review.
P.S.: I will see if I can add a check in the CLI in the next days.
Category | Administration com_joomlaupdate Language & Strings | ⇒ | Administration com_joomlaupdate Language & Strings Libraries |
I've refactored this PR to use more general language string names so the language strings can also be used to check other plugins, modified the links in the pre-update check notices so they show the plugin list filtered for the particular plugin, and I've added an additional step to the CLI core update for checking pre-conditions in case of a major upgrade to check the 2 b/c plugins.
@HLeithner Could you test again, also the CLI?
@brianteeman Could you also test again tomorrow?
@Kostelano Maybe you can test, too?
Thanks in advance.
I have not tested this item.
I found the instructions a little confusing at first and did not want to actually update a newly installed test site. The confusing bit was this in the Summary at the start:
It seems you need to set both values for the update to go ahead but reverse the settings to ensure they fail.
Otherwise it is well explained and looks good to me. I would set it to Success except that I did not go through with the update (and now have to go out).
Because I was a bit late with the latest changes on this PR, it will not be in 5.4.0-alpha1
release tomorrow.
But we still need it for 5.4.0-alpha2
.
So human tests are still welcome and needed.
I have tested this item β
successfully on 649c764
Seems OK. I got the blocking messages for major update but not minor update and completed both the major update and the 'fixed' minor update.
I have tested this item β
successfully on 649c764
Works as described!
Status | Pending | ⇒ | Ready to Commit |
RTC
Great test description π
Tested 5.4-dev branch with JBT:
- β Additional tested: With installed PR and disabled 'Behaviour - Backward Compatibility 6' plugin tested manual update by upload Joomla_6.0.0-alpha1-Alpha-Update_Package.zip from administrator backend and it is installing without any checks β Shouldn't the checks also run for installations via file upload?
@muhme Thatβs expected. Read the description of this PR:
You can bypass these tests by using the "Upload & Update" button, but that's already the case with other required settings checks and should be fixed with another PR, if ever.
Labels |
Added:
RTC
|
System Tests already known error 'PHP Warning: Undefined array key "status"' ignored
Status | Ready to Commit | ⇒ | Fixed in Code Base |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2025-05-31 10:51:30 |
Closed_By | ⇒ | muhme |
Thank you for your contribution and thank you to all testers for testing.
Thanks to all testers.
Why should I have to enable the j6 compatible plugin. My sites only contain core, no extensions. I don't need to enable the plugin.
This requirement makes no sense.