VDC status update (and a report from our London sprint)
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:
- A bulk actions checkbox
- A dropbutton field handler
- Core token support
- REST support and serializer integration
- A "clone as" feature (to clone a page display into a block display, etc.)
- Responsive (mobile-friendly) Views administration
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.
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.
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.
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.
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 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
- Drupal Camp London, March 1-3
- Drupal Code Sprint weekend, March 9-10 (many locations!)
- DrupalCon Portland, May 18-26
- Drupal Dev Days Dublin, June 24-30
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...
- erdfisch for funding dawehner
- New Digital Partnership for funding damiankloip
- Zivtech for funding tim.plunkett
- CapGemini, Code Enigma, Acquia, and comm-press for making our London sprint possible, and all sprint participants!