DeclarativeVersion doesn't respect plugin boundaries in mirror mode
Let's say you're using multiple plugins/content types with one repository.
First you sync content into $REPO using $PLUGIN_1, and then you sync more content into $REPO using $PLUGIN_2.
Assuming the latter sync uses mirror mode, all of the content synced by the first sync will be removed. This means that one plugin can easily destroy content from other plugins unless you use "additive" mode only, whereas intuitively I would not expect that to be the case.
If this is intended behavior, we should take care to document this very clearly.
Updated by bmbouter over 5 years ago
+1 to documenting this, especially for the use case @daviddavis describes.
For the cross-plugin types what if we:
1. Adjusted the ContentUnitUnassociate stage to take an option called 'ignore_unseen_types'. When True, the stage would only unassociate unit types that have also been emitted in the stream at some point. So True, leaves other plugin types untouched.
2. Have DeclarativeVersion expose this as an option and have it default to False.