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.
The idea of this phase it to implement and use our great revision API for all content entities in core, except users. This will provide a necessary foundation for any moderation, workflow and staging capability. No new features or functionality is being added to the Entity API in this phase.
The issues below needs to happen somewhat sequentially:
- #2490136: Enable revisions by default
- #2707255: All content entities should inherit baseFieldDefinitions
- #2705433: Node should implement RevisionLogInterface
- #2716081: BlockContent should have revision_user and revision_created fields and implement RevisionLogInterface
- #2721313: Upgrade path between revisionable / non-revisionable entities
- #2745619: [policy, no patch] Which core entities get revisions?
- #2705389: Selected content entities should extend EditorialContentEntityBase or RevisionableContentEntityBase
These additional issues should happen by the end of phase A:
Must
- #2746033: NodeController::revisionOverview() does not have a pager, which results in unlimited queries
- #2362435: When viewing a revision, the Quick Edit, Edit, and Delete contextual link operations are available, but should not be
Should
- #2728403: Non-revisionable translatable fields on revisionable entities don't translate correctly
- #1643354: [Policy, No patch] Overhaul the entity revision terminology in UI text and related #2764805: Clarify concepts (and implementation) around reverting revisions and publishing forward revisions -- we should start this discussion, but it is definitely not expected to complete it for this phase.
Could
These issues will not be blockers, but could be good issues for sprints or contributors wishing to assist with the initiative.
- #1239558: Deleting an entity with revisions and file/image field does not release file usage of non-default revisions, causing files to linger
- #2389341: When viewing a revision the Reverted or Deleted links should be available in contextual links
- #2766135: EntityQuery with condition on the revision field leads to wrong results
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
Comment #2
dixon_Comment #3
dixon_Comment #4
dixon_Comment #5
dixon_Comment #6
dixon_Comment #7
dixon_Comment #8
dixon_Comment #9
xjmAdded an item to the summary for release manager signoff, because this has an impact on the technical debt and releasability of 8.2.x. For example, there are a number of existing bugs and limitations with revisions that become more problematic when we use revisions in more places. I'd like to see an overview of those bugs here, and consider what we need to fix in order to consider the work on revisioning releasable.
For some of my concerns, see #2490136-101: Enable revisions by default. For example, #1239558: Deleting an entity with revisions and file/image field does not release file usage of non-default revisions, causing files to linger could be a scalability problem already with just nodes being revisionable by default. Some of the issues we added on the main roadmap #2721129: Workflow Initiative under "Related work" might also belong here.
Comment #10
xjmAlso clarified why product manager signoff is important and added that for release managers too.
Comment #11
catchComment #12
dixon_Thanks @xjm and @catch for your additions here. I will look through these issues and add them in to the plan soon.
Comment #13
catchComment #14
catchAdding another related issue.
Comment #15
amateescu CreditAttribution: amateescu for Pfizer, Inc. commentedAnd another one.
Comment #16
catchI think we should split the revision hash/parenting issue out to a separate issue, since they only block phase H.
And/or if they block something earlier could that be clarified?
Comment #17
xjmAdding #2745619: [policy, no patch] Which core entities get revisions? since it is related and needs discussion. Also see @effulgentsia's feedback at #2705389: Selected content entities should extend EditorialContentEntityBase or RevisionableContentEntityBase.
Comment #18
catchComment #19
catchComment #20
catchComment #21
catchComment #22
catchComment #23
catchComment #24
xjmHere's an update on the status of this plan from the committers!
To address this, the framework managers, release managers, and Entity Field API maintainers did a triage of revisioning issues with the Workflow team last week, with these results:
https://docs.google.com/spreadsheets/d/14lpbLhpu7YqjFwjQ4gCTTlf-gcrOc57C...
For each issue, we identified which must, should, could, and won't block or be a part of this phase of the initiative. We can update the summary here for that info, but this has release management signoff based on the planned scope of work and those related issues being included.
Previously @catch and I had concerns about the impact of enabling revisioning for many entity types in core without a way to manage the revisions, but this phase is not about that. It is simply about providing the API and storage. The revisioning flag will not be set for core entity types other than nodes during this phase, nor possible to enable through the UI.
These were the things that needed product manager signoff for this phase:
Based on that, @webchick said it was okay to remove the "Needs product manager review" tag here as well.
Finally:
The framework managers were comfortable with phase A overall, pending reviewing the implementations of the remaining steps of course. However, they were less sure about phase B. Based on that, we thought it might be worthwhile to split Phase B into a separate issue.
Comment #25
xjmAdding the other must, should, and could revisioning issues to the summary.
Comment #26
xjmRemoving the "won't" issues from the related issues.
Comment #27
xjmComment #28
xjmClarifying WRT the signoffs in the summary.
Comment #30
dixon_Comment #32
catchThree moreissues related to revision support/forward revisions:
#2856363: Path alias changes for draft revisions immediately leak into live site
#2861506: Add support for changing taxonomy term parents in pending revisions
#2858434: Menu changes from node form leak into live site when creating draft revision
Comment #33
catchAnd #2858431: Book storage and UI is not revision aware, changes to drafts leak into live site.
Comment #37
Wim LeersMost 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?
Comment #38
amateescu CreditAttribution: amateescu for Pfizer, Inc. commented@Wim Leers, yes, that issue is one of the tasks that we'll focus on for 8.7 :)
Comment #39
Wim LeersYou mean, #2786133? 🙏 😃
Comment #40
amateescu CreditAttribution: amateescu for Pfizer, Inc. commentedYup, that's the one.
Comment #41
Wim LeersWonderful! 🎉
Comment #42
Wim Leers@amateescu: We're working on revision support in JSON API in #2992833: Add a version negotiation to revisionable resource types. We just discovered that
(Node|Media)RevisionAccessCheck
seem to be sort of "on their own": it appears there's no standardized Entity API infrastructure for dealing with revision access. Is that correct? Any input you would have on that subject would be super welcome. See #2992833-150: Add a version negotiation to revisionable resource types. Thanks! 🙏Comment #44
amateescu CreditAttribution: amateescu for Pfizer, Inc. commented#3043321: Use generic access API for node and media revision UI is the issue that will tackle the inconsistency regarding revision access APIs mentioned in #42.
#1239558: Deleting an entity with revisions and file/image field does not release file usage of non-default revisions, causing files to linger is no longer a must-have for the Workflow Initiative (per comment #130 in that issue), and I just closed #2745619: [policy, no patch] Which core entities get revisions?, so I think we call this done as well!
Comment #46
Wim Leers🥳