Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

change_requests

27 sites Security covered
View on drupal.org

Change Requests is a community tool that allows to work together on Drupal content (nodes) without edit-wars (see Wikipedia - Edit-Warring) similar to open source code developers working together on a code. All (authorized) users can use the form to edit content, but their changes wouldn’t be stored in the node but in a separate entity: a so-called „patch entity“. This patch can be evaluated in a variety of ways (i.e. by the user-community) and taken over to the node at a later date.

The approach is inspired by the Git workflow called „pull request“. The most important difference is that the basis of change requests are Drupal nodes instead of code files.

The changes are stored field-by-field completely independent of the contents revision history. The changes are not saved as full content, but as programmatically change statements. I.e. "In field_tag remove item with target_id 23 and add target_id 45; In the field_body find the words "Peter and Mary" and replace it with "Peter or Mary". The patch results are always visible in a diff view, with the changes proposed by the patch author highlighted (similar representation diff modules).

When accepting change requests, so-called "merge conflicts" can occur because the contents may have changed in the meantime between creation and acceptance of the change request. Therefore, the user who performs the merge is offered an interface in which the diff view is displayed on the left and the result of the automated merge process as an editable form element on the right. If there were any conflicts in taking over the changes, they can be fixed in this view before saving.

If a change request has been accepted, a new revision of the node is created in each case and the name of the patch author, creation date, link and title of the patch are entered as the log message. Thus, any changes to the node (using the Diff module) remain transparent at all times.

Almost all field types from the Drupal core are supported. For custom field types, a documented plugin interface is available to retrofit support for change requests for these fields.

Dependencies

The module uses the Changed Field API
Text changes will use Google's 3rd-party-lib „diff match patch“, ported to PHP by
yetanotherape.

Activity

Total releases
3
First release
Feb 2026
Latest release
4 weeks ago
Release cadence
20 days
Stability
100% stable

Release Timeline

Releases

Version Type Release date
2.1.4 Stable Mar 20, 2026
2.1.3 Stable Feb 14, 2026
2.1.2 Stable Feb 9, 2026