User tests: Successful: Unsuccessful:
Pull Request for Issue #28527
Related pr #28462
protected
and locked
state.protected
and locked
entries were erroneously inverted.J4: Updates from nightly builds that were installed AFTER merge date of pr #28462 ARE NOT possible for correct tests.
Not guaranteed: Older installations are perhaps updateable with the custom updateserver mentioned on the download page of this pr.
See testing instructions in pr #28462
See also comment #28563 (comment) below: "A good test of this PR would be to make a new installation..." and so on.
If somebody disagrees please add a short comment why.
I know that it's stupid to deactivate this or that in a pure core Joomla but from my point of view developers should have a chance to deactivate more than in the past when they want to replace core functionalities. Decisions like that (protected yes or no) are always a double-edged sword.
Hint: This list does not have a locked
column because all core extensions are locked=1.
It contains a client_id
column to differentiate between FE and BE extensions with the same name; e.g. mod_custom.
Last update: 2020-04-14.
extension_id | name | type | client_id | protected |
---|---|---|---|---|
1 | com_wrapper | component | 1 | 0 |
3 | com_banners | component | 1 | 0 |
7 | com_contact | component | 1 | 0 |
16 | com_newsfeeds | component | 1 | 0 |
21 | com_redirect | component | 1 | 0 |
23 | com_finder | component | 1 | 0 |
25 | com_tags | component | 1 | 0 |
26 | com_contenthistory | component | 1 | 0 |
29 | com_fields | component | 1 | 0 |
30 | com_associations | component | 1 | 0 |
31 | com_privacy | component | 1 | 0 |
32 | com_actionlogs | component | 1 | 0 |
34 | com_csp | component | 1 | 0 |
38 | mod_articles_archive | module | 0 | 0 |
39 | mod_articles_latest | module | 0 | 0 |
40 | mod_articles_popular | module | 0 | 0 |
41 | mod_banners | module | 0 | 0 |
42 | mod_breadcrumbs | module | 0 | 0 |
43 | mod_custom | module | 0 | 0 |
44 | mod_feed | module | 0 | 0 |
45 | mod_footer | module | 0 | 0 |
46 | mod_login | module | 0 | 0 |
47 | mod_menu | module | 0 | 0 |
48 | mod_articles_news | module | 0 | 0 |
49 | mod_random_image | module | 0 | 0 |
50 | mod_related_items | module | 0 | 0 |
51 | mod_stats | module | 0 | 0 |
52 | mod_syndicate | module | 0 | 0 |
53 | mod_users_latest | module | 0 | 0 |
54 | mod_whosonline | module | 0 | 0 |
55 | mod_wrapper | module | 0 | 0 |
56 | mod_articles_category | module | 0 | 0 |
57 | mod_articles_categories | module | 0 | 0 |
58 | mod_languages | module | 0 | 0 |
59 | mod_finder | module | 0 | 0 |
60 | mod_custom | module | 1 | 0 |
61 | mod_feed | module | 1 | 0 |
62 | mod_latest | module | 1 | 0 |
63 | mod_logged | module | 1 | 0 |
64 | mod_login | module | 1 | 0 |
65 | mod_loginsupport | module | 1 | 0 |
66 | mod_menu | module | 1 | 0 |
67 | mod_popular | module | 1 | 0 |
68 | mod_quickicon | module | 1 | 0 |
69 | mod_frontend | module | 1 | 0 |
70 | mod_messages | module | 1 | 0 |
71 | mod_post_installation_messages | module | 1 | 0 |
72 | mod_user | module | 1 | 0 |
73 | mod_title | module | 1 | 0 |
74 | mod_toolbar | module | 1 | 0 |
75 | mod_multilangstatus | module | 1 | 0 |
76 | mod_version | module | 1 | 0 |
77 | mod_stats_admin | module | 1 | 0 |
78 | mod_tags_popular | module | 0 | 0 |
79 | mod_tags_similar | module | 0 | 0 |
80 | mod_sampledata | module | 1 | 0 |
81 | mod_latestactions | module | 1 | 0 |
82 | mod_privacy_dashboard | module | 1 | 0 |
83 | mod_submenu | module | 1 | 0 |
84 | mod_privacy_status | module | 1 | 0 |
86 | plg_authentication_ldap | plugin | 0 | 0 |
87 | plg_content_contact | plugin | 0 | 0 |
88 | plg_content_emailcloak | plugin | 0 | 0 |
89 | plg_content_loadmodule | plugin | 0 | 0 |
90 | plg_content_pagebreak | plugin | 0 | 0 |
91 | plg_content_pagenavigation | plugin | 0 | 0 |
92 | plg_content_vote | plugin | 0 | 0 |
93 | plg_editors_codemirror | plugin | 0 | 0 |
95 | plg_editors_tinymce | plugin | 0 | 0 |
96 | plg_editors-xtd_article | plugin | 0 | 0 |
97 | plg_editors-xtd_image | plugin | 0 | 0 |
98 | plg_editors-xtd_pagebreak | plugin | 0 | 0 |
99 | plg_editors-xtd_readmore | plugin | 0 | 0 |
100 | plg_system_languagefilter | plugin | 0 | 0 |
101 | plg_system_cache | plugin | 0 | 0 |
102 | plg_system_debug | plugin | 0 | 0 |
103 | plg_system_log | plugin | 0 | 0 |
104 | plg_system_redirect | plugin | 0 | 0 |
105 | plg_system_remember | plugin | 0 | 0 |
106 | plg_system_sef | plugin | 0 | 0 |
107 | plg_system_logout | plugin | 0 | 0 |
108 | plg_user_contactcreator | plugin | 0 | 0 |
109 | plg_user_joomla | plugin | 0 | 0 |
110 | plg_user_profile | plugin | 0 | 0 |
111 | plg_extension_joomla | plugin | 0 | 0 |
112 | plg_content_joomla | plugin | 0 | 0 |
113 | plg_system_languagecode | plugin | 0 | 0 |
114 | plg_quickicon_joomlaupdate | plugin | 0 | 0 |
115 | plg_quickicon_downloadkey | plugin | 0 | 0 |
116 | plg_quickicon_extensionupdate | plugin | 0 | 0 |
117 | plg_captcha_recaptcha | plugin | 0 | 0 |
118 | plg_system_highlight | plugin | 0 | 0 |
119 | plg_content_finder | plugin | 0 | 0 |
120 | plg_finder_categories | plugin | 0 | 0 |
121 | plg_finder_contacts | plugin | 0 | 0 |
122 | plg_finder_content | plugin | 0 | 0 |
123 | plg_finder_newsfeeds | plugin | 0 | 0 |
124 | plg_finder_tags | plugin | 0 | 0 |
125 | plg_twofactorauth_totp | plugin | 0 | 0 |
126 | plg_authentication_cookie | plugin | 0 | 0 |
127 | plg_twofactorauth_yubikey | plugin | 0 | 0 |
128 | plg_system_updatenotification | plugin | 0 | 0 |
129 | plg_editors-xtd_module | plugin | 0 | 0 |
130 | plg_system_stats | plugin | 0 | 0 |
131 | plg_installer_packageinstaller | plugin | 0 | 0 |
132 | plg_installer_folderinstaller | plugin | 0 | 0 |
133 | plg_installer_urlinstaller | plugin | 0 | 0 |
134 | plg_quickicon_phpversioncheck | plugin | 0 | 0 |
135 | plg_editors-xtd_menu | plugin | 0 | 0 |
136 | plg_editors-xtd_contact | plugin | 0 | 0 |
137 | plg_system_fields | plugin | 0 | 0 |
138 | plg_fields_calendar | plugin | 0 | 0 |
139 | plg_fields_checkboxes | plugin | 0 | 0 |
140 | plg_fields_color | plugin | 0 | 0 |
141 | plg_fields_editor | plugin | 0 | 0 |
142 | plg_fields_imagelist | plugin | 0 | 0 |
143 | plg_fields_integer | plugin | 0 | 0 |
144 | plg_fields_list | plugin | 0 | 0 |
145 | plg_fields_media | plugin | 0 | 0 |
146 | plg_fields_radio | plugin | 0 | 0 |
147 | plg_fields_sql | plugin | 0 | 0 |
148 | plg_fields_text | plugin | 0 | 0 |
149 | plg_fields_textarea | plugin | 0 | 0 |
150 | plg_fields_url | plugin | 0 | 0 |
151 | plg_fields_user | plugin | 0 | 0 |
152 | plg_fields_usergrouplist | plugin | 0 | 0 |
153 | plg_fields_subfields | plugin | 0 | 0 |
154 | plg_content_fields | plugin | 0 | 0 |
155 | plg_editors-xtd_fields | plugin | 0 | 0 |
156 | plg_sampledata_blog | plugin | 0 | 0 |
157 | plg_system_sessiongc | plugin | 0 | 0 |
158 | plg_content_confirmconsent | plugin | 0 | 0 |
159 | plg_system_actionlogs | plugin | 0 | 0 |
160 | plg_actionlog_joomla | plugin | 0 | 0 |
161 | plg_system_privacyconsent | plugin | 0 | 0 |
162 | plg_system_logrotation | plugin | 0 | 0 |
163 | plg_privacy_user | plugin | 0 | 0 |
164 | plg_quickicon_privacycheck | plugin | 0 | 0 |
165 | plg_user_terms | plugin | 0 | 0 |
166 | plg_user_token | plugin | 0 | 0 |
167 | plg_privacy_contact | plugin | 0 | 0 |
168 | plg_privacy_content | plugin | 0 | 0 |
169 | plg_privacy_message | plugin | 0 | 0 |
170 | plg_privacy_actionlogs | plugin | 0 | 0 |
171 | plg_captcha_recaptcha_invisible | plugin | 0 | 0 |
172 | plg_privacy_consents | plugin | 0 | 0 |
173 | plg_behaviour_taggable | plugin | 0 | 0 |
174 | plg_behaviour_versionable | plugin | 0 | 0 |
175 | plg_installer_webinstaller | plugin | 0 | 0 |
176 | plg_system_httpheaders | plugin | 0 | 0 |
177 | plg_sampledata_multilang | plugin | 0 | 0 |
179 | plg_installer_override | plugin | 0 | 0 |
180 | plg_quickicon_overridecheck | plugin | 0 | 0 |
181 | plg_extension_finder | plugin | 0 | 0 |
182 | plg_system_skipto | plugin | 0 | 0 |
183 | plg_api-authentication_basic | plugin | 0 | 0 |
184 | plg_api-authentication_token | plugin | 0 | 0 |
185 | plg_webservices_banners | plugin | 0 | 0 |
186 | plg_webservices_config | plugin | 0 | 0 |
187 | plg_webservices_contact | plugin | 0 | 0 |
188 | plg_webservices_content | plugin | 0 | 0 |
189 | plg_webservices_languages | plugin | 0 | 0 |
190 | plg_webservices_menus | plugin | 0 | 0 |
191 | plg_webservices_messages | plugin | 0 | 0 |
192 | plg_webservices_modules | plugin | 0 | 0 |
193 | plg_webservices_newsfeeds | plugin | 0 | 0 |
194 | plg_webservices_plugins | plugin | 0 | 0 |
195 | plg_webservices_privacy | plugin | 0 | 0 |
196 | plg_webservices_redirect | plugin | 0 | 0 |
197 | plg_webservices_tags | plugin | 0 | 0 |
198 | plg_webservices_templates | plugin | 0 | 0 |
199 | plg_webservices_users | plugin | 0 | 0 |
200 | plg_filesystem_local | plugin | 0 | 0 |
201 | plg_media-action_crop | plugin | 0 | 0 |
202 | plg_media-action_resize | plugin | 0 | 0 |
203 | plg_media-action_rotate | plugin | 0 | 0 |
204 | plg_system_accessibility | plugin | 0 | 0 |
205 | PLG_SYSTEM_WEBAUTHN | plugin | 0 | 0 |
206 | atum | template | 1 | 0 |
207 | cassiopeia | template | 0 | 0 |
?? | fof | library | 0 | 0 |
Status | New | ⇒ | Pending |
Category | ⇒ | SQL Administration com_admin |
Please add languagefilter system plugin to your list.
It's already there
See line 115.
can not be uninstalled (locked = 1).
but can be disabled (protected = 0).
Correct?
My list above is just a Summary of Changes. It doesn't include extensions that have already the correct states.
Just at the end when all is ready in the update sql, don't forget to change the joomla.sql, too, and please do all for both mysql and postgresql.
Jepp. Please read #28527 (comment)
ahhh sure i really want those 2 to be unistallable as well
should i say for having a more light core to be user friendly
mail templates what ?
yeah please forgive me
but it's better to complain about piece of software than the current worldwide situation
p.s
yes agree with @richard67 only silly jokes
Labels |
Added:
?
|
Category | SQL Administration com_admin | ⇒ | SQL Administration com_admin Installation |
Category | SQL Administration com_admin Installation | ⇒ | SQL Administration com_admin Installation Libraries |
Category | SQL Administration com_admin Installation Libraries | ⇒ | SQL Administration com_admin Installation Language & Strings Libraries |
Labels |
Added:
?
|
Just at the end when all is ready in the update sql, don't forget to change the joomla.sql, too, and please do all for both mysql and postgresql.
If you say "We don't support updates and basta." Do we need the update files 4.0.0-2020-03-25.sql at all? Isn't joomla.sql sufficient then? At the end the update files change nothing in a fresh installtion. States are all identical then.
@ReLater I haven't said we don't support updates, I have said we don't support updates yet between J4 versions existing up to now. But the update sql files are necessary for updating from 3.10 mainly. Most of the stuff in it is for updating from 3.10. It may be that statements for stuff added in J4 is not necessary in the update sql, but that's only a small part, and leaving it away would make it harder to maintain.
And btw. don't forget postgresql.
updating from 3.10
Yes, I forgot that completely ;-) What is Joomla 3?
Category | SQL Administration com_admin Installation Libraries Language & Strings | ⇒ | SQL Administration com_admin Postgresql Language & Strings Installation Libraries |
Hint for me: Commit "PostgreSql. Installation. All" is "PostgreSql. Update." (wrongly named).
@ReLater I just see that appveyor says the PR is not mergeable, and now I know why: The joomla.sql has been split to several files with recently merged PR #28350 . That means you have to solve merge conflicts, i.e. find out in which of the new files your changes below, save your joomla.sql files somewhere, then accept the deletions and then merge your changes into the new file (I think it will be base.sql but am not sure right now).
Do you think you can handle that and solve these conflicts? If not let me know and I will try to help with a PR to your branch.
Shall I help you with updating this to latest changes in 4.0-dev? I will not be available for long anymore today.
Yes, please.
Thanks!
SQL files look consistent to me.
Btw, @ReLater , did you know that for J4 PR#s, drone recently generates patched installation and update packages? There is a link at the bottom of your PR in the CI test results:
(If necessary it needs to use the "Show all checks" link before to see that).
A good test of this PR would be to make a new installation with the patch of this PR applied to a clean 4.0-dev or using the created installation package for this PR, export a "SELECT * FROM #__extensions
order by type
, element
, folder
, client_id
" into a csv file, then updating a clean 3.10-dev to 4.0-dev using the created update package for this PR and do the same export, and compare if they are equal except of expected differences like e.g. the extension_id's. And to do the same for both types of databases and also compare if results are same for both.
Title |
|
Sure the joomla extension should not be locked? Maybe it was vice versa, the udpate sql was right and the base.sql (former joomla.sql) was wrong at this point?
I'm absolutely not sure. Reason is a bit lack of descriptions inside the plugins. I deactivated it yesterday and all effects that I saw were that rebuild of update sources didn't work but with a clear message:
But I could install new plugins and update sources were correctly written.
Simply instruct whenever you think or know that it's a bad idea!
"This is a list of extensions that can be disabled at current state" moved to #28563 (comment)
can you look at
[09-Apr-2020 08:08:34 UTC] PHP Notice: Undefined property: Joomla\CMS\Table\Extension$locked in /Applications/MAMP/htdocs/joomla-cms-3.10-dev/libraries/src/Installer/InstallerAdapter.php on line 1155
This happens when updating 3.10
Thank you. Good find. I have to check if a Joomla version_compare is possible there or if I have to add isset rules for protected AND locked and so on.
There are no prebuilt packages available (no links under "Download"). I don't know which of the unsuccessful test tools is responsible for that.
It’s drone. I restart it, maybe that helps.
Restarted drone again and this time it worked. Appveyor is another stuff.
I just made a new installation with the prebuilt zip of this pr.
After that I checked cassiopeia (I started at the end of your table). In my case cassiopeia is locked. If I read your table correctly (could it be, that client_id should be locked?) then it should not be locked.
This is the state of my extensions after installing joomla with the prebuild of this pr:
Cleared:
I don't understand.
client_id
=0 of cassiopeia
means: "frontend extension" (client = site = 0). I have added that column in my list to differentiate between FE and BE modules that have the same name, e.g. mod_breadcrumbs mod_custom.
My pr does not touch the client_id
.
And yes, cassiopeia
is locked
like all core extensions. None of them can be uninstalled. That's why my list has no locked
column.
But it can be disabled/deactivated because protected
=0.
Hint:
But it can't be disabled as long it's the FE standard template. That's not part of this pr but Joomla behavior.
Thank you for explaining and sorry for the confusion. I don't know why, but I assumed the table contained locked and protected and client_id is a typo. But you are right. Core extensions are all locked, so this column is unnecessary.
Can you please pull the latest changes from 4.0-dev, so that all tests pass correctly?
Can you please pull the latest changes from 4.0-dev, so that all tests pass correctly?
I have no idea how.
I wonder if all core extensions really need to be protected before uninstalling.
In the worst case, with a plugin that does not have its own database table, it can happen that the files are in the file system again during the next update and could be discovered. right?
I've done that for you.
Thank you again.
It just needs to have a remote in your git client pointing to the CMS repo (I've called it "upstream"), and then merge the 4.0-dev branch of that remote into your patch-2 branch.
Still the same answer: "I have no idea how." ;-)
Well there was once a button for that on GitHub, but is seems they’ve removed it in their new UI.
git pull origin/4.0-dev
https://github.com/joomla/joomla-cms
git remote show
git push yourremotename/yourbranchname
@richard67 Correct me please if I am wrong.
@astridx That’s not right in all cases. If you have an own fork, origin is the remote name of your own repo and not of the CMS repo, and then your commands keep your local and remote branch of your repo in synch, but it does not update your branch with the changes in the base branch in the cms repo.
I don't use a local git client for Joomla CMS, only the github.com GUI.
As far as I remember there's a way somehow via the Compare feature ("compare across forks") and make a PR but one have to use several tricks for setting the correct compare direction with the GUI inside your own branch. Maybe it works if I start the compare in this Repo plus 4.0 branch here?? I will check it next time...
Yes, that would work. Easiest way is to compare 2 branches and the modify the url so at the end you compare the cms repo's 4.0-dev branch with your branch. Then you can make a PR to your repo and merge it. Only problem is when there are merge conflicts which are so severe that the GitHub UI can't provide a way to fix them. In such case ask a maintainer (e.g. me) for help ;-)
Example URL for doing such comparison for your branch here:
'mod_tags_popular',
'mod_tags_similar',
should be under:
OR (
type= 'module' AND
client_id= 0 AND
element IN (
Quick Icon - Missing Download Key Notification
is protected when upgraded from J3.10 to J4 but not with new J4 installation.
Quick Icon - Missing Download Key Notification is protected when upgraded from J3.10 to J4 but not with new J4 installation.
I checked the joomla.sql in current 3.10 nightly. I can't find a quickicon plugin "Missing Download Key Notification".
I just find these:
(437, 0, 'plg_quickicon_joomlaupdate', 'plugin', 'joomlaupdate', 'quickicon', 0, 1, 1, 1, '', '', '', '', 0, '0000-00-00 00:00:00', 0, 0),
(438, 0, 'plg_quickicon_extensionupdate', 'plugin', 'extensionupdate', 'quickicon', 0, 1, 1, 1, '', '', '', '', 0, '0000-00-00 00:00:00', 0, 0),
(458, 0, 'plg_quickicon_phpversioncheck', 'plugin', 'phpversioncheck', 'quickicon', 0, 1, 1, 1, '', '', '', '', 0, '0000-00-00 00:00:00', 0, 0),
(488, 0, 'plg_quickicon_privacycheck', 'plugin', 'privacycheck', 'quickicon', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0),
Quick Icon - Missing Download Key Notification is protected when upgraded from J3.10 to J4 but not with new J4 installation.
Reason "my" update sql 2020-03-25 runs before 2020-04-11. Latter one installs that plugin.
@ReLater @mbabker posted a comment above regarding the last change. I think he is right. Unfortunately the comment is hidden in the resolved code conversation when not explicitly expanding that, so I post here the link: #28563 (comment)
Update: Links seems not to help, at least not on mobile, when the resolved discussion is not expanded.
I have tested this item
I've found relevant differences between new install and updated from 3.10-dev for MySQL. Will post details soon.
Update: False alarm regarding these differences, they are not related to this PR.
I have tested this item
At least one of the SQL update scripts for PostgreSQL contains MySQL name quotes, so an update from 3.10 fails with an SQL error.
Beside this, there are differences in protected and locked statuses between new install and update at least for MySQL. I'll post the details later.
Update: False alarm regarding these differences. But the above error with PostgreSQL still is valid.
I have tested this item
Status | Pending | ⇒ | Ready to Commit |
RTC
Status | Ready to Commit | ⇒ | Fixed in Code Base |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2020-05-02 16:08:03 |
Closed_By | ⇒ | wilsonge | |
Labels |
Added:
?
|
Thankyou very much for working through this!
Please add languagefilter system plugin to your list.