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

alexpott created an issue. See original summary.

dsnopek’s picture

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.

I 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..

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.0-alpha1 will be released the week of January 30, 2017, which means new developments and disruptive changes should now be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

DamienMcKenna’s picture

FYI 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.

andypost’s picture

It should upgrade config to new layout names if core has the same

DamienMcKenna’s picture

FYI 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.

xjm’s picture

The 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 in layout_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.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

tim.plunkett’s picture

Component: layout.module » layout_discovery.module

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.