Drupal 8.5.5

Drupal 8.5.5 is available. Is it the magic upgrade we are waiting for? No, Drupal 8.6 brings the next important improvement and 8.6 is ready for testing.

Drupal 8.4 and 8.5 include important media asset management improvements. Drupal 8.6 includes the last of the important media asset changes. Drupal 8.5.5, compared to 8.5.4, has mostly minor documentation adjustments. All the YAML config files are changed to contain 8.5.5 as the version. There are minor Drupal 7 migration enhancements. There are some other minor changes but no improvement in functionality. Drupal 8.5 is stable.

Documentation

Some of the documentation enhancements are good. They are explaining the use of the code at a low functional level. What is missing is documentation on how things fit together. As an example, when a class is extended, a useful list would be the classes extending this class or extending a class that extends this class.

The next level up, the level that is missing and cannot be generated by a computer, is the why and when aspect. When do you use this class and why?

The logic is often buried in chat sessions. We see the code after the decision is made but do not see the logic behind the code. Drupal development is slowing down to the point where the documentation should be able to catch up but, due to the overall complexity of Drupal 8, there are few developers who understand enough to create the documentation.

Drupal 8.6

Drupal 8.6 is available as an alpha1 version ready for testing. If you use any media functionality, you should test Drupal 8.6.0-alpha1 and feed back any problems with the upgrade or the resultant Web site.

A simple test would be to copy your Drupal 8.5 Web site then upgrade the copy.

Traits

The 8.5.5 update does not change the way anything is performed. 8.6.0 replaces a lot of current code with traits. Traits are good and bad in various ways. We know the Drupal developers go overboard with anything new then the next major release goes back the other way or jumps on a replacement fashion.

Traits change the way you do testing. Traits make some code less visible. You look at a class and the code is using invisible methods because they are included from traits. A change to a trait is global and can cause pain.

Think of a class called message that handles a specific type of message. When you access methods of message, the methods are specific to the message object. Change the message class to a trait and include the message trait in dozens of other classes. What happens?

All those other classes take longer to compile but the compiled version is cached and does not slow down your Web site. In fact you save all that time creating message objects and calling message methods. Your total processing workload decreases. Traits are good.

The message trait includes a method named send(). Some of your classes include their own send() method. You suddenly need the message trait in a class that has a send() method. What do you do?

This is one of the trait bad effects. You have to rename either the send() in the class receiving the trait or rename the send() method in the trait. A good approach is to rename the send() in the message trait to message_send() as a really obvious identification of the method.

Now think about a trait used in Drupal and available to developers of Drupal add on modules. How do you handle the change when the trait changes?

Traits are good when used the right way and their use is clearly indicated to potential users. Class composition is the old way, uses more processing resources, and avoids the new problems created by traits. I have not found a good documentation page discussing the future use of traits in Drupal.

Media entities

Drupal 8.4 and 8.5 moved media code and data into regular entities. Drupal 8.6 completes the change by converting various list and display functionality to use media entities. This last bit was supposed to be in Drupal 8.5 but was deferred. If you are starting a new Web site and use media, look at developing with Drupal 8.6 and launching with the first 8.6 beta release.

Conclusion

Update from Drupal 8.5.4 to 8.5.5 because it fixes some small errors. Immediately after the update, copy your Web site and test an upgrade to Drupal 8.6. Repeat for every alpha and beta version. It should be safe to convert to Drupal 8.6 with the first release candidate.