Note: This 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.
Once ready: #2897130: Mark workflows module as stable
Target version: Drupal 8.4
The proposal here is to add a Workflows experimental module into core.
The purpose of this is to:
- Separate workflow functionality from the content_moderation module so that is it not tied to moderating content and can be used for other purposes
Proposed module name: Workflows (workflows.module
)
Implementation
Required sign-off before commit
Sign offs occurred in #2779647: Add a workflow component, ui module, and implement it in content moderation
Required before stable release
Must-have
- #2896722: Leverage PluginWithFormsInterface to encapsulate @WorkflowType schema and clean up state/transition form methods.
- #2830740: Allow workflow types to lock certain changes to workflows once things are in use
- #2843785: EntityResource: Provide comprehensive test coverage for Workflow entity
- #2849827: Move workflow "settings" setters and getters to WorkflowTypeInterface
#2830736: Add indication of where workflow is being used to workflow edit form#2830737: Add link to workflow on bundle edit screen- #2830739: Discuss whether content moderations actions should be on the state or transition level
- #2830581: Fix ContentModeration workflow type to calculate correct dependencies
- Documentation gate: Improve
hook_help()
and ensure https://www.drupal.org/docs/8/core/modules/workflows/overview is useful and current - Final architectural review for both fronend and backend implementations
- Final usability and #2898913: Review a11y concerns in ContentModerationConfigureForm
- Final architectural review #2899553: Architectural review of the Workflows module (documentation cleanups)
- #2900046: $workflow param is no longer required in getInitialState
- #2900320: Remove workflow type checkWorkflowAcess() & "view content moderation" permission
- #2900634: Mark WorkflowDeleteAccessCheck @internal until a UI pattern for access-restricted states has been established
- #2900700: Add orderby to content_moderation schema sequences
Should-have
- #2896722: Leverage PluginWithFormsInterface to encapsulate @WorkflowType schema and clean up state/transition form methods.
- #2830584: Use modals for creating, updating, and deleting workflows, with a new DialogFormTrait
- #2877926: Move buildStateConfigurationForm/buildTransitionConfigurationForm to WorkflowTypeFormInterface.
- Discuss with UX / product reviewers whether this should move down to "Could-have": #2758623: [meta] Redesign workflow configuration page to better visually describe the flow
Could-have
#2830735: Add possible but not existent transitions to the state edit form- #2830741: Decide if the workflow type should be able to rename the labels "State/Place" and "Transition" so it can call them what they like
- #2835545: Provide a Workflow FieldType that references a workflow entity and tracks the current state of an entity
Won’t-have (for this feature)
- TBD
Other related discussions
Sign-offs needed
Product manager
A product manager needs to sign-off on this plan as the above phases are required as part of a planned initiative. Done, #44.
Framework manager
A framework manager needs to sign-off on this plan as the above phases introduces major API additions (archive and purge).
Release manager
A release manager needs to sign-off on this plan as the above phases have impact on shippability.
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.
Comments
Comment #2
alexpottComment #3
alexpottComment #4
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedI think both #2830736: Add indication of where workflow is being used to workflow edit form and #2830737: Add link to workflow on bundle edit screen are redundant if #2843083: Select entity type / bundle in workflow settings is completed.
Comment #6
timmillwoodIn https://www.drupal.org/core/experimental it is listed Workflows needs to be stable by 8.4.0, only giving it 6 months to become stable, rather than the usual 1 year.
Comment #7
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedComment #8
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedI've done a scan over the issues tracked here and closed the ones I don't think are relevant. I've also added a few "could haves" based on the open issues I'm looking at as well.
Comment #9
timmillwoodMoving some of the priorities around.
Comment #10
timmillwoodComment #11
timmillwoodComment #12
xjmComment #13
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedComment #14
Wim LeersCan we please add #2843785: EntityResource: Provide comprehensive test coverage for Workflow entity to the list of issues that must happen before this module can achieve beta-level stability? It's important to have that test coverage issue committed, to ensure the API-First support of Workflows does not change in the future, which would cause BC breaks. Thanks to this test coverage, we'd know when we regress!
Thankfully, @Sam152 beat me to it — he did just this in #13 :)
Comment #15
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedGiven it's already RTBC, can't see a reason not to do this!
Also, updating target version to 8.4.
Comment #16
timmillwoodComment #17
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedThere are a few follow-ups to #2849827: Move workflow "settings" setters and getters to WorkflowTypeInterface which I think make sense to be in the must-have category, based on them being API clean-ups that are only possible as a result of the refactor. Will make sure the roadmap is updated with those once that gets in.
Comment #18
timmillwoodForcing issue summary links to update.
Comment #19
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedComment #20
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedAdded the four follow ups to #2849827: Move workflow "settings" setters and getters to WorkflowTypeInterface to the issue summary. Those all represent BC breaking changes that would be great to address before stable.
Comment #21
timmillwood@Sam152 - could these go in "should have"? I think they (and even #2849827: Move workflow "settings" setters and getters to WorkflowTypeInterface) could be done in a BC way, although I agree it'd be awesome to get them done in 8.4.x.
Comment #22
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedBased on #1977498: Add version tracking for configuration schema and data, I don't think we could do #2849827 in a BC fashion with any level of sanity.
The follow ups are probably in order of importance, I think if we can avoid shipping with a bunch of deprecated methods right out of the gate, that'd be awesome. If the big one gets in, I will be able to work on the follow-ups this week, in time for the deadline.
Comment #23
timmillwoodUpdating link status in IS
Comment #24
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedMoving #2896722: Leverage PluginWithFormsInterface to encapsulate @WorkflowType schema and clean up state/transition form methods. to "should have". I think it's going to take some work and discussion to get right. Hopefully there is a BC way to do that , possibly make
WorkflowTypeFormInterface
@internal in the meantime?Added the "WI critical" tag to the follow-up BC breaks which look like they'll get committed quickly anyway.
Comment #25
timmillwoodComment #26
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedI think we should add #2896722: Leverage PluginWithFormsInterface to encapsulate @WorkflowType schema and clean up state/transition form methods. to the must-haves, as it represents a major API change. Patch coming soon.
Comment #27
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedComment #28
Wim Leers#2896722: Leverage PluginWithFormsInterface to encapsulate @WorkflowType schema and clean up state/transition form methods. is most must-have and should-have ATM.
Comment #29
larowlanYep, down to one now #2896722: Leverage PluginWithFormsInterface to encapsulate @WorkflowType schema and clean up state/transition form methods.
Comment #30
timmillwoodAll the dependencies are done, Workflows can now be marked stable!
#2897130: Mark workflows module as stable
Comment #31
xjmYaah! this is looking happy:
So to mark a module stable, we need:
We are definitely ready for the module to be beta (I did so now in https://www.drupal.org/core/experimental), but before we mark it stable, we need to do some final review of the module overall. I reached out to Wim Leers and @tim.plunkett since they work on subsystems implemented here.
Comment #32
xjmOn the docs gate, https://www.drupal.org/docs/8/core/modules/workflows/overview is looking a teeny bit thin. I suggest a must-have issue for someone to work on it.
Comment #33
xjmComment #34
xjmUupdating the roadmap Thanks @Sam152!
Comment #35
timmillwoodTo help the docs gate I've updated the docs: https://www.drupal.org/docs/8/core/modules/workflows/overview
There's little to document, because from a site builders point of view Workflows does nothing on it's own.
Comment #37
dixon_Moving #2758623: [meta] Redesign workflow configuration page to better visually describe the flow to "could have". It's clearly a nice-to-have improvement that can be done in a later release and should not block a stable release.
Comment #38
dixon_Comment #39
xjmHm, I'm not sure about moving #2758623: [meta] Redesign workflow configuration page to better visually describe the flow to "Could have". It's clearly a high priority for usability. It could certainly be a feature addition in 8.5.x and as a "Should have" it's already not a blocker. Let's check with the product managers before making that change.
Comment #40
timmillwoodI understood this as being the roadmap for stability and thus these are the "must have" "should have" and "could have" issues for a stable release.
The #2758623: [meta] Redesign workflow configuration page to better visually describe the flow issue is refinements from the original designs in #2830584: Use modals for creating, updating, and deleting workflows, with a new DialogFormTrait, and doesn't affect data or backwards compatibility, so I can't see there being any issues with this going in after Workflows is maked stable in 8.4.0
Comment #41
xjm"Beta" is the threshold that indicates BC and API stability. "Stable", however, means "production-ready", and that the overall user experience of the module meets with product expectations. I agree it would be totally fine for a feature like #2758623: [meta] Redesign workflow configuration page to better visually describe the flow to be added in 8.5.x if Workflows is stable in 8.4.x, from a BC perspective. However, it's up to the product and usability teams to decide whether the module is production-ready without it.
Comment #42
xjmSo for now, I've moved #2758623: [meta] Redesign workflow configuration page to better visually describe the flow back to "Should" with a note. I personally would be totally fine with this advanced design work happening for 8.5.x+, but let's get input from the UX and product maintainers first.
Comment #43
timmillwoodok, so leaving that one off the table for now, the remaining "should have" is #2830584: Use modals for creating, updating, and deleting workflows, with a new DialogFormTrait which has just been round a few rounds of nit picks.
IIRC @yoroy is on vacation, so we're kinda dependent on @Bojhan for UX review, then product maintainer review, but hope you agree, Workflows is looking pretty good for stable in 8.4.0.
Then Content Moderation, I know it has it's own roadmap issue (#2755073: WI: Content Moderation module roadmap) but to summarise. There are 4 remaining should haves
So I think Content Moderation is looking good for stable too.
Comment #44
webchickWe had a product management meeting a couple of weeks back, and unfortunately looks like we forgot to comment back here. Sorry!
From our POV, the Workflow team has been doing great work on addressing the remaining known usability concerns. The biggest remaining one here was the dropbutton -> select box + button change, and that just went in recently.
The team has also been on numerous of the weekly usability meetings, showing off their work periodically and requesting guidance along the way. Their code is also in production in a large enterprise organization. While the two of these are not "usability testing" in the dictionary definition sense, they certainly work to help build confidence in the solutions being developed.
So given those factors, as well as the discussion the other week with the product management team being gung-ho to get this into 8.4.0 as stable functionality, marking this as signed off from a product management perspective. We can continue to iterate on the UI in later releases, as needed.
GO, TEAM! :D
Comment #45
larowlanWoohoo.
Personally, I agree that #2758623: [meta] Redesign workflow configuration page to better visually describe the flow is a could-have. We don't have any precedence for features like that.
Comment #46
xjmThanks @larowlan.
=
I've filed #2899553: Architectural review of the Workflows module (documentation cleanups) as a catch-all for overall issues, pinged a few people that aan help, and added them here.
Comment #47
xjmMany thanks @webchick for #44, I was mostly worried about accidentally skipping over product needs that hadn't quite been raised to "must-have", but it looks like the product team is comfortable with all of them being in later releases. Since yoroy is on vacation, that means removing the "usability review tag on his behalf. (Hopefully that's okay and he'll correct it if it's still a concern for the module overall.
I also added an explicit issue for the architectural review issue to ensue the signoff from framework and subsystem maintainer, or get ideas for future issues: #2899553: Architectural review of the Workflows module (documentation cleanups)
FInally, I looked at the remaining open WI Critical issues. These are:
Including the above, we are adding:
Here's all information to take into account when marking it stable. :)
Comment #48
timmillwood@xjm - #2862041: Provide useful Views filters for Content Moderation State fields is waiting on #2896381: "TranslationLanguageRenderer" uses the wrong table for the "langcode" column with entity revision views which is also RTBC. They both should be possible for 8.4.0.
Comment #49
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedAdding some clarifications/notes to the issues linked above.
Re: #2862041, this is currently only blocked by an RTBC views issue. It would be great to get this in.
Edit: beat me to it :)
Comment #50
xjm@timmillwood and @Sam152, that's great to hear! So hopefully a matter of committing the one and then the other once it's ready. Are they both specifically Conent Moderation vs. Workflow issues? (I just looked at the tag.) If so, if the Views one is still a critical, then let's move it up on the other roadmap appropriately and also include the link the issue blocking it there.
Comment #51
xjmAdded the four must-haves from the architectural review to the roadmap.
Comment #52
xjmAs well as the parent issue.
Comment #53
Taco PotzeThe top link to https://www.drupal.org/project/workflows in "The proposal here is to add a Workflows experimental module into core." does not work.
To be honest, I spend hours today trying to figure out what the status is and where to find what. It still dazzles me in terms of Workflow(s), Workbench, Content Moderation, Workspaces etc.
Main confusion is the https://www.drupal.org/project/workflow project that is not the Workflow Initiative.
Than here it is: https://www.drupal.org/docs/8/core/modules/workflows/overview except the module is called Content Moderation.
So for a visitor of Drupal there are 4 separate initiatives that are not easy to figure out:
- Workflow
- Workflows (Workflow Initiative) or Content Moderation
- Workbench
- Workspace (part of Workflow Initiative)
Some are linked, for example since Drupal 8.2.x the Workbench Moderation module is now in core as "Content Moderation".
Maybe an idea is to always include the 's' for Workflows Initiative? Now that things are more clear I will continue my search what to use in Open Social; Workflows or Workbench.
Thanks for all your hard work :)!!
Comment #54
Balu ErtlComment #55
Sam152 CreditAttribution: Sam152 as a volunteer and at PreviousNext commentedI think the most up to date status for all the issues will now be the normal queues.
Comment #56
amateescu CreditAttribution: amateescu for Pfizer, Inc. commentedA better status for this issue is "Closed (fixed)", which will happen in about two weeks after this comment :)