These two weeks in Drupal Core
What's new with Drupal 8?
The past two weeks saw the Drupal community rally together to support each other and recognize the hard work involved in making Drupal awesome, starting with the launch of the Drupal Core Gittip Team and the news that Alex Pott had been hired by Chapter Three to work on Drupal 8 development full-time. It also saw some great performance improvements in Drupal 8 and a handful of Developer Experience improvements.
Drupal Core Gittip Team
On Friday, May 2nd, Cathy Theys (YesCT) and Alex Pott (alexpott) launched the Drupal Core Gittip Team, a new funding effort to allow companies and individuals to support the people who are regularly contributing their own time, without compensation, to Drupal Core development. (See their announcement and Team FAQ for more information.) A weekly contribution to the Core Gittip team is a great way for individuals and companies (and you!) to both help Drupal 8 and improve the long-term sustainability of Drupal Core development.
Sponsored Drupal 8 development
On Tuesday May 6th, Alex Pott announced that Chapter Three had hired him to work on Drupal 8 full-time, and that he would be using his Gittip income to support the rest of the Drupal Core Gittip team. This came a year and thirty-five days after he became a Drupal co-maintainer and nine months after he asked for the community's help to continue to support his Drupal 8 development work.
In response to Alex's announcement, Dries blogged about the investment case for employing a Drupal core contributor and Jennifer Hodgdon responded with the case for a small Drupal shop contributing to Drupal.
Contrib fundraising initiatives
And, Wolfgang Ziegler (fago) announced the #d8rules initiative, an effort to get the Rules module ported to Drupal 8.
Where's Drupal 8 at in terms of release?
Last week, we fixed 13 critical issues and 16 major issues, and opened 11 criticals and 12 majors. That puts us overall at 115 release-blocking critical issues and 545 major issues.
4 beta-blocking issues were fixed last week. There are still 20 of 163 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.
- #2183231: Make ContentEntityDatabaseStorage generate static database schemas for content entities is a big patch to the Entity Field API which could use some code reviews and testing with your own custom content entities if you have them.
- #2224887: Language configuration overrides should have their own storage could use everything from code reviews to manual testing. In particular, testing #2224887 by creating translated configuration and importing/exporting the configuration changes would be very helpful (note that you don't need to be bilingual to test these: Drupal has a Lolspeak language that you can use for testing)
- There are two field API beta blockers that each need a champion to bring them home: Field instances should support cross-field-type, extensible, extra configuration for use cases like translation sync (which will support translation synchronization) and Let 3rd party modules store extra configuration in EntityDisplay (which will support contributed modules like Display Suite).
More ways to help
- We'd appreciate your feedback on helping us decide if and how to extend D6 security support 12 months past an 8.0.0 release so that everyone has a chance to migrate their old sites to Drupal 8.
- We're also looking for help reviewing all the issues tagged as "revisit before beta" and "revisit before RC": some of the issues in this list haven't been updated for over 18 months so they need triaging.
- The WSCCI initiative also needs help writing change records and documentation for all the menu changes from 7 to 8.
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.
You can also help by sponsoring Drupal core development on Gittip.
Notable Commits
The best of git log --since "2014-04-30" --pretty=oneline
(147 commits in total):
There were a number of commits that improved performance directly and indirectly:
- Issue #2099131 by jessebeach, Wim Leers, catch, Berdir, benjifisher, martin107, andypost: Use #pr_render pattern for entity render caching.
This slight change to the render pipeline allows Drupal to cache the render array, in addition to the resulting HTML. Preliminary tests showed that, from a warm cache, this change makes full page loads between 15 and 25% faster. Woohoo! - Issue #2226761 by Wim Leers: Change all default settings and config to fast/safe production value.
This changes the default settings for new sites so that HTML and Twig caching, CSS and JavaScript aggregation are all turned on, and Twig debugging and Twig auto-reloading is turned off.
It also introduced anexample.settings.local.php
with examples of how to toggle these settings on development sites. - Issue #2257709 by znerol, Wim Leers: Remove the interdependence between the internal page cache and management of the Cache-Control header for external caches.
This commit is part of an ongoing effort to modernize the page caching mechanisms in core. This change makes the Symfony Response object responsible for setting the Cache-Control HTTP header. - Issue #2228261 by beejeebus, kim.pepper, alexpott, Wim Leers | catch: Add a local, PhpStorage-based cache backend.
This will make it possible to cache data on the filesystem when it makes sense to do so. - Issue #2241249 by Wim Leers: First step in making search results pages cacheable: add the associated SearchPage's cache tag.
To improve the developer experience (DX):
- Issue #2079797 by ParisLiakos, Xano, amateescu, tim.plunkett: Provide a trait for $this->t() and this->formatPlural().
Previously, any class that containing at least one translatable string needed to define at()
function that called\Drupal::translation()->translate(...)
in order for the string extractor to determine what needed to be translated.
This patch reduces the boilerplate code to a single line:use StringTranslationTrait;
through the use of a PHP Trait. Classes with this trait can still call$this->t()
to make strings translatable.
Reducing boilerplate code for the win! - Issue #2241633 by sun: Simplify site-specific service overrides.
You can now override a service in your module by simply adding aservices.yml
file. - Issue #2257835 by tim.plunkett, sun, Jalandhar: Move form submission logic out of FormBuilder int a new class.
And...
- Issue #2039163 by Reinmar, Wim Leers: Update CKEditor library to 4.4.
Did you know that the CKEditor Widgets feature introduced in CKEditor 4.3 was specifically developed for Drupal 8 as a way to make accessible, easy-to-use templates in body content?
This patch updated CKEditor from 4.2 to 4.4, adding this feature and unblocking a couple of other ones. - Issue #2116363 by Berdir, jessebeach | fago: Unified repository of field definitions (cache + API)>
This milestone Entity Field API commit concludes work begun at DrupalCon Prague and unblocks the removal of legacy D7 field API code.
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 selection of the best blog posts about Drupal 8 in the past few weeks:
- Lee Rowlands of PreviousNext continues his series on Writing Drupal 7 code with an eye towards Drupal 8 with an article on Object-Oriented plugins in Drupal 7.
- Wes Roepken of Blink Reaction explains how to set up a Symfony2 project.
- Angie Byron (webchick) begins a series called The Ultimate Guide to Drupal 8 with a blog post about the authoring experience improvements, and follows it up with a guide to the mobile improvements.
- Brian Lewis and Morten Birch Heide-Jørgensen (mortendk) talk about all things Drupal 8 and Twig on the Modules Unraveled Podcast episode 106.
- Vivek Pandya (vivekvpandya) writes about his progress creating an example iOS application that connects to Drupal 8 with RESTful web services as part of Google Summer of Code 2014, beginning with how to use HTTP DELETE.
- In Symfony news, Fabien Potencier (fabpot) talks about the Rise of Composer and the Fall of PEAR as he announces the end of PEAR support for Symfony.
- Amazee labs launched their corporate website on Drupal 8! They're also going to be hosting a session about what they learned at DrupalCon Austin.
- Mike Gifford continues his series on accessibility improvements built into Drupal core with an overview of the accessibility issues that affect administrators.
Drupal 8 in "Real Life"
There are a whole bunch of camps and sprints happening this coming weekend (May 16, 17th and 18th)!
- Drupal Open Days 2014 in Dublin, Ireland on May 16th and 17th, with a session on building Multilingual sites in D8.
- DrupalCamp Wrocław in Wrocław, Poland on May 16th, 17th and 18th has sessions on CKEditor in Drupal 8, Drupal 8 on mobile platforms, and a session on what to look for today so as not to get left behind when Drupal 8 is released.
- DrupalCamp Spain 2014 in Valencia, Spain on May 16th, 17th and 18th with a Drupal Core Criticals sprint and sessions about CMI, Sessions in D8, Commerce in D8 and a couple of talks on Migrate in D8.
- MoldCamp 2014 in Chisinau, Moldova on May 17th and 18th, featuring sessions on Guzzle and what to expect in Drupal 8.
- Drupal Camp Alpe-Adria in Portoroz, Slovenia on May 17th and 18th, with sessions on the D8 Entity API, Rules in D8 and CMI; and with D8 sprints.
- TC Drupal Spring Sprint in Minneapolis, MN on May 17th, featuring a documentation sprint!
- Albany Drupal Sprint Day in Albany, NY on May 18th.
Also coming up are:
- DrupalCamp Helsinki on May 23rd and 24th in Helsinki, Finland, featuring sessions on Symfony, Media Management in Drupal 7 and 8, D8 JavaScript, D8 Routing and Menus, D8 Theming and multiple sessions on Twig. And, to top it all off, there will be code sprints.
- DrupalCamp Soleil 2014 in Montpellier in the south of France on May 24th and 25th, featuring an non-non-conference on Drupal 8.
- A Drupal 8 Code Sprint in Leuven, Belgium on May 25th.
- DrupalCamp Yorkshire 2014 in Leeds, West Yorkshire, England on May 31st and June 1st.
Don't forget that DrupalCon Austin is quickly approaching! The extended sprints start on May 31st and run until June 8th. If you plan to participate in any way (remotely or in-person), please sign up ahead of time so we can plan for your attendance!
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!