Eliminate required modules

You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Drupal currently ships with a large number of required modules: modules that must be enabled for a site to operate correctly, and cannot be turned off. What's telling is that many of these modules were not previously required (for example, Node module). These are signs of unnecessary tight coupling. All functionality provided by modules should be optional for Drupal's operation. Functionality that is required should be moved to underlying core APIs and sensible default values, with modules providing optional configuration UI.

If no modules are enabled, Drupal should respond to all requests with a 404 error page.

If no module implements the user_access() functionality, Drupal should respond to all requests with a 403 error page.

Obviously, other edge case questions will need to be resolved, but the broad goal of eliminating 'required modules' in favor of explicit cross-module dependencies is an important one.