Install
Works with Drupal: ^10.3 || ^11Using Composer to manage Drupal site dependencies
Alternative installation files
Release notes
Highlights
- Multilingual translation safety: Revisions that are the active revision for a translation can no longer be accidentally deleted, preventing translation data loss on multilingual sites.
- Major performance improvements: The queue worker and batch operations now use entity queries instead of loading full revision entities, dramatically reducing memory usage and database load on sites with many revisions.
- Prior revision deletion reworked: The "delete prior revisions" UI and batch now process revisions in bulk with a configurable threshold, caps the form display to 20 revisions to prevent out-of-memory errors, and correctly reports skipped revisions (default or active for another language).
- Time-based requeuing: Nodes with time-protected revisions are now automatically requeued for future processing, ensuring revisions are deleted once they age out. The Drafts plugin now supports this.
- Cron performance: The cron time allocation for the queue worker has been reduced to avoid long-running cron jobs.
Changes
Bug fixes
#3543480: Revision translation affected for more than one language could lost translation
#3167246: "Delete prior revisions" doesn't work if site builder uses "Account administration pages"
#3363362: Error: Call to a member function getTranslationLanguages() on null in Drupal\node_revision_delete\Plugin\QueueWorker\NodeRevisionDelete->processItem()
#3512434: Outdated revisions are not added to queue unless they are resaved
#3425134: Cannot remove Overridden Setting for a content type
#3583390: Revision translation affected for more than one language can be deleted by delete prior revisions functionality
#3584872: Prior revision deletion form can easily cause out-of-memory errors
#3586441: Requeue of time protected only nodes uses the highest time protected only revision when it should use the lowest
#3585263: Unable to save content types when not overriding number of revisions
Performance
#3508327: Batch to add all nodes to queue loads all nodes at once.
#3581256: Performance: do not load revisions unless you have to
Tasks and improvements
#3582718: Name Drush commands consistently so both commands appear in their own section together
#3583397: Requeuing nodes from UI improvements
#3583398: Drafts plugin should implement NodeRevisionDeleteTimeBasedInterface
#3584331: The cron time for the node revision delete queue is extremely long
#3584692: Consistent strtotime('-2 months')
#3584695: Fix grammar issues in \Drupal\node_revision_delete\NodeRevisionDeleteBatch
#3584698: Use formatPlural for month strings in selector
#3584706: Small improvements
#3586447: Expand \Drupal\node_revision_delete\Plugin\NodeRevisionDeleteQueryInterface to pass the node to the two methods to allow plugins easy access to the default revision entity