Problem/Motivation

We don't have clarity on the terminology around "published" vs. "(default, forward, draft) revisions". See #2858431: Book storage and UI is not revision aware, changes to drafts leak into live site, comments 22-25 for example.

Proposed resolution

Clarify when to use which term. Document those guidelines, then create new issues for implementing the changes.

Remaining tasks

User interface changes

Wording changes on buttons, labels, help texts, messages.

Agreed changes

  • #92. Use the word "Draft" only to indicate a moderation state. Do not use it to indicate how this entity relates to the default one. So "pending version" instead of "pending draft".
    We liked "pending" better than "forward", it's clearer and more specific.

API changes

none?

Data model changes

none?

Comments

yoroy created an issue. See original summary.

catch’s picture

Some points for discussion. I'm not sure these are good ideas, but some current thinking based on constantly getting turned around by terminology around this for approaching ten years now. Also we're inconsistent with these terms when discussing things amongst ourselves as core developers, let alone in UI text, so while we should think about interface text, we should also think about a shared conceptual vocabulary for code comments and issue discussions as well.

I think we should completely excise 'forward revision' from our vocabulary. Depending on what kinds of workflow modules people are using, draft/pending revisions can be in the past relative to what is currently published, this is especially true with workspaces. The timestamp on a revision is not important for us really.

Draft revision vs. default revision gets a bit tricky too. i.e. some revisions are draft, but might be rejected drafts that remain in the history but are archived rather than waiting to be published. Also a draft revision of an unpublished node could also be the 'default revision' - you can edit an unpublished node and create new revisions while doing so, but the distinction between default and draft isn't necessary when nothing is published.

This leads me towards 'pending revision' as in 'a revision that has not been published yet, in some kind of active workflow state'.

In turn, using pending revision, allows 'draft' and 'draft revision' to refer to revisions of not-yet-published entities as well as not-yet-published revisions to published entities, both of which are valid from a common sense perspective at least.

Published revision means 'the default revision on a published entity'. 'default revision' means 'the revision you get when you load the entity without requesting anything specific'. These are two slightly different concepts and I think content authors really care about published vs. draft versions and not defaults.

6. An entity as a whole can be in a draft state in the sense of the default revision being unpublished, but this is absolutely not a 'forward revision' in that case.

7. The concept of 'default revision' as such is a technical implementation detail and not really relevant to content authors. People really need to know - are they editing the published version or a draft?

In terms of UI text:

"There is a published version of this $entity/bundle, you are currently editing a draft version"

"The version you are editing is a draft, and must be published for changes to appear on the site"

"This change can not be made to drafts and must be done after the $entity/bundle is published"

Something like that...

timmillwood’s picture

Issue tags: +Workflow Initiative
timmillwood’s picture

Opened a follow up about changing 'forward revision' to 'draft revision' #2890364: Replace all uses of "forward revision" with "pending revision".

plach’s picture

plach’s picture

Big +1 on #2 FWIW

plach’s picture

Priority: Normal » Major
Issue tags: +WI critical

This is marked as MUST-HAVE in the roadmap.

yoroy’s picture

Initial drive-by comment, not a deep dive:

Is there a clear reason we use "revision" instead of "version"? I know that's what it's called now in the revisions tab etc, and probably not the most pressing of issues in this realm. I do wonder though, I see Word documents with a manually maintained *version* history ("v. 2.1, added requirements for the foo feature"), not revision history.

It's somewhat telling that in #2 @catch uses both words and tends toward "version" in his user facing text examples :)

yoroy’s picture

Discussed this during todays UX meeting. Some potential guidelines could be:

1. Use "version" in user facing text. Do not use "revision" in user facing text. It could stay "revision" in code/comments
2. Use the word "Draft" only to indicate a moderation state. Do not use it to indicate how this entity relates to the default one. So "pending version" instead of "pending draft".

We liked "pending" better than "forward", it's clearer and more specific.

