Migration plugin discovery should cleanly return only migrations whose dependent modules are enabled. Migrations from Drupal database sources require the migrate_drupal module to be installed, but if this relationship is not part of the migration configuration the plugin manager would attempt to instantiate them even if migrate_drupal is not installed.
To address this, the migration plugin manager now automatically detects source plugin module dependencies and adds any required modules as providers for the plugin, so the plugins are not instantiated in the absence of the source plugin dependencies. No changes need to be made to existing migration code and configuration to take advantage of this feature and prevent errors.
As an edge case, sometimes migrations may be associated with a use case dependent on a given module, but not directly use a source plugin provided by that module, thus the dependency will not be automatically detected. For example, in Drupal core the block_content_body_field migration is part of the migration path from other Drupal sites and does not make sense when migrate_drupal is not enabled, yet because it hard-codes its data using the embedded_data source plugin it has no direct dependency on the migrate_drupal module and thus the provider cannot be automatically set. In these cases, it is recommended that you explicitly add the provider setting to your migration .yml file:
provider: migrate_drupal