Issue #3618665: Drop the plugin.manager.archiver dependency, which Drupal 12 removes

Core's Archiver subsystem is deprecated in drupal:11.3.0 and removed from drupal:12.0.0 with no replacement (change record), so injecting its plugin manager makes the container unbuildable on Drupal 12:

ServiceNotFoundException: The service "webform_submission.exporter" has a
dependency on a non-existent service "plugin.manager.archiver"

That is a hard boot failure rather than a deprecation notice: any kernel test that installs webform dies during container build, and a site on Drupal 12 would not boot with webform enabled.

The dependency is unused

In both places the manager is assigned to a property that no method is ever called on, so this is pure removal and nothing loses behaviour:

  • webform.services.yml line 89, the fifth argument to webform_submission.exporter
  • src/WebformSubmissionExporter.php, the import, the @param, the constructor parameter, the property and the assignment
  • modules/webform_devel/src/Form/WebformDevelEntityFormApiBaseForm.php, the property and the $container->get('plugin.manager.archiver')

One judgement call for the maintainers

Removing the constructor argument narrows WebformSubmissionExporter's signature. Nothing in webform constructs it directly, the container is the only caller, but if 6.3.x prefers to preserve the signature for downstream code the parameter could be kept and defaulted instead. The service argument has to go either way, because the service itself no longer exists on core 12.

How it was found and verified

Applied as a composer patch on a Drupal 12 pipeline in another module's CI, alongside the MR from [#3618362]. On its own [#3618362] clears the getGroupedDefinitions() signature fatals and then this surfaces, 55 times. With both applied the container builds and webform's plugin discovery runs.

Related to [#3578701], which removes the abandoned pear/archive_tar package. This is core's plugin.manager.archiver service, a separate dependency.

Merge request reports

Loading