Conclusion

My conclusion would be to make module.inc the key module for module and project dependency management.

Changes to install.php, system.module, update.php are relative easy to do afaik.

What i haven't covered is schema update dependencies.

Steps to take:

  1. make drush_mm more robust as a showcase
  2. patch module.inc with lessons learned from drush_mm
  3. provide the project provides files same like status_update
  4. with this into place drush (D7) could have lean and mean drush_pm and drush_mm modules

module dependency management

I don't like the idea that dependencies are not handled in a unified way. By that I mean that both module.inc and update.php code is written to handle module status. There should be a central library handling their dependencies. When we handle this in a unified way installing a big project like ubercart is easy.

When installing/enabling a module it is important to know what this module is dependent of. Ie uc_cart is dependent of uc_order. See ie http://build2be.com/sites/build2be.com/files/ubercart.neato.png