This issue is spun off from #2908282: Throw exception for source plugins without a source_module property.
Problem/Motivation
There are several implicitily required properties to destination, source and process plugins. Rather than waiting for someone to WSOD when they miss one of these implicit requirements, we should throw a loud exception.
The MigrateDestination annotation defines a destination_module property which needs to identify the system which will contain the processed, migrated data. In Migrate Drupal's case, this property is used to identify the D8 module which will "own" the migrated data.
When providing a strong API, it's important to tell consumers when they are doing something wrong. For Migrate Drupal's purposes (our main use case), this property is required in order to inform users whether their D6/D7 data will be migrated into Drupal 8. Therefore, this blocks the completion of the core migration path to Drupal 8, and is Migrate-critical.
Proposed resolution
- Port the destination-specific code from #2908282-53: Throw exception for source plugins without a source_module property into this issue
- Iterate on it until it's ready to commit. Consider inputs from:
- #2908282-64: Throw exception for source plugins without a source_module property,
- #2908282-65: Throw exception for source plugins without a source_module property&
- #2908282-66: Throw exception for source plugins without a source_module property
- Commit it.
Remaining tasks
That thing I just said.
User interface changes
None.
API changes
The destination_module property will be required on all Migrate destination plugins. So this constitutes a BC break.
Data model changes
None.