I recently came across this change record for D8: https://www.drupal.org/node/2952947
What this has done in short is that it has allowed installation profiles to specify
install dependencies in addition to the preexisting
dependencies. D8 uses .yml files, but here's how that could look in .info files:
name = Standard description = Install with commonly used features pre-configured. version = BACKDROP_VERSION backdrop = 1.x install = admin_bar install = ckeditor install = comment install = dblog install = views_ui install = update dependencies = node dependencies = block dependencies = color dependencies = config dependencies = contextual ...
dependencies array would be treated as a set of "hard" dependencies, meaning that they cannot be uninstalled, because the profile depends on them. If the profile simply wants to specify a list of modules to install, but upon which it does not actually depend, it can use the
To maintain backwards compatibility, profiles which only define a
dependencies array, but not an
install array, would have their list of dependencies treated like an
install list. This backwards compatibility layer could be removed in Backdrop 2.0, which should allow enough time for profile authors to separate their
install list from their actual dependencies.