Plone versioning "behavior" behavior

A client expressed an interest in versioning on the File type which is not assigned the plone.versioning behavior by default. In investigating turning this on I ran into some behavior that I think warrants some discussion or at least clarification of the underlying philosophy.

I believe this is true, if someone wants to sanity check me:

  • File/Image content types do not have the plone.versioning behavior by default at least in Plone 5.2. These types are very big and you could easily balloon your db with changes, not to mention the actual comparison tools are limited, so keeping it off by default makes sense to me
  • By assigning the plone.versioning behavior, versions are only created if a change note is entered (exceptions to follow)
  • The event subscriber in plone.app.versioning always creates a version if the content type has at_edit_autoversion set in the portal_repository tool
  • Even though it says "AT" it can still be set on Dexterity types
  • I don't believe the versioning_config_form skin is linked anywhere, at least without Archetypes installed, but it is still possible to access and assign types here including Dexterity types even though it says AT only
  • I believe this is the only way to force a version regardless of change note for Dexterity types

Is it intentional to only create a version if a change note exists? Knowing the users I've worked with, this change note will be entered approximately never but they'll still want to see a history of changes. It is currently possible to make it always create a new version regardless of change note but surely the above method to do so is not intended. Would it make sense to instead offer this as a registry setting, perhaps by content type?