ChangeOps should perform validation against a target entity separately from the apply() method, in validate() method.
The rationale is:
- when applying a batch of ChangeOps, we want to be able to validate all before applying any.
- for some batch operations like merging, we don't want to apply validation, since we are dealing with "status quo" data, and we shouldn't fail if that status quo does not conform to soft constraints (hard constraints should and will of course still be enforced).
Version: unspecified
Severity: normal
Whiteboard: u=dev c=backend p=5 s=2014-05-06
See Also:
https://bugzilla.wikimedia.org/show_bug.cgi?id=65215