Degrade gracefully during conflict or removal
This addresses two issues, but they touch the same code and work in similar ways, so it's hard to split them apart. The issues:
-
Soft Package Conflict: Following civicrm-drupal-8#49 in v5.31+, there is a possibility that early D8 deployments will have both
roundearth/civicrm-composer-plugin
(b/c that was how earlier templates worked) andcivicrm/civicrm-asset-plugin
(b/c that'll be added during an upgrade to 5.31). But these aren't designed to work together. Instead, we should show a warning. -
Uninstall: If you remove this plugin (in composer v1), the main plugin-class and event-listeners remain momentarily active. But they're not usable (e.g. the class-loader goes away). So we need to take extra measures to avoid ugly errors during uninstallation.