Finally, the time has come; Drupalcon has officially opened its doors. I already provided an overview of my session plan in the last blog post. Now it's time for a summary of day one. Get it while it's hot!
Automated Testing with Jasmine and PhantomJS
Drupal has been shipped with an integrated testing framework since version 7. In addition to so-called unit tests, this can also perform interface tests to a limited extent. For example, checking if the markup for a specific button is rendered or if a list is complete. However, it's not possible to test JavaScript and thus AJAX functionalities with it. This is where Jasmine and PhantomJS come into play.
Ronn Abueg and Aisha Kaliel provided a comprehensive overview of how this combination can help automate manual interface tests and even have it all handled by a Continuous Integration server like Jenkins. For me, this practically screams for closer integration with Drupal. We will see what the community comes up with.
Asset Management in Drupal 8
It probably takes the stage presence of a Sam Boyer to explain to the community that, shortly before code freeze, they don't quite know exactly how they will finally approach asset management, and still get away with applause. What we know so far: In Drupal 8, assets, primarily stylesheets and script files, are managed based on Assetic, a component also used in Symfony 2. The current, somewhat unfortunate, solution with drupal_add_css, drupal_add_js and #weight attributes will be removed and replaced by one of 3 possible options.
- Exclusively via the
#attachedattribute, as already known from the Forms API. - Combination of
#attachedand direct access to the Assetic classes. - As annotations on Block Plugins and via
#attached.
More precise details are not yet available. However, all mentioned approaches sound sensible and represent a significant improvement to the existing system.
Another highly interesting point is the integration of filter systems that can preprocess assets. This should allow Drupal to directly handle preprocessors like SASS or CoffeeScript. There is even consideration for shipping the necessary executables directly with it. An idea that currently still raises many questions regarding security and version compatibility. Professionals will probably continue to prefer working with their own tools, but in the area of people just learning to use them, this would certainly represent a huge advantage for Drupal.
The current state of Drupal 8 – Dries Keynote
Dries Buytaert's major keynote was, of course, the event of the day. In addition to the adequate and appropriate dose of community flattery, even from the White House, the focus was naturally on the future of Drupal. Moving away from being a pure CMS, towards so-called Web Experience Management or in short, WEM. This means a system that reacts context-sensitively to the user's needs and adapts content and presentation.
The right content, at the right place, at the right time.
Another important point focused on interoperability and connectivity. Drupal should interact with other Best of Breed systems, rather than trying to replace them. At this point, the leap of thought to fluxkraft was not far. Innovation from Austria!
The presentation concluded with a feature video for Drupal 8 and the obligatory DrupalCon group photo.

Backbone.js with Drupal 7 & 8
Many do not know that Backbone.js and Underscore.js have now made it into Drupal Core. Used internally primarily for the Inline Editing feature, layouts and the mobile toolbar, they open doors for complex JavaScript applications. Vadim Mirgorod gave an overview of what Backbone is, how it differentiates itself from other JavaScript Application Frameworks, and how it can be used with Drupal. Particularly interesting was the note that Twig Templates (with the appropriate plugin) can also be processed by Backbone. Using the same templates server and client-side would simplify many things and provide Drupal with unique options for hosting Single Page Applications.
Status of the new entity API and typed data
As expected, the Core Conversation led by Sascha Grossenbacher and Wolfgang Ziegler was very (very, very, very) technical. All the more exciting was the information packed within it! Typed data is no more and no less than the endeavour to create a unified interface for data types in Drupal 8. Currently, three different data type systems (Token, CTools and Entity API/Rules) coexist, which communicate with each other with difficulty. With the planned approach, Panels, Rules and other subsystems yet to come would automatically be fully interoperable. This may not seem too spectacular at first glance, but if it really works, this is one of Drupal 8's most important features.
Scalable and modular architecture for CSS
One of my highlights of the day. For someone who spends as much time in the frontend as I do, it was a mandatory event anyway. Jonathan Snook explains with much wit and irony why stylesheets are not just digital painting by numbers, and what to consider to avoid falling flat on your face every few steps. The most important sentence uttered, in my opinion, was:
Don’t code CSS for the page, code CSS for the system.
SMACSS (Scalable and Modular Architecture for CSS) is the approach explained by Jonathan and will also be implemented in Drupal 8 with slight modifications. If you want to experiment with it now, I recommend the current beta version of Omega. This is one (or the) Drupal Base Theme that, among other things, polishes the HTML markup to be SMACSS compliant.
Saving the best for last
Throughout the day, volunteers were sought (and quickly found) who were willing to participate in the Drupal 4 OK initiative. By evening, a team had formed that was in the process of setting up an information page for the victims of the tornadoes in Oklahoma.
With some bad conscience – but too many cooks spoil the broth – some of the others found their way to the Lullabot party (with a live band), where one could then admire prominent faces of the Drupal community in close quarters.


