This week-ish in Drupal core: April 2, 2014

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
mparker17's picture

What's new with Drupal 8?

The past three weeks saw some exciting progress on Drupal 8, in part due to the hard work of everyone who went to DrupalDevDays 2014 in Szeged, Hungary. It also saw the release of drupal-8.x-alpha10.

Drupal Developer Days Szeged

DevDays Szeged was a landmark for the Drupal 8 release cycle. Participants marveled at how productive and well-organized the event was, and core maintainers commented they'd never seen such momentum in the RTBC queue. During the week-long sprint, 19 beta blocking issues were fixed (with three more RTBC) and every single missing change record was written. Outside core, sprinters also made significant progress on everything from the Search API module for Drupal 8 to Drupal.org itself. A robot doll, chocolates, bunny ears, stickers, and Drupal-ified Hungarian folk music also made it the event of the year. (Szeged slide show)

Sprinters at DevDays Szeged wearing bunny ears, in front of colored issue charts.

Alpha 10 released; Alpha 11 due Apr. 23

Alpha 10 was released on March 19th, just before Drupal Dev Days. Some notable changes include:

... for the full list of changes, see the alpha 10 release notes.

These alphas are provided to give you something more stable to work off of than having to chase HEAD every day.

Where's Drupal 8 at in terms of release?

Core momentum increased again in March, with a new all-time record of 51 criticals fixed over the month. In fact, we've nearly recovered to the level of known technical debt we had as of feature freeze a year ago. :P There's still a long ways to go, so help us focus on the most important issues and on releasing a sound Drupal 8 beta.

A graph of the outstanding critical issues per month since 2011, showing a steep decline this month.

Our steady progress toward that first beta release continues as we divide the outstanding beta blockers into actionable sub-steps. Among March's fixed criticals were over 30 beta blockers, more than half the total, showing the community's tight focus on unblocking this milestone.

Graph indicating the numbers of beta blocker, beta target, and change record issues outstanding since Jan. 1 2014.
Note that the number of beta target issues (which are issues that would be good to resolve for the beta, but are not critical enough to block it) continues to increase. As we get closer to beta, it's important to also pay attention to these issues, so we'll be highlighting beta targets more in the coming weeks.

Last week, we fixed 25 critical issues and 24 major issues, and opened 15 criticals and 29 majors. That puts us overall at 118 release-blocking critical issues and 486 major issues.

16 beta-blocking issues were fixed last week. There are still 28 of 142 beta blockers that must be resolved before we can release a Drupal 8 beta.

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

Love Drupal and want to help out, but not a coder or unsure where to start? From breaking things (for science!), to designing things; from summarizing issues to writing documentation, there's lots of ways you can contribute! And, there are more than 125 mentors willing to help you!

Our current priority is updating the documentation for Drupal 8. Rich, helpful documentation for Drupal 8 is incredibly important: it's a great way to market Drupal to potential clients, it saves you from writing as much documentation for your existing clients, it empowers new users, site builders, developers, and themers to learn and solve their problems; and, with all the changes that have happened since Drupal 7, it's pretty useful for seasoned Drupal veterans as well!

The documentation team is working on updating:

... for more information, visit the #drupal-docs channel on IRC or jump into the documentation issue queue.

As always, if you're new to contributing to core, check out Core contribution mentoring hours. Twice per week, you can log into IRC and helpful Drupal core mentors will get you set up with answers to any of your questions, plus provide some useful issues to work on.

Notable Commits

The best of git log --after=2014-03-12 --pretty=oneline (253 commits in total):

Amazing work on the configuration system's architecture and dependency management, notably:

  • Issue #2080823 by alexpott, swentel, Wim Leers: Create API to discover content or config entities' soft dependencies and use this to present a confirm form on module uninstall.
  • Issue #2030073 by alexpott: Config cannot be imported in order for dependencies.
    You can now declare dependencies for configuration entities, so you can ensure their dependencies are met before importing them.
  • Issue #2219499 by Berdir, alexpott, Gábor Hojtsy, vijaycs85, swentel: Generalize language config override responsibility.
    This patch simplifies the way that language-specific overrides work and significantly reduces the amount of code that needs to run on sites with only one language.

And, we resolved some of the menu/routing issues that had been causing headaches for developers:

  • Issue #2178725 by pwolanin, crowdcg, effulgentsia, Sutharsan: Make all core menu link machine names and the corresponding route names match.
  • Issue #2226903 by pwolanin, dawehner, tvn, martin107, jessebeach: Step 1: Move static menu links to yml files.
    Now, default menu links are declared the same way as local tasks and local actions. (The next step is to finalize the underlying architecture for this change.)
  • Issue #2207893 by dawehner, pwolanin, jessebeach, Boobaa: Convert menu tree building to a service.
    This removes a whole bunch of the code in menu.inc, makes the menu-building code unit-testable and decouples it from other subsystems. It also unblocks beta-blocking work on the Menu Link API.

In the "things that always annoyed you about Drupal" category,

  • Issue #318975 by sun, Bojhan, linclark: Remove confirmation page after installation.
    When the installer is finished, it drops you on the front page of your new site!
  • Issue #340723 by ParisLiakos, sun, Berdir, glennpratt, Cottser, swentel, tstoeckler, Xano, tim.plunkett, BassistJimmyJam: Make modules and installation profiles only require .info.yml files.
    That means no more empty .module and .profile files! DX FTW!
  • Issue #2122693 by jayeshanandani, YesCT, sun, alexpott, BMDan: Installer does not work on a completely empty settings.php.
    This had been possible in D7.

Other notable commits:

  • Issue #2188613 by Berdir, Xen, andypost: Rename EntityStorageController to EntityStorage.
    This 600K patch was added to make it easier to distinguish between Entity storage classes and Routing controllers.
  • Issue #2213451 by andypost, bdone, benjy, penyaskito, chx, claudiu.cristea, damiankloip, gregboggs, InternetDevels, jessehs, jhedstrom, marvil07, mikeryan, pcambra, Xano, YesCT: Update Migrate API in core.
    This huge update to the migrate API adds support for requirements/dependencies; adds migrations for passwords, URL aliases and config entities; improves entity, bundle and field support; adds lots of Drupal 6 migrations; allows you to set the MigrateSource and MigrateDestination using annotations; and improves documentation. Awesome work Migrate team!
  • Issue #1194136 by Berdir, damiankloip, Wim Leers: Re-organise core cache bins.
    This groups cached items by the type of data (e.g.: rendered HTML, data, entity), rather than the type of item (e.g.: node, block, etc.). This will make cache bins for frequently-requested items (like configuration) smaller with less-frequent updates, which makes it easier for query caches. And, it allows you to tune performance by choosing the most-efficient storage engine / storage location for the type of data (for example, putting the configuration cache table in RAM or on an SSD).
  • Issue #2211553 by andypost, Berdir: Allow usage of entity_reference field widget and formatter for base fields.
    Entity reference fields are being used in core, but there had been no way to use it's widget and formatter.

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

Here are a few notable blog posts about Drupal 8 in the past few weeks:

Drupal 8 in "Real Life"

If you would like to get away from the computer, meet other Drupal users, learn about Drupal 8, and have fun at the same time, you can look forward to:

  • NYC Camp on April 10-13: you can get Twig training, there are 13 accepted Drupal 8 sessions, 10 sprints scheduled and there's even a Core summit!
  • DrupalCamp Frankfurt 2014 in Frankfurt, Germany on April 12 and 13; with 8 proposed Drupal 8 sessions on everything from Twig to the Configuration Management Initiative.
  • Drupal Camp Japan 2014 in Kyoto on April 12, featuring an introduction to Drupal 8.

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. If you'd like to volunteer for helping to draft these posts, please follow the steps here!