This Week in Drupal Core: October 9, 2013
by Angie Byron
Welcome to the third edition of This week in Drupal Core!
What's new in Drupal 8?
Goodbye, legacy BC routing support!
This week's most exciting news: After five months of work, we've removed the legacy BC support from the routing system. This means that module developers testing Drupal 8's APIs will quickly discover the need to upgrade their
hook_menu() page callbacks to route declarations and page controllers, and we can surface gaps in the new system. Next steps: remove the legacy menu router entirely and fix core's routing API documentation to clean up stale, inaccurate information and provide clearer explanations of the new system.
Migrate and D8 documentation at PNWDS
The Pacific Northwest Developer Summit was also held over the weekend. Core developers kicked off work in chx's sandbox for the new Drupal 8 data migration system (which will replace the existing database upgrade system and allow direct upgrades from D6 to D8). Documentation lead jhodgdon also met with webchick to hammer out a plan for addressing Drupal 8's documentation deficiencies.
In the three months of Drupal 8's API completion phase following the July 1 API freeze deadline, core contributors have shifted focus to finishing Drupal 8's APIs and resolving release-blocking issues. Between July 1 and September 30, we fixed 99 critical issues, compared to only 66 fixed between April 1 and June 30. The best part? This week, for the first time in a long time, we've steadily reduced the number of open critical issues in Drupal 8. (For a closer look at our momentum on critical issues, see: When it's ready™.)
Meanwhile, core contributors continue to work through the results of DrupalCon Prague sprints. The RTBC queue is back under two pages, thanks to tireless work by Drupal 8's core maintainers, who committed almost twice as many patches this week as in preceding weeks.
The best of
git log --since "1 week ago" --pretty=oneline (135 commits in total):
Important API and data model changes
Developers take note: These four changes help stabilize our API and data model, moving us that much closer to beta.
- Issue #1653026 by damiankloip, alexpott, sun, tim.plunkett, dawehner, mtift: Fixed All configuration values are stored as strings.
- Issue #2057401 by plach, socketwench, kfritsche, Damien Tournoud: Fixed Make the node entity database schema sensible.
- Issue #1953408 by swentel, aspilicious, andypost, yched: Remove ArrayAccess BC layer from field config entities.
- Issue #2106709 by tim.plunkett: Remove legacy router backwards compatibility layer.
Contributors stepping up as core component maintainers
Core's MAINTAINERS.txt contains a listing of contributors who've committed to leading the charge in a certain area of Drupal core. These folks play an important role in managing Drupal 8 toward release. (See the Component maintainers tag for issues focused on helping fill out this team for Drupal 8. Want to help? Just start working in your chosen component's queue, and then take a look at the component maintainer handbook page and xjm's blog post for more information on what goes into being a component maintainer.)
- Issue #2099977 by andypost: Add andypost as a component maintainer for comment.module.
- Issue #2107151 by claudiu.cristea: Add claudiu.cristea to core maintainers for image.
- Issue #2103231 by Mark Carver: Add Mark Carver to the list of theme system maintainers in MAINTAINERS.txt.
Progress towards removing the legacy variable system
One of the big outstanding tasks for the Configuration Management Initiative is completing the conversion of legacy variables in core to the new Drupal 8 APIs. These conversions are in their home stretch, with just 5% of the conversions left to go. Four conversions landed this week:
- Issue #1829170 by LinL, socketwench, vijaycs85, mtift, LittleCoding, andypost, dawehner, ianmthomasuk: Convert the Maintenance Theme variable to settings.
- Issue #1798732 by sun, Dean Reilly, mbrett5062, chx, westie, alexpott, juanolalla, Mark Carver, catch, jthorson, cam8001, Berdir: Convert install_task(), install_time() and install_current_batch() to use the state system.
- Issue #2102503 by swentel: Fixed Convert ContentTranslationController to CMI.
- Issue #2101661 by swentel: Fixed Update cache checking logic in core/includes/langauge.inc to use config system.
Developer experience (DX) improvements
An essential part of Drupal 8's API completion phase is improving the Drupal 8 developer experience, by enhancing learnability, reducing boilerplate code, managing complexity, and documenting unfamiliar concepts. Here's a few of this week's commits that move Drupal 8 toward a better developer experience:
- Issue #2105123 by pwolanin: Add a currentUser() method to \Drupal\Core\Plugin\PluginBase.
- Issue #2105557 by Berdir, dawehner: Add an admin_permission to EntityType annotations to provide simple default access handling.
- Issue #2099095 by jibran, tim.plunkett: Create BreadcrumbBuilderBase and remove the boilerplate code from BreadcrumbBuilders.
User experience (UX) improvements
Drupal 8 makes great strides in improving the user experience for administrators, site builders, content authors, and end users. Here's a sampling of some of the small fixes that are adding up to a big UX boost:
- Issue #2102019 by nod_: Fixed Vertical tabs looks broken on small screens.
- Issue #2080217 by Wim Leers, tkoleary, Bojhan: Polish entity toolbar visually.
- Issue #2030631 by emma.maria | LewisNyman: Make 'Save and Continue' buttons primary buttons.
- Issue #1837998 by Bojhan, xjm, dawehner, David Hernández: Show the embed display in the UI.
Drupal 8 Around the Interwebs
Blog posts about Drupal 8 and how much it's going to rock your face.
- Dante Taylor presents how to get started with Twig and the Layout project.
- Ruben Teijeiro continues his series on getting started with Drupal 8 module development, by showing how to implement forms that write to the database.
- Heather James shows off some of Drupal 8's content editing enhancements, and lists 29 commonly needed Drupal 7 contrib modules now either no longer needed or less commonly needed in Drupal 8.
- Janez Urevc summarizes the conclusions reached at DrupalCon Prague about how to architect a great media handling ecosystem of contrib modules in Drupal 8, and how you can help.
- Andrew Riley offers up a 17 picture/animation teaser of some Drupal 8 features.
- Jeffrey McGuire, Daniel Wehner, Lee Rowlands, and Tim Plunkett discuss why they consider Drupal 8's embrace of OOP and modern PHP coding approaches to be empowering.
Drupal 8 in "Real Life"
October 24-27: BADCamp 2013 is just two weeks away! The four-day event includes lots of great Drupal 8 content for site builders, module authors, and core contributors, plus a full-day core summit on October 27. Also don't miss the extended sprints which run from October 21 all the way through to October 29. The teams for Views, Configuration, Multilingual, Web Services, Documentation, Usability, Media, and Twig all need your help to make Drupal 8 awesome! Sign up now.
Other events coming up in the next couple of weeks that have a decent amount of content dedicated to Drupal 8 include:
- October 11: Drupaldelphia has proposed sessions on Your First Drupal 8 Module, Drupal 8 Routing, and Dependency Injection.
- October 12-13 Lviv Euro Drupal Camp includes an exciting session comparing D7 to D8 from bootstrap to render, as well as information on multilingual in Drupal 8.
- October 13: Join YesCT for a Drupal issue sprint in Oak Park, IL.
- October 19 DrupalCamp Atlanta includes sessions on Twig in core, Creating a Blog in Drupal 8 & the Configuration API, and agentrickard's great Drupal 8 overview, How I Learned to Stop Worrying and Love Drupal 8.
Whew! That's a wrap!
Expect more great things as all the work done at DrupalCon Prague comes to fruition, and see you maybe at BADCamp or in the queues!