Note: This is issue is part of #2721129: Workflow Initiative and is only meant for planning and governance sign-offs. Work will happen in child issues of this plan.

Target version: Drupal 8.4

Workspace API (no UI)

#2784921: Introduce the concept of workspaces
Introducing the concept of workspaces. Content entities always belong to a workspace (there is one main exception, which is the user entity type). A workspace is a silo/container of content on a site. However, this phase only introduces the underlying concept with one single workspace available, without many supporting APIs around it (see later phases). This phase will not change any UIs or behaviours in core.

See Workspace module for the current contrib implementation.

  • Define the workspace entity itself
  • Introduce the workspace reference field for all content entity types
  • Extend storage handlers to work with workspaces

Entity revision indexes

Many functions and operations in later phases will rely on intensive lookups of certain metadata about revisions (e.g. does a revision exist, is it flagged as deleted, what sequence were revisions created in, etc). For this we need various indexes of basic revision metadata in order to improve performance and DX of looking this up.

Richer Workspace API (still no UI or behaviour changes)

This phase will extend the Workspace API and provide underlying functionality for fetching basic info from workspace (what revisions are changed, what revisions are missing etc) as well as a basic implementation that let’s you replicate entities from one workspace to another.

Step 1: Additional services

  • Changes — service for fetching metadata about revision that has changes since a given sequence ID
  • RevisionsDiff — service for comparing what revisions are missing between two workspaces

Step 2: Workspace replication API (no UI)

See Workspace module for the current implementation in contrib.

Step 3: Conflict management API (no UI)

This is a big step. Now when entities can exist in multiple workspaces that can be replicated there needs to be APIs to support conflict management. This is only the underlying API and no UI will be implemented until phase H, step 1.

Initial plan for a plugin framework: #2688567: Co-maintaining Conflict module for Drupal 8 Assigned to: drumm

The merge algorithms needed will use lots of work from this Google Summer of Code project: Solving content conflicts with merge algorithms in Drupal 8.

Existing and related issues in core:

Step 4: Experimental UI

This step is optional and would cover a basic/experimental UI that will be elaborated on in phase I.

Sign-offs needed

Product manager

A product manager needs to sign-off on this plan because, although no UI is introduced and the out-of-the-box experience of Drupal won't change, the concept of workspaces constitutes a significant addition to Drupal core.

Framework manager

A framework manager needs to sign-off on this plan as the above phases introduces very significant API additions.

Release manager

A release manager needs to sign off because the scope and impact of the work are significant for core.

Sub-system maintainers

The sub-system maintainers for the Entity API needs to sign-off on this plan as it significantly impacts the Entity API.

Sign-offs given

  • Product manager - pending
  • Framework manager - pending
  • Release manager - pending
  • Sub-system maintainers - pending

Comments

dixon_ created an issue. See original summary.

dixon_’s picture

Issue summary: View changes
dixon_’s picture

Status: Active » Needs work

Making it clearer that we are still working on the plan.

dixon_’s picture

Issue summary: View changes

Adding notes about needed sign-offs.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.0-beta1 was released on August 3, 2016, which means new developments and disruptive changes should now be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

timmillwood’s picture

Issue summary: View changes
dixon_’s picture

Title: WI: Workspace API and entity revision indexes » WI: Phase F: Workspace API and entity revision indexes
Issue summary: View changes
dixon_’s picture

Issue summary: View changes
timmillwood’s picture

Issue summary: View changes