-
Type: Epic
-
Status: Resolved
-
Priority: Minor
-
Resolution: Duplicate
-
Affects Version/s: None
-
Fix Version/s: QualifiedToSchedule
-
Component/s: Core, Ergonomy & UX
Goal
The way versioning is handled in the platform currently is not consistent depending on what UI or API is used to update a document. This epic's goal is to get a more consistent behaviour for end users, and also provide a better configuration framework for versioning policies. We separate "automated versioning" where some rules enforce the creation of a version and "manual versioning" where the user chooses what should be done. In both cases, the behaviour should be that when a creation or update is occurring the created version should contain the modifications.
Automated versioning
Nuxeo Platform should make it easy to contribute automated versioning policies via a new dedicated extension point. All policies that are contributed have:
- a type, see different types after
- major or minor
- a filter based on user and document properties and system properties
Those policies are evaluated at low level after each modifications to see if some apply. When several rules apply, in case of conflicts between minor and major, major wins.
Collaborative versioning scheme
If the user that updates a document is different than last user that did an update on the document, then create a version.
Time based versioning scheme
If not versioned since … create a version.
Lifecycle based versioning
If the document goes into that specific lifecycle state, we should force the creation of a version.
Default contributed automated policies
By Default in Nuxeo Platform, we would activate time based (1h) and collaborative versionning for all document types. And we would also as an exemple activate lifecycle based versionning when document goes into "valid" state.
Manual Versioning
Via form versioning selector, via REST API Header. When *creating* or updating a document, we can select create a major or minor version or none. *The version that is created already has the modification*. The document should not be checked out right after that. This should be usable: on the bulk edit, bulk create, create, edit, csv import, spreadsheet modules.
For manual versioning, current option allows to control per document type what options are available (minor , major, none). In case of bulk versioning, this doesn’t make sense, except if do enforce the logic at lower level (because then we could generate an exception). So either we remove this feature on bulk modification screens (but I don't think this is what we want to do) , or we enforce it a little bit more at lower level so that it generates an exception if the versioning doesn't respect what is allowed.
It looks also that some customers are interested by the "Once versioned, always versioned (either minor or major)” policy. To Be Defined how it works