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.

image

image

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.

GitHub Issue #: 
6173