More thoughts on the Drupal upgrade model and Drupal 8.4

As I experienced some issues upgrading to Drupal 8.3, I thought I should be more prepared this time, and tried out the Release Candidate version of Drupal 8.4.

The previous minor version of Drupal is unsupported

The new upgrade model in Drupal 8 includes the policy that the previous minor version is unsupported. So if you want to have security support for your production site running Drupal 8, you must upgrade immediately, or at least be prepared to upgrade immediately if a patch release with a security fix comes out.

We already know that changes between minor versions of Drupal 8 can have major consequences for contrib modules. To be able to upgrade and keep security support, site maintainers need to test Drupal Release Candidates, and all possible issues with contrib modules need to be resolved before the new minor version of Drupal comes out.

Drupal 8.4 may introduce backwards compatibility issues

One of the changes in Drupal 8.4 is the inclusion of the Media module in core. Thankfully it looks like migrating from Media Entity to the core Media module will be a much better experience than it was with Layout Plugin and Layout Discovery. It is great that so much effort is put into this, undoubtedly partly because the Thunder and Lightning distributions depend so heavily on Media Entity. Thank you to everyone involved in bringing Media in core!

Drupal 8.4 also includes major version updates for two dependencies: Symfony 3.2 and jQuery 3. Both of these updates do sound like they could break many contrib modules. In my very limited testing on a couple of sites I maintain I found one module broken by the Symfony update, and one module broken by Drupal 8.4 for some reason. It is possible that both of these contrib modules will have a working release before Drupal 8.4 is released, but it will still be interesting to find out how many contrib modules altogether are affected.

Security support for the previous minor version would help a lot

I’d be surprised if I was the only one who feels a bit uneasy about the official policy of no security support for the previous minor version of Drupal. This policy most likely leads to increased testing of Release Candidates, which is a good thing. But I’m not sure if the time window between the first RC and the release is long enough for every problem to be discovered and fixed. This puts a lot of pressure on contrib.

A commitment to provide security support for the previous minor version of Drupal 8 would give more time to get everything fixed in contrib, and give more peace of mind for people responsible for maintaining secure production sites.

Update: I have now opened a core issue about this.

Comments

Permalink

I also ran into a problem in the module https://www.drupal.org/node/2907801 . For some reason, the parameter with the interface type from the constructor was deleted.
Patching the kernel code is a bad practice, so I do not know what I did correctly, and maybe I need to look for another way to get the parameters.
What do you think about this?

Thanks for your comment Dmitry! I think you have discovered a backwards compatibility breaking change in core, which is not allowed in a minor release. This same change affected my own Entity Submenu Block project, something I had not even discovered myself yet! I posted a comment about this in the relevant Drupal core issue: https://www.drupal.org/node/2856625#comment-12262518

Edit: reading https://www.drupal.org/core/d8-bc-policy I learned that that even if inconvenient for some contrib projects, this change is not against BC policy. Still, it would be nice to introduce changes like this in a major release if not actually required for some new core functionality.

Permalink

I'm not sure I would hold up the media entity experience as any sort of yardstick. Yes, media module has been added to core, but the module itself is hidden. There is no user interface for adding fields to files/media entities, the media_entity module itself is deprecated and no longer works, and none of the documentation describes any of this.

Thanks for your comment, but in my tests I found that Media Entity works just fine in Drupal 8.4-rc1. The recommendation is to keep using Media Entity until the upgrade path for Media Entity and related contrib modules is ready. This will likely take some time.

Edit: you might have been thinking of the contrib Media module? I don't think it ever had a proper 8.x release and the 8.x branch has indeed been abandoned.

As I experienced some issues upgrading to Drupal 8.3, I thought I should be more prepared this time, and tried out the Release Candidate version of Drupal 8.4.