Skip directly to content

VDC status update (and a report from our London sprint)

on Mon Feb 4, 2013

There's less than a month until the end of Drupal 8's feature completion phase, and the Views in Drupal Core initiative is in pretty good shape. Views is in core, and we've also added a number of new features for Drupal 8, including:

Since my previous post, we've focused on integrating Views with core modules and subsystems, completing Views' last new features for D8, and addressing issues with some of Views' dependencies.

The London sprint

Early in December, Zivtech sent VDC team member tim.plunkett to London, so there was an opportunity to collaborate with several VDC and CMI contributors in the London area. CapGemini and Code Enigma hosted the sprint and brought dawehner over from Germany, and then Acquia and comm-press provided sponsorship on very short notice to fly me across the Atlantic as well.

Note that this isn't the first time these companies have helped us sprint! Code Enigma hosted our sprint in Paris after DrupalCon Munich, and Acquia has provided the last critical dollars for several of our sprints since May. Kars-T of comm-press also contributed to our BADCamp sprint and helped profile Views' performance impact.

VDC and CMI sprinters in CapGemini's offices
VDC and CMI sprinters.

Sprints are a critical part of our initiative. While we collaborate all day on IRC, working together in person is more productive, and there's nothing quite like being able to hash things out face to face. (Plus, when you put dawehner and damiankloip in the same room, the result is usually incredible amounts of code.) Thank you again to everyone who has helped us collaborate in person.

Three VDC members ping Bojhan simultaneously
This is what happens when you put the VDC team in the same room.

Core listings as views

Our first goal for the London sprint was to agree on a strategy for converting core listings to views, in order to make them more consistent and flexible. Replacing page and block listings (like the promoted node front page or the recent comments block) is one of VDC's primary goals. However, we also want to provide administrative views where possible, so that (for example) site administrators could customize the data columns and filters on the user administration page. We've been working on adding the features to make this possible since BADCamp, but it was also important to decide where and how these administrative views should be used. Since not all sites require the Views module, we've decided to retain the legacy admin listings as a fallback in D8 even if we provide views for them.

Whiteboard with notes on a strategy for converting listings to Views
Notes on our strategy for converting listings to views.

The Views upgrade path

Views' functionality is close to what it was in Drupal 7 (with a few new features), but the API has changed significantly. Part of this is due to core API changes in Drupal 8, part is the result of Views leveraging new D8 subsystems, and the rest is a side effect of significant code cleanup and refactoring. To make things easier for the hundreds of contributed modules that rely on the Views API, we used part of our time in London to retroactively list these changes so that we can provide a complete list of change records before Drupal 8.0 is released.

whiteboard listing Views' API changes in Drupal 8
Notes on Views' Drupal 8 API changes. There are a lot.

Configuration entity architecture

At DrupalCon Munich, over a dozen core developers met to discuss the concept of configuration entities -- configuration data objects that can be created, updated, and deleted, like vocabularies, views, image styles, and so on. We decided to leverage the existing entity system, with a configuration storage controller to handle reading and writing these objects in the configuration system. We agreed to start by directly subclassing the existing Drupal 8 Entity class (until that point used only by content entities like nodes and taxonomy terms) and then to refactor and make improvements once we had several implementations to indicate what the correct implementation should look like. We used the opportunity provided by the London sprint to discuss some of these architectural issues with D8 core maintainer catch and CMI contributor alexpott.

The music club where we discussed configuration entity architectural issues, with core maintainer Nat Catchpole
The location of our configuration entity discussion. That's catch on the sax at the far left.

Blocks as plugins

tim.plunkett and I also used part of our time at the sprint to review and improve the megalithic
patch converting blocks to plugins. While this conversion is part of a different core initiative, it was also important for VDC for a few reasons. Drupal 8 includes a new plugin system (conceptually based on CTools plugins), and Views was the first large-scale implementation of this subsystem (though there are a few others). The introduction of block plugins made the block system the second. Additionally, Views makes significant use of the block system, and many of the long-term goals of Blocks & Layouts will have a significant impact on Views' functionality.

How to get VDC updates

For overall information about the VDC initiative's progress, see our initiative roadmap.
You can also see a tentative timeline in the Drupal 8 initiative milestones spreadsheet. Finally, for week-to-week updates on current work and important places to help, see the Drupal 8 core initiatives page (updated at least biweekly). Or, get involved anytime with any Drupal issues tagged with VDC.

Upcoming VDC sprints

Want to help out with a sprint? Contact dawehner if you're interested in working with us! We also are always looking for sponsors to help our team members travel to these sprints.

Thanks to...

Post new comment