Description of the need
I came across the issue recently where I couldn't find an installed module in the module page. Bee showed it as enabled and other modules showed that they were required by this module.
The module in question is a Feeds plugin and the feeds_system_info_alter() function makes plugin modules for which an importer exists (even if the importer is disabled) a required module. I only found this out because I dug into the info blob in the database and then found the required flag and the explanation.
It feels like Core UI should display contrib required modules in the module list but prevent disabling in the same way as when a module is a dependency. Perhaps there could be another line with the dependency listing that uses the explanation that Feeds has given it?
I imagine as there is a hook this could be used by other module to add the required flag.
Proposed solution
Required contrib modules are listed They are prevented from being disabled and the explanation is given
Alternatives that have been considered
I can see why Feeds makes these required, but the fact it provides an explanation that is not visible anywhere means it is confusing for users.
Additional information
a:13:{s:4:"name";s:21:"Feeds JSONPath Parser";s:11:"description";s:37:"Parse a JSON document using JSONPath.";s:7:"package";s:5:"Feeds";s:8:"backdrop";s:3:"1.x";s:4:"type";s:6:"module";s:12:"dependencies";a:2:{i:0;s:5:"feeds";i:1;s:9:"xautoload";}s:5:"mtime";i:1689679314;s:7:"version";N;s:3:"php";s:5:"5.6.0";s:5:"files";a:0:{}s:9:"bootstrap";i:0;s:8:"required";b:1;s:11:"explanation";s:99:"Feeds is currently using this module for one or more <a href="/admin/structure/feeds">importers</a>";}
Add any other information or screenshots that would help.
Draft of feature description for Press Release (1 paragraph at most)
Backdrop now displays required contributed modules in the list of modules and provides the explanation, if given, for why it is required.
Recent comments
@yorkshirepudding, In the end I fixed it by deleting the config/active folder contents, copying the config/staging/ files into config/active, importing the database again and clearing the caches...
Importing the staged config throws an error: another field with the same name already exists
Thanks, I have to go out now, I will try later on and report back
Importing the staged config throws an error: another field with the same name already exists
Hi Francis. Yes, what config do you have in staging for it? You might have configs like: field.field.field_video_embed field.instance.node.page....
Importing the staged config throws an error: another field with the same name already exists