This fortnight in Drupal core: February 8, 2014

xjm's picture

What's new with Drupal 8?

It's been a remarkable couple of weeks for Drupal 8, with several landmark changes, a global sprint, and a surge in core issue queue activity.

Global sprint weekend

The second Global Sprint Weekend was held January 25-26. Over 400 sprinters participated at 39 locations on six continents, with others participating remotely in IRC. Some quick core issue queue statistics from the sprint timeframe:

  • 80 new Drupal 8 core issues created
  • 553 Drupal 8 patches submitted
  • 2468 comments posted on 646 Drupal 8 issues
  • 113 Drupal 8 issues RTBCed

A huge thanks to everyone who participated, and especially to the sprint organizers and mentors who helped make it happen.

Removal of the variable subsystem

Only local images are allowed.
Right on the heels of the Global Sprint Weekend, the last patch to convert variables to config or state was committed, and within a day the old variable subsystem was removed. This was the culmination of a year and a half of work by more than 80 contributors, and an incredible milestone for the Configuration Management Initiative.

Removal of the 7.x to 8.x upgrade path

At DrupalCon Prague, core maintainers agreed to stop using update.php for major version upgrades in favor of providing data migration from Drupal 7 (and Drupal 6!) with Migrate in core. So, last week we fixed Issue #2168011: Remove all 7.x to 8.x update hooks and disallow updates from the previous major version. Now the core codebase is as committed to Migrate as we are. ;) See Drupal 7 sites can no longer be upgraded to Drupal 8 with update.php for more information.

Now that hook_update_N() implementations will no longer be added for data model changes from Drupal 7, core patch contributors should keep an eye out for patches that might require migration updates instead. For details, read: No more 7.x to 8.x hook_update_N() -- file Migrate issues instead.

Change record drafts

It's now possible to create drafts of API change records, and a draft change record will be required before any API change is committed starting February 14. More information on the new feature and change record process: Change records now needed before commit.

On January 31, in preparation for this change, core contributors reduced the missing change record count from 40 to 20 in 24 hours. We actually halved this long-outstanding documentation debt within a single day. Amazing work!

Theme system conversions

Core theme system contributors have been busy the past several weeks, converting numerous theme functions to Twig and removing all calls to theme() outside drupal_render() (and some automated tests). This important theme system cleanup has been ongoing for more than seven months and blocks a beta release.

Additionally, after lots of work on these issues, joelpittet joined the theme subsystem maintainer team. Thanks Joel!

Where's Drupal 8 at in terms of release?

Last week, we fixed 14 critical issues and 24 major issues, and opened 5 criticals and 16 majors. That puts us overall at 132 release-blocking critical issues and 473 major issues.

11 beta-blocking issues were fixed last week. There are still 51 of 115 beta blockers that must be resolved and 12 change records that must be written before we can release a Drupal 8 beta.

Here's a quick look at our progress on criticals and beta blockers in January:

A graph showing the number of critical issues posted and fixed each month since September.
We tied our previous record of 48 criticals fixed within a single month, but this time while posting fewer new ones than that. ;) Great work!

A graph showing the issue counts for outstanding and fixed beta blockers week to week in January, as well as beta targets and change records.
We fixed a grand total of 37 beta blockers in January, putting us past the halfway point for the beta! We also made great progress on cleaning up the API documentation debt of our outstanding change records -- from over 50 at the start of the month to 19 at the end (and just 12 as of today)! That said, we also identified 20-odd additional beta-blocking issues over the course of the month, so it's important to keep our focus on these top-priority issues.

Where can I help?

Top criticals to hit this week

Each week, we check with core maintainers and contributors for the "extra critical" criticals that are blocking other work. These issues are often tough problems with a long history. If you're familiar with the problem space of one of these issues and have the time to dig in, help drive it forward by reviewing, improving, and testing its patch, and by making sure the issue's summary is up to date and any API changes are documented with a draft change record.

More ways to help

Notable Commits

