Issue #3619210: Declare the contact module the form endpoints cannot answer without

Five resources answer a form submission by handing a message to the core contact module, and nothing said so. The module declares no dependency on contact and the resources declared no requirement either, so on a site without it they were registered, offered, and threw a service-not-found the moment one of them was instantiated - too early for the endpoint to answer anything.

They declare it now, with the same annotation property the nine search-backed resources use: a site without the contact module is not offered those five and keeps every other endpoint. The container fetch in the base class is guarded the way the metatag helper is, so building the plugin cannot throw, and a submission that reaches such a resource anyway - the definitions are cached, so removing a module leaves a live route for a while - is answered with a 503 naming the missing module rather than with a call on NULL.

The robots.txt endpoint reads the configuration of the robotstxt module and invokes its hook. That degrades correctly, so it needed documenting rather than fixing: it is in the optional table of the README now, and so is contact.

Closes #3619210

Merge request reports

Loading
Loading