Change record status: 
Project: 
Introduced in branch: 
8.8.x
Introduced in version: 
8.8.0
Description: 

New revisions are created every time an entity or revision is updated, if that entity is being moderated with content moderation. Previously there was no way to opt out of this. By using SynchronizableInterface, users can now mark an entity as 'syncing' to indicate changes are being made to the entity which do not reflect a typical content/editorial field based change and thus should not be subject to the entity lifecycle rules content moderation enforces.

If you are using SynchronizableInterface in custom code for content entities and also depend on content moderation forcing the creation of new revisions, you may need to update your code to manually call $entity->setNewRevision(TRUE).

Note: the concept of a syncing content entity is still being explored and defined in core. You should carefully evaluate if your use-case fits the definition of a syncing content entity before using this API. This is being discussed in more detail here: #3057483: Better describe how SynchronizableInterface should be used for content entities.

An example of updating an entity which will not result in a new revision being created:

$entity = $storage->load(1);
$entity->setSyncing(TRUE);
$entity->name = 'baz';
$entity->save();

An example of updating a revision which will not result in a new revision being created:

$revision = $storage->loadRevision(1);
$revision->setSyncing(TRUE);
$revision->name = 'baz';
$revision->save();
Impacts: 
Module developers