The best of git log --after=2014-01-24 --pretty=oneline (191 commits in total):

  • Issue #2099741 by Wim Leers, wwalc, mr.baileys, eaton, dstol, nod_, effulgentsia: Protect WYSIWYG Editors from XSS Without Destroying User Data.
  • Issue #2183923 by tim.plunkett: Break the circular dependency in EntityManager.
  • Issue #2157053 by alexpott, twistor, dawehner, sun: Ensure register_shutdown_function() works with php-fpm (blocks testbot php-fpm).
  • Issue #1939064 by joelpittet, pwieck, farrington, mark.labrecque, Cottser, InternetDevels, mdrummond, drupalninja99, BarisW, jenlampton: Convert theme_links() to Twig.
  • Issue #1939062 by steveoliver, mdrummond, jenlampton, hussainweb, Cottser, joelpittet, jerdavis, ekl1773, dale42, drupalninja99, gabesullice, c4rl: Convert theme_item_list() to Twig.
  • Issue #2168011 by xjm, jessebeach, Damien Tournoud, znerol, Xano: Remove all 7.x to 8.x update hooks and disallow updates from the previous major version.
  • Issue #2167641 by tim.plunkett: EntityInterface::uri() should use route name and not path.
  • Issue #2164827 by Berdir, Xano, tim.plunkett: Rename the entityInfo() and entityType() methods on EntityInterface and EntityStorageControllerInterface.
  • Issue #2167623 by danilenko_dn, sidharthap, Nitesh Sethia, krishnan.n, aitiba, alexpott, ashwinikumar, Barrett, damiankloip, deepakaryan1988, foxtrotcharlie, ianthomas_uk, neetu morwani, nonsie, piyuesh23, Sharique, sivaji, sushantpaste, swentel, vijaycs85, YesCT: Add test for all default configuration to ensure schema exists and is correct.
  • Issue #2177739 by Berdir, alexpott, Gábor Hojtsy: Fix inefficient config factory caching.
  • Issue #2047633 by pwolanin, dawehner, kim.pepper, Xano, amateescu, tim.plunkett: Move definition of menu links to hook_menu_link_defaults(), decouple key name from path, and make 'parent' explicit.
  • Issue #2164367 by alexpott, tim.plunkett, dawehner: Rebuild router as few times as possible per request.
  • Issue #2167109 by Berdir, sun, alexpott, ACF, acrollet, adamdicarlo, Albert Volkman, andreiashu, andyceo, andypost, anenkov, aspilicious, barbun, beejeebus, boombatower, cam8001, chriscalip, chx, cosmicdreams, dagmar, damiankloip, dawehner, deviance, disasm, dixon_, dstol, ebrowet, Gábor Hojtsy, heyrocker, Hydra, ianthomas_uk, japicoder, jcisio, jibran, julien, justafish, jvns, KarenS, kbasarab, kim.pepper, larowlan, Lars Toomre, leschekfm, Letharion, LinL, lirantal, Lukas von Blarer, marcingy, Mike Wacker, mrf, mtift, mtunay, n3or, nadavoid, nick_schuch, Niklas Fiekas, ParisLiakos, pcambra, penyaskito, pfrenssen, plopesc, Pol, Rok Žlender, rvilar, swentel, tim.plunkett, tobiasb, tsvenson, typhonius, vasi1186, vijaycs85, wamilton, webchick, webflo, wizonesolutions, xjm, yched, YesCT, znerol: Remove Variable subsystem.

You can also always check the Change records for Drupal core for the full list of Drupal 8 API changes from Drupal 7.

Drupal 8 Around the Interwebs

Blog posts about Drupal 8 and how much it's going to rock your face.

Drupal 8 in "Real Life"

  • Feb. 14 - 17: Drupal South in Wellington, New Zealand features a keynote by Larry Garfield of WSCCI fame, larowlan and kim.pepper answering everything you you wanted to know about Drupal 8 but were afraid to ask, as well as sessions on Twig, Tour, and more!
  • Feb. 28 - Mar 2: Two events happening simultaneously, DrupalCamp Phoenix and DrupalCamp London have some nice Drupal 8 session proposals, including CMI, multilingual, and more!
  • Mar. 24 - 30: Drupal Developer Days Szeged is going to be the Drupal 8 event of the next months, with a full week of sprinting awesomeness and lots of D8 content. See Five good reasons to register for Drupal Dev Days Szeged now by Gábor Hojtsy for more details.
  • Mar. 28 - 30: If you'd like to collaborate with DevDays Szeged sprinters, but are looking for something in the western hemisphere, check out MidCamp. MidCamp is March 28-30, and there may also be a pre-sprint March 26-27. Contact ZenDoodles for more information.

Whew! That's a wrap!

Do you follow Drupal Planet with devotion, or keep a close eye on the Drupal event calendar, or git pull origin 8.x every morning without fail before your coffee? We're looking for more contributors to help compile these posts. You could either take a few hours once every six weeks or so to put together a whole post, or help with one section more regularly. Contact xjm if you'd like to help communicate all the interesting happenings in Drupal 8!