How does Drupal handle update of multiple module bundles of features without breaking stuff? Let's say I have modules A, B and C.

I create a feature and it makes them into a single module.

Then one day, an update makes A, B and C not compatible, or maybe one deprecated or something.

Then my feature is broken...

Drush installs fresh modules of the newest version automatically, is there a way to do a drush command that bundles the modules inside the feature module?
How does Drupal handle update of multiple module bundles of features without breaking stuff?


It doesn't - that job falls to the developer. 

Drupal/Drush doesn't know which versions of unrelated modules work with each other; I imagine that would probably be quite complicated to describe generically.

One method Drupal offers to handle this scenario is using advanced dependencies in your module .info file. For example, when you know that the current versions of A, B and C you have installed work with one another, then lock them down in your feature module's .info:

dependencies[] = A (1.x)
dependencies[] = B (&gt;7.x-1.5)
dependencies[] = C (&gt;1.0, &lt;=3.2)


That way a Drush (or other) updates won't interfere, you'll always have versions that you've manually verified are compatible.

When you're ready to think about updating those modules, download them to your dev version of the site, run all the updates, and all of your tests, and see where you're at. If things work, great, update your .info file with the new dependency versions, release the code, and you're good to go.

If not, then you need to look into whether it's something that you need to fix yourself, whether it's a known bug with the new version and has a patch, a known incompatibility between the two modules, and so on. Beyond writing an excellent test suite that you can trust, I doubt there's an automated or shortcut method for doing this.