PHPackages                             josephdpurcell/wbm2cm - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. josephdpurcell/wbm2cm

ActiveDrupal-module[Utility &amp; Helpers](/categories/utility)

josephdpurcell/wbm2cm
=====================

Migrates from Drupal 8.4 Workbench Moderation to Content Moderation.

1.0.1(8y ago)13921GPL-2.0+PHP

Since Aug 18Pushed 8y ago1 watchersCompare

[ Source](https://github.com/josephdpurcell/wbm2cm)[ Packagist](https://packagist.org/packages/josephdpurcell/wbm2cm)[ Docs](https://github.com/josephdpurcell/wbm2cm)[ RSS](/packages/josephdpurcell-wbm2cm/feed)WikiDiscussions 8.x-1.x Synced 2mo ago

READMEChangelogDependenciesVersions (3)Used By (1)

Workbench Moderation to Content Moderation Migration
====================================================

[](#workbench-moderation-to-content-moderation-migration)

This module migrates the Workbench Moderation module in Drupal 8.4 to the Content Moderation module in Drupal 8.4.

This module is designed to execute the following 8 steps in a recoverable fashion:

1. States and transitions are stored in key value (i.e. the Workflow entity is created)
2. Entity state maps are stored in key value
3. WBM uninstalled
4. Workflows installed
5. CM installed
6. States and transitions are migrated (i.e. the Workflow entity is created)
7. Entity state maps are migrated
8. Remove all temporary data from key value used for the migration.

If any step fails, the opportunity should be there for a human to recover from the failed point and re-run the migration without having to start the process over.

Disclaimer
==========

[](#disclaimer)

This module is experimental and should NOT be used on a live production system. Thoroughly test before running. Recovery of data is NOT guaranteed.

Tested Scenarios
================

[](#tested-scenarios)

This module so far has only been tested with the \[[https://github.com/josephdpurcell/drupal8\_wbm2cm\_concept-project\](WBM2CM](https://github.com/josephdpurcell/drupal8_wbm2cm_concept-project](WBM2CM) Drupal Profile) which constructs a scenario where a content type has Workbench Moderation enabled on 3 entities, and those entities are successfully migrated to Content Moderation.

A single test was done by enabling translations on the Page content type, adding a French translation, and success state was that post-migration the translation retained the moderation state it previously had.

Untested Test Scenarios
=======================

[](#untested-test-scenarios)

- Large data sets (i.e. &gt; 1,000,000 entities)
- Workbench Moderation enabled on multiple entities with different workflows
- Forward revisions, e.g. an entity that is published and has a draft revision waiting to be published
- Forward revisions on translations
- Translations that have multiple revisions each with different moderation states
- Recovery scenarios, most notably ability to re-run the recreation of the state map if an entity save fails

Improvements
============

[](#improvements)

- Validate the migration before beginning
- Follow the Search API pattern for use of batch api to allow arbitrary tasks to be defined and processed

Known Bugs
==========

[](#known-bugs)

- When using this module with the [https://github.com/josephdpurcell/drupal8\_wbm2cm\_concept-project](drupal8_wbm2cm_concept) install profile the body field is not visible at /node/{id}/edit. At present, it's unclear whether that is an issue with the migration, the install profile, or something else.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

2

Last Release

3185d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5b5fe46dbaaeeb0e04fc001ec61b48d4a84beff19545f31d9902430a283f9ebe?d=identicon)[josephdpurcell](/maintainers/josephdpurcell)

---

Top Contributors

[![josephdpurcell](https://avatars.githubusercontent.com/u/778111?v=4)](https://github.com/josephdpurcell "josephdpurcell (17 commits)")

---

Tags

drupal

### Embed Badge

![Health badge](/badges/josephdpurcell-wbm2cm/health.svg)

```
[![Health](https://phpackages.com/badges/josephdpurcell-wbm2cm/health.svg)](https://phpackages.com/packages/josephdpurcell-wbm2cm)
```

###  Alternatives

[lullabot/amp

A set of useful classes and utilities to convert html to AMP html (See https://www.ampproject.org/)

3802.9M10](/packages/lullabot-amp)[drupal/core-composer-scaffold

A flexible Composer project scaffold builder.

5341.9M441](/packages/drupal-core-composer-scaffold)[drupal/core-project-message

Adds a message after Composer installation.

2122.6M172](/packages/drupal-core-project-message)[aleksip/plugin-data-transform

Data Transform Plugin for Pattern Lab PHP

34897.4k3](/packages/aleksip-plugin-data-transform)[acquia/drupal-recommended-settings

The composer plugin for adding drupal-recommended-settings for Acquia Cloud.

101.1M4](/packages/acquia-drupal-recommended-settings)[tripal/tripal

Tripal is a toolkit to facilitate construction of online genomic, genetic (and other biological) websites.

709.9k9](/packages/tripal-tripal)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
