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.

This is the phase where we start adding some new small/medium size features to the Entity API in core, primarily adding parent revisions. None of the steps below depend on each other.

Revision parents

This step will implement API level support for parent revisions (no UI and no behavior change to the current Entity API). This will mean that each revision can have one or more parents. Multiple parents would be the result of a merge between multiple conflicting revisions (very much like Git).

Initially this API will only be used in a regular linear fashion. But later, when workspaces are implemented this will be used to handle conflicts and merge scenarios (see phase H).

Revision hash

It should be possible to identify revisions across multiple environments. And the same change to an entity on multiple environments should result in the same ID (see phase H). For this we need a revision hash field:

Sign-offs needed

Product manager

A product manager needs to sign-off on this plan because the revisioning user experience is not as polished as the non-revisioned user experience, so the planned work significantly affects the out-of-the-box experience of the product.

Framework manager

A framework manager needs to sign-off on this plan as the above phases introduces a small, but very significant, API addition (parent revisions).

Release manager

A release manager needs to sign off because the scope and impact of the work are significant for core, and because existing issues with revisions may impact the stability and technical debt of the developmental minor version.

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 completion of the issues listed above
  • Framework manager - Pending specific implementation in phase A; not yet given for phase B
  • Release manager - Pending completion of the issues listed above
  • Sub-system maintainers - pending

Comments

dixon_ created an issue. See original summary.

timmillwood’s picture

This is not a firm dependency for workspaces, although will be needed before we start replicating content between workspaces.

This will also need an upgrade path, we will need to create the revision hashes, and map the revision parents for each revision, so for that reason sounds like something we should try to get done ASAP.

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

Drupal 8.3.0-alpha1 will be released the week of January 30, 2017, which means new developments and disruptive changes should now be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

yoroy’s picture

Will we get to this during 8.4 dev cycle?

timmillwood’s picture

@yoroy - I don't think so.

yoroy’s picture

Ok thanks, removing tag for now then. By all means add it back when needed. Maybe you can decide whether to postpone this or not (I'm fine either way)?

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

wim leers’s picture

Quoting myself from #2725433-37: WI: Phase A: Use the revision API in more places:

Most things here have been completed. There's only one must-have issue that is not yet completed I think: #1239558: Deleting an entity with revisions and file/image field does not release file usage of non-default revisions, causing files to linger. But that issue dates back to at least 2011, and AFAICT doesn't need to block progress on the relatively smaller B phase?

Time to start #2786133: WI: Phase B: Extend the revision API with support for parents?

AFAICT #2725523: Add a revision_parent field to revisionable entities is blocking API-First Initiative progress, see #2725523-10: Add a revision_parent field to revisionable entities for info.

wim leers’s picture

Issue tags: +Workflow Initiative
dixon_’s picture

Issue summary: View changes
dixon_’s picture

Issue summary: View changes

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 11.x-dev » main

Drupal core is now using the main branch as the primary development branch. New developments and disruptive changes should now be targeted to the main branch.

Read more in the announcement.