Experimental Project

This is a sandbox project, which contains experimental code for developer use only.

Drux has moved to github!
https://github.com/donquixote/drupal-drux

Status: Before this becomes a real project, some of you guys has to suggest a different name! "Drux" is just too meaningless.

Additional drush commands for dealing with module dependencies in a code-driven development workflow.

drush dep
(drux-enable-dependencies)
Download and enable dependencies of all enabled modules.

drush obs [module 1] [module 2] [module 3]
(drux-find-obsolete)
Find all modules that could be safely disabled without disabling any of the modules specified as arguments.

Use case: The PULL situation

You pull code (modules and features) that a fellow developer has worked on. These modules could contain new dependencies. You run "drush updb" and "drush cc all", but the dependencies are still not enabled.

Solution:
Now in addition you run "drush dep", and everything is fine.

Use case: The PUSH situation

You worked on some modules (incl features), and want to push them upstream. Your fellow developers need to know which other modules they need to enable, so you add those as dependencies. But, how can you be sure you did not forget a dependency?

Solution:
You have one or more "seed" modules, with all the dependencies. You agree in your team that these should always be enabled.
You might also have a "personal seed module", which contains the dependencies you do not want to share with the team.

Whenever you enable a new module, and you want everyone in your team to also enable it, you add it as a dependency somewhere, so it becomes a direct or indirect dependency of the seed module(s).

You can then run "drush obs seed1 seed2 seed_personal" to identify all the modules you forgot to add as dependency. You should either disable these modules, or add them as dependencies somewhere.

Project Information