This week-ish in Drupal core: April 2, 2014
by Angie Byron
What's new with Drupal 8?
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)
Alpha 10 released; Alpha 11 due Apr. 23
Alpha 10 was released on March 19th, just before Drupal Dev Days. Some notable changes include:
- Drupal now requires PHP 5.4.2 or higher.
- modules and installation profiles only require .info.yml files
- the logo, site name and slogan have been converted from special theme variables into a block
... 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.
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.
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.
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.
- At Szeged, we had an important Developer Experience (DX) discussion about Drupal 8's use of request attributes (#2124749) and its impact on frequently used public APIs. To move forward, we need more feedback on the recent discussion (see @effulgentsia's writeup in comment #32).
- For the D8 Menu system, the most critical critical issue is #2227179: Step 2: Wrap the existing logic of accessing menu links into a plugin manager, part of finalizing the API for declaring default menu links. This is the #1 API that contributed modules interact with, since most modules add links to their administration pages, and therefore it's very important to get the developer experience and architecture right. Help review the current patch and the overall proposal.
- In the Configuration system, Add a separate module install/uninstall step to the config import process is the next step to making Configuration synchronization stable and reliable. The patch needs review.
- And, finally, much of the remaining beta-blocking work in the Entity Field API hinges on Introduce StorageFieldDefinitionInterface in the Entity Field API.
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:
- the Core module handbook,
- the help module's pages, and
- the new developer documentation on the api.drupal.org landing page for D8.
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.
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
.profilefiles! 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:
- Last Call Media explains the lessons they learned when upgrading their website to Drupal 8.
- Justin Harrell interviews Bojhan Somers and Lisa Rex about making it easier for designers to contribute to Drupal
- Drunomics wraps-up Drupal Dev Days Szeged.
- Pixelite Magazine posted a tutorial on Upgrading PHP to 5.4 on Ubuntu 12.04 LTS to support Drupal 8
- OSTraining introduces Twig and the new, simple Drupal 8 render pipeline.
- larowlan starts a series on Writing Drupal 7 code with an eye towards Drupal 8 by explaining the benefits of writing PSR-0 code in your Drupal 7 modules now.
- Jeffrey McGuire inteviews Lukas Smith, Symfony contributor and Fabrice Bernhard, co-founder of Theodo (a Symfony SaaS provider) about the benefits of Symfony and Drupal working together on episodes 129 and 130 of the Acquia podcast respectively.
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!