Well, this is embarrassing, but due to an oversight, the 3.0.0 release did not actually drop its hard dependencies, as its release notes promised. Sorry about that.

This release drops the dependencies. There are no other changes beyond that.

For your convenience, the release notes from Lightning Layout 3.0.0 are repeated below. If you are on Lightning Layout 2, read them carefully before upgrading.


DO NOT upgrade to this release without reading this page first, or you may break your site!

What's changed?

Lightning Layout 3 provides no new features or functionality over Lightning Layout 2. The main difference is that Lightning Layout 3 removes all hard dependencies on contributed modules, so you no longer need to keep modules you aren't using.

Lightning Layout 3 also removes all previous database updates. This means you'll need to be fully up-to-date on Lightning Layout 2 before you upgrade to Lightning Layout 3.

Do I need to upgrade right now?

No, there's no rush. Lightning Layout 2 supports Drupal 9 and 10. However, only Lightning Layout 3 will support Drupal 11, so if you want to keep using Lightning Layout's functionality on Drupal 11, you'll need to upgrade at some point.

The main advantage of upgrading sooner is to remove contributed modules that Lightning Layout 2 requires, but that you're not using. Lightning Layout 2 will reach its end-of-life at the same time that Drupal 10 does.

Anything else I should know?

All of the Lightning components have released new major versions which drop hard dependencies. Because this kind of change can break your site, you must upgrade all the Lightning components at the same time. The good news is that they can all be upgraded in the same way, so you only need to do this process once, no matter which Lightning component(s) you're using.

Upgrade Instructions

You'll need Composer 2 or later, and Drush 10 or later.

There are two parts to this process: bringing the Lightning components up-to-date, then upgrading them to the next major versions.

Part 1: Get the Lightning components up to date

  1. Update the Lightning components to their latest versions:

    composer update 'drupal/lightning_*' --with-all-dependencies

  2. Run database updates (drush updatedb, or visit update.php).
  3. At this point, you should be running Lightning Layout 2.14. Export config if needed, commit changes, and deploy to your dev, staging, and production environments. Be sure to run database updates on those environments too.

Part 2: Upgrade the Lightning components to the next major version

At this point, all environments should be running Lightning Layout 2.14.

  1. Back in your local environment, clear all caches:

    drush cache:rebuild

  2. Run drush update:lightning --upgrade. This will automatically move all the Lightning components' dependencies into the project's composer.json, and bump the components themselves to their next major versions. You can use the --commands-only option to leave composer.json untouched and only display the equivalent Composer commands. (This will happen automatically if composer.json isn't writable.)
  3. Run composer update 'drupal/lightning_*' --with-all-dependencies.
  4. Run database updates again (drush updatedb, or visit update.php).
  5. Export config if needed, commit changes, and deploy again, running database updates on target environments as well.

Technical Info

This information is meant for technical users who are comfortable working directly with composer.json. If that's not you, you may cheerfully ignore this section. πŸ™‚

What is this doing?

The goal of this upgrade path is to "transfer" dependencies from the control of the Lightning components, to the control of the site owner. So this upgrade path simply moves the dependencies of the Lightning components you have, to your project's composer.json. To minimize the chances of things breaking, the update:lightning command will try to pin the dependencies to their currently-installed versions; if that's not possible, it will use the same unpinned version constraints defined by the components.

With dependencies controlled by the site, rather than by the components, it becomes possible for the site owner to update modules independently of the Lightning components, or uninstall modules that aren't needed. This can also allow for easier upgrading to new major versions of Drupal, since sites won't need to wait for all of the Lightning components' dependencies to become compatible.

What changes should I expect to see in composer.json?

You'll see a lot of new dependencies in the require section. In fact, these things were already installed -- it's just that the Lightning components were installing them for you, rather than your site requiring them directly.

To minimize the possibility of your site breaking, all of the components' dependencies are moved into composer.json, rather than the upgrade script trying to detect which ones are actually in use. You can remove the ones you don't need.

You'll see some patches for Panels and Panelizer listed in the extra section, along with a dependency on the cweagans/composer-patches plugin. You can remove these patches if your site doesn't use those modules. (If you don't need to patch modules at all, you can also remove the dependency on cweagans/composer-patches.)

If you have Lightning Media installed, you should also see an installer path for the enyo/dropzone package listed in the extra.installer-paths section. You'll want to be sure that the installer path matches the libraries directory in your Drupal site.

VCS Label
3.0.1
Short description
Drops hard contributed dependencies. Read release notes before upgrading!
Packaged Git sha1
d55cd32424aaba46dfd908622a57b086e3eb3d6a
Release files
2f7f34f63ab9299d0add1060a2ca74a5
Release file SHA-1 hash
f85aef4f5c304828555a38d981718c478d671534
Release file SHA-256 hash
de59afb3b039b0af9acc76c24c8bd01dc2640d58c1adc07fa84b36a3197b0ab8
5827106d6db22d2cb7ed3edb16ef4be0
Release file SHA-1 hash
882ac286aa1fc0e5a250c23afbf2a9a1e7a4613f
Release file SHA-256 hash
19278b6aefcab7ef04079c6b29bac787c3941982a0e6db7390721808a5e9993d