Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Problem/Motivation
Once #2296423: Implement layout plugin type in core lands core will have a new module "Layout Discovery" that is incompatible with the contrib "Layout Plugin" module. This issue will plan the necessary steps for all the module involved in migrating their dependency from "Layout Plugin" to core.
Proposed resolution
The steps recommended here are going to assume that the layout plugin is going to be marked stable in 8.4.0.
- The current release versions of Display Suite, Panels and Layout Plugin (and any other modules that depend on layout plugin) need a new bug fix release to add a dependency on core < 8.4.0.
- Layout Plugin needs an new minor release that depends on core >= 8.4.0 and contains no code. And changes the module to hidden and adds a requirement warning to disable the module because it is no longer supported.
- Display suite and Panels (and any other modules that depend on layout plugin) needs a new minor release to remove the dependency on layout_plugin and add a dependency on core >= 8.4.0
- The layout discovery functionality should be moved to core/system include the service, theme hook and template - the hook_requirements should be changed to recommend uninstalling the module and the module should be set to hidden.
It would be good to commit to the minor release of core that is going to stabilise the layout plugin ASAP to get the bug fix releases that add the core dependency out ASAP.
Comments
Comment #2
dsnopekI don't know that a completely empty module is the best. We could include the same classes and interfaces that we did in the past, but have them extend the ones from core, which could potentially allow modules using layout_plugin from contrib to keep working unchanged. This is something I'd like to experiment with..
Comment #4
DamienMcKennaFYI I opened #2857411: Plan for Panels 8.x-4.0 to keep track of the issues we need to have a first beta release of Panels with the new layout system.
Comment #5
andypostIt should upgrade config to new layout names if core has the same
Comment #6
DamienMcKennaFYI after work from japerry, tim.plunkett and Mixologic, we now have a (beta) release of Panelizer that is compatible with 8.3.x's layout system.
Comment #7
xjmThe summary of this is probably out of date since it was last updated before the big Panels sprint. #2834025: Mark Layout Discovery as a stable module currently provides templates for Stable. The service and theme hook already are wrappers, although
template_preprocess_layout()
is still there inlayout_discovery.module
.According to @tim.plunkett, Panels and Panelizer have complete upgrade paths and upgrade path tests. Tim wasn't sure about Display Suite.
Folks could help out here by installing earlier versions of the modules and configuring them, and then testing what happens when they update them and core.
Comment #10
tim.plunkett