Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-17420

Review Versioning policies in the Nuxeo Platform

    XMLWordPrintable

    Details

      Description

      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

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: