This YEAR in Drupal Core (2013)

webchick's picture

Co-authored by xjm and webchick

Welcome! For Drupal's 13th birthday, in addition to Give Drupal a Birthday Present: Tackle a D8 Issue!, we wanted to celebrate the occasion with a retrospective of the year 2013 as it relates to Drupal core development!

Here are some stats to get us started:

  • 1,120 unique Drupal 8 patch contributors during 2013, bringing the total number of contributors for the release to over 1,800!
  • 4,175 Drupal 8 core patches committed (even with one core maintainer on leave for several months).
  • 316 critical issues fixed.
  • Nearly 10,000 automated test assertions added, bringing our total to nearly 60,000 tests!
  • Over 60,000 lines of documentation added (and for the record, less than 2% of our lines of documentation are {@inheritdoc}). :P

A tag cloud showing the top Drupal 8 contributors

A tag cloud showing the top Drupal 8 contributors
Photo credit:

On the whole, 2013 represented a major shift in the Drupal 8 codebase toward modern best practices. Most core systems now use interfaces and classed objects for better developer experience. Sprawling procedural include files have largely been converted to self-contained component classes, and the new Drupal 8 plugin system is now used consistently for pluggable systems. ;)

2013 also saw some fantastic improvements for Drupal site builders, themers, and site users. At the beginning of the year, Views was in core, but core didn't use it. Now, 3 admin listings, 2 RSS feeds, 3 blocks, and the front page content listing are all views. We've added a WYSIWYG editor, several new configurable field types including Entity Reference field, configurable form modes to allow customizing of data entry forms, and a new theme templating system, Twig.

Finally, we made Drupal core truly multilingual in 2013. At the start of the year, node titles and the site name were not translatable -- now, Drupal 8 core is more translatable than Drupal 7 with all of contrib, and translations can be downloaded right away on installation.

Amazing work, everyone!

Here's a month-by-month breakdown of the milestone events and patches of 2013.

Jan 2013

On January 15, Drupal turned 12! The Blocks and Layouts, Web Services, and Multilingual initiatives also hit several important milestones.

Milestone issues

  • #1535868: Blocks converted to plugins
  • #1848490: Import translations automatically during install
  • #1866610: Configuration schemas
  • #1874500: CMF-based routing component

Feb 2013

After switching from Aloha to CKEditor, the long-awaited WYSIWYG in core issue landed. Hooray!

DrupalCon Sydney

Twig sprint at DrupalCon Sydney on the patio with a whiteboard

Sprinting Sydney style, in the sunshine with an ocean view
Photo credit: xjm

In Feburary, leading up to the end of Feature completion phase, there was a rocking code sprint in the sun at DrupalCon Sydney!

In between working on patches, conference attendees actually went outdoors once in awhile to enjoy the sun.

Druplicon, drawn in the sand on Coogee Beach.
Even Druplicon came to play in the sand!
Photo credit: xjm

Milestone issues

March 2013

March saw the commit of PHPUnit following work at the DrupalCon Sydney code sprint. (Since then, we've added 1240 assertions in 164 PHPUnit test classes!). We also converted the very first core listing page (the /node front page) to a view!

Milestone issues

  • #1732730: Converted all entity fields to new Entity Field API
  • #1901670: PHPUnit added to core.
  • #1806334: Node frontpage converted to a view
  • #1875086: Improve DX of drupal_container()->get()

April 2013

In April, alexpott joined the Drupal 8 core maintainer team. Since he started, Alex has committed nearly half of all Drupal 8 core patches. The epic patch to convert fields to CMI was committed a week later (the next big test of Drupal 8's new configuration system after Views was added to core in 2012).

Milestone issues

  • #1862398 Replace drupal_http_request() with Guzzle.
  • #1735118: Fields converted to CMI
  • #1935538: Switch REST to default to HAL.
  • #1971384: Efforts begin to port all core page callbacks to the new Drupal 8 routing system (a.k.a. "Converting Drupal 8 to Drupal 8")

May 2013

DrupalCon Portland

Key contributors sit around a table discussing hard problems.
The Portland "Hard Problems" discussions
Photo credit: Amazee Labs

Several days of in-depth technical discussions before the start of the conference. This was the largest DrupalCon sprint ever, with over 650 participants!

Of particular note, the Twig sprint at DrupalCon Portland was amazing to behold. Tons of themers and front-end developers worked together in a massive push to convert core templates to Twig well before the API freeze deadline.

Milestone issues

  • #1987510: Convert all template files to Twig
  • #1498674: Make all node properties translatable
/ Committed and pushed to 8.x. Thanks!    \
| Thanks plach, das-peter, Schnitzel,     |
| dawehner, YesCT, attiks, Berdir, Gábor |
| Hojtsy, Soul88, Carsten Müller. You    |
\ are awesome!                            /
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||


June 2013

Lots of hard work on technical debt between DrupalCon Portland and API freeze. More major issues fixed than any other month of the 8.x cycle, and a near-record for criticals.

DevDays Dublin

Sprinters at tables at the Dublin Institute of Technology
DevDays Dublin sprint room
Photo credit: @m_aaark

Drupal Developer Days Dublin hosted a week-long codesprint leading up to the start of Drupal 8's API freeze.
comm-press put together a great video interviewing DevDays attendees about what they're most excited about in Drupal 8:

Milestone issues

  • #1851086: admin/people converted to a view
  • #1895160: admin/content converted to a view
  • #1337554: Redesign the installer
  • #2014821: Introduced a UI for configurable form modes (huge win for site builders!)

July 2013

July 1 marked the beginning of API freeze. As a result, focus shifted to finishing in-progress API conversions, including Twig and theme layer improvements, conversions to the new-style form and page controllers introduced by the WSCCI initiative, and porting things over to the new configuration system.

Milestone issues

  • #1963544: Aggregator RSS feed converted to a view.
  • #2021817: Field widgets and formatters work on everything! (Entity base fields like titles as well as configurable fields).
  • #1784234: support in RDF

August 2013

By August, attention had started turning towards Developer Experience (DX) improvements, and an examination of what API changes were left outstanding to complete prior to Drupal 8.0.

Midwest Developer Summit

Sprinters at the Palatir office discuss a range of topics
Midwest Developer Summit at Palantir's offices
Photo credit: eatings

The Midwest Developer Summit was a three-day, supercharged developer sprint: No sessions, no booths, no distractions. There were sprints on everything from media to web services, and Dries worked with several core issue queue wranglers to approve each proposed API change -- or not, with the goal of finishing Drupal 8's APIs, to move away from adding new things and toward release.

We also brainstormed with testbot cardiologist jthorson to determine how to best support core development through testing infrastructure improvements. (Check out these recent metrics on the testing infrastructure.)

A list of potential features for the Drupal testing infrastructure written on a whiteboard, ordered and prioritized.
Testbot brainstorm whiteboard
Photo credit: xjm

Milestone issues

September 2013

DrupalCon Prague

The Prague city skyline

View from the Prague coder lounge
Photo credit: xjm

DrupalCon Prague was a landmark event for Drupal 8. Core maintainers announced the Migrate in core initiative live and that core would provide a D6 to D8 migration path:

If you've just built a Drupal 7 or you've had one running successfully for two years, you're probably not looking to upgrade it. But if you have a five year old Drupal 6 site, you are, and we're coming back for you.
Core maintainer alexpott

At Prague we also started building consensus to overhaul the Drupal 8 release cycle to provide a better experience for businesses and developers alike.

To read more, see This Week in Drupal Core from October 2, 2013.

Several core contributors discussing hard problems around a table with laptops
Prague sprint day
Photo credit: Amazee Labs

Milestone issues

  • #1497374: Entity storage
  • #1199946: Disabled modules status removed
  • #1605290: Entity render caching
  • #1203886: PHP module removed
  • #2083811: Field langcode handling uncrazified
  • #1983554: No more Entity BC-mode
  • #731724: Comments converted to a field that works with any entity type, after a year of epic work.

October 2013

After the swell of development from DrupalCon, October was also the month with more critical issues fixed than any other month of the 8.x cycle!


Numerous sprinters at BADCamp.
BADCamp pre-sprint
Photo credit: Amazee Labs

Among the sprinting at BADCamp was the big kick-off of the Migrate in Core initiative. Additionally, the CMI folks put together a concrete battleplan for finishing the configuration system.

This also led to creating overview/example API documentation for Drupal 8 this month, including routing system, configuration system, and the entity system. These are now a part of the new Drupal 8.0 landing page, also created in October.

Drupal 8 Landing page

Milestone issues

  • #2106709: Router BC layer removed
  • #1851414: Views converted to accessible modals
  • #2023563: Entity field types converted to the new field type plugin
  • .

November 2013

November saw the passing of a dearly beloved old friend, the Overlay module. In its place is a nice "Back to site" link in the admin UI which will return you to where you were on the front-end. All of the usability, far less JavaScript! :D

Overlay module, RIP.

Milestone issues

  • #1952394: Configuration translation UI
  • #1498574: Decision made to require PHP 5.4
  • #2055853: Revamped Block UI
  • #2088121: Removed overlay
  • #1886448: Theme registry service
  • #2125717: First Migrate in core patch lands
  • #2047229: Entity field and data definitions become classed objects, significantly improving Entity & Field API DX

December 2013

We closed 2013 with two big announcements: the New release cycle for core was finalized , as well as the criteria around Drupal 8 beta 1.

Milestone issues

And now, onto 2014!

2013 was an amazing year, but now it's time to turn our sights to 2014. We've finally turned the corner on attacking our technical debt, and are making steady progress on beta release-blocking issues which, if current trends continue, could result in a beta release as early as March.

A graph of critical issues over time, showing a huge explosion in 2013 that is starting to taper off since September.

We'll need all hands on deck though to pull off a Drupal 8.0.0 release in 2014. We'll see you in the beta blockers and criticals queues, as well as at weekly core mentoring hours, Drupal Dev Days Szeged and DrupalCon Austin!