I *think* this mostly supports the suggestions in #2. I now realise we did not discuss "default".

Does this help? Do these 2 guidelines hold up or where could they break?

xjm’s picture

xjm’s picture

#1643354: [Policy, No patch] Overhaul the entity revision terminology in UI text really has a lot of useful discussion around this (and some stalled discussion as well), with a survey of terminology used in various other places. Here are some examples from other sources from that issue (circa 2012, but there you go):

I think #2890364: Replace all uses of "forward revision" with "pending revision" was meant to illustrate where that proposed terminology would and wouldn't work. We can look at examples from that patch

xjm’s picture

From #2890364: Replace all uses of "forward revision" with "pending revision":

If #2875154: Clarify and document wording around drafts, revisions, published & friends is still so early in discussion, how do we know if this is RTBC? I see Bojhan in #15 saying it is signed off. However, let's consider the implications for a bit. With the terminology on this issue, you can have a non-draft revision that is a draft ;) That is, you have an unpublished default revision (AKA draft) yet you don't have any draft revisions (AKA forward revisions).

@Bojhan asked for clarification on #17. His point was that the user does not necessarily need to get different terminology based on whether the draft has a prior published variant or not. That is a good point. So my point in #17 may be moot. However, we realized another thing in the meantime...

Draft is a workflow state included in core (alongside Archived and Published). Let's say I also add a state "Approved for translation (before publication)" which is not yet published but is more reviewed than Draft (goes between Draft and Published). Now I can have a forward revision that is "Approved for translation (before publication)" and is not a "Draft". Is this a draft revision?

xjm’s picture

#2890364: Replace all uses of "forward revision" with "pending revision" is about trying to pick less-worse machine names for content moderation before it's marked stable. So the question is whether draft_revision is less worse than forward_revision as a machine name. It might set precedent for user-facing names as we add more workflow features to core, but we can also always refine user-facing labels in the future.

Edit: But I guess it'd be pending_revision based on the above.

davidhernandez’s picture

Feel free to call me a drive-by commenter, but this issue seems to be stumbling a bit on the "Clarify" part. Reading through all this my brain is like, "wha?" Is there a list/chart of all the states and their relationships to each other, so it would be easier to see the whole picture?

Everywhere the word "history" shows up, do we even need the word revision or version in front of it?

In #9, definitely agree that pending is better than forward.

timmillwood’s picture

This is the issue I am most concerned about for getting Content Moderation stable.

Here it has digressed a little into should we change user facing instances of "revision" to "version" or not.
Where as the forward / pending / draft debate has been sectioned off into #2890364: Replace all uses of "forward revision" with "pending revision".

Should this issue switch to a "task" with an updated title and issue summary to focus on "revision" Vs "version"?

amateescu’s picture

Issue tags: -WI critical

For the 'revision' vs. 'version' part, we had *a lot* more discussion in #1643354: [Policy, No patch] Overhaul the entity revision terminology in UI text, but that issue was also not able to reach any meaningful conclusion, so I vote to follow @webchick's comment from #1643354-127: [Policy, No patch] Overhaul the entity revision terminology in UI text and wait until we have some actual usability testing for the revision functionality.

Since we will most likely keep using the word 'revision' in code, and UI labels can always be changed at a later date, this should no longer block Content Moderation from becoming stable.

For the 'forward revision' vs. 'pending revision' discussion, we seem to have unanimous support for 'pending', so let's do that in #2890364: Replace all uses of "forward revision" with "pending revision".

plach’s picture

I fully support this decision: UI text can be updated in any minor release based on the findings of usability testing sessions, whereas any change in code terminology would need a BC layer. Let's get that done based on the consensus reached here. If it turns out users understand "version" better than "revision" (or X better than "pending"), we can always add the BC layer, if we really feel the disconnect between UI and code terminologies is unbearable.

larowlan’s picture

Issue summary: View changes

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.

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.