If you use modules like Panels, Panelizer, Context, Bootstrap Layouts or context and you are trying to figure out how to upgrade a Drupal website from 8.1.* or 8.2.* to 8.3. The modules I mentioned before have a dependency with Layout plugin, a module that cannot be run at same time as Layout Discovery module in a Drupal 8.3.x instance.
There are a few places where you can find the steps to do this upgrade, but most of them involved to do things like re-install models, but that is not recommended for websites that are already running in production or they are in an advanced stage of the project. Here is an upgrade path that might work for you.
- Look on every contrib module installed if exists a newer version compatible with 8.3, not only modules that have a dependency with Layout Plugin or Content Moderation needs to be updated.
- Choose one of the recommended options to update the core on this link.
- Create backups of your files and database and prepare a process to roll back the changes in case something goes wrong during the update.
drush sset system.maintenance_mode 1 cd ../../ composer update drupal/core --with-dependencies # Rename temporally bootstrap_layouts.services.yml mv ./modules/bootstrap_layouts/bootstrap_layouts.services.yml ./modules/bootstrap_layouts/bootstrap_layouts.services.yml.bak # Disable layout_plugin module and enable layout_discovery module cd sites/default/ drush pmu layout_plugin -y drush en layout_discovery -y # Restore bootstrap_layouts.services.yml mv ../../modules/bootstrap_layouts/bootstrap_layouts.services.yml.bak ../../modules/bootstrap_layouts/bootstrap_layouts.services.yml drush cc module-list; # Perform database updates drush updb -y drush cr # Apply any entity updates available drush entup -y drush cr # Sanity check to make sure no errors or failed updates are not being applied. drush updb -y drush cr drush sset system.maintenance_mode 1