This is a minor version (feature release) of Drupal 8 and is ready for use on production sites. See the CHANGELOG.txt for a summary of changes and improvements since the last minor release. Learn more about Drupal 8 and the Drupal 8 release cycle.
This minor release provides new improvements and functionality without breaking backward compatibility (BC) for public APIs. Note that there may be changes in internal APIs and experimental modules that require updates to contributed and custom modules and themes per Drupal core's backwards compatibility and experimental module policies. Note that both policies have been updated for the 8.1.x release.
Note that 8.1.0 is the first stable release to use Composer for packaging its third-party dependencies. If your site is installed from a Drupal git repository, you must now run
composer install to create the third-party vendor directory. There is no change for sites installed from packaged releases (from Drupal.org tar or zip archives, normal Drush installation, etc.). See the change record on the Composer change for more detail.
New stable features
The following new stable features have been added to Drupal 8.1.0:
- The admin/help page is now more flexible so that modules and themes can and new sections, and also now lists tours.
- CKEditor now includes a language toolbar button as well as support for browsers' (native) spell-checking.
- Installation profiles can again pre-select a language or modify the language-selection screen.
- Views now provides a rendered entity field handler similar to the one provided by the Entity contributed module in Drupal 7.
API and developer improvements
Drupal 8.1.0 includes numerous improvements for the entity system. Modules requiring Drupal 8.1.0 or later can take advantage of these backwards-compatible API improvements:
- Entity types can now specify translatable plural labels for entities.
- There is now a revision log interface to improve the developer experience for revisionable entities.
- ContentEntityBase now provides field definitions for key fields, which reduces the boilerplate code needed to create content entities.
- There are now route providers for the entity add-page and add-form routes. These additions will allow routes to be auto-generated for entities, reducing the code needed when defining a new entity type.
Other API and developer improvements in 8.1.0:
- Composer support has been improved by removing external dependencies from the core repo and letting Composer manage them instead. As mentioned above, if your site is installed from a git repository, you must now run
composer installon your site.
- Image toolkits can now be defined with plugin deriviatives, which means less repeated code is needed when extending them.
- HAL web service output now includes local ID and revision fields.
- Install profiles can preselect the language for more compact installation.
- Migrations are now migration plugins instead of configuration entities which makes migrations easier to define and more consistent with other APIs in core. (Note that this change is not backwards compatible, as Migrate is an experimental module, so custom and contributed modules based on migrate APIs may need to be updated for this change.)
The following modules are considered experimental for this release. Experimental modules are provided with Drupal core for testing purposes, but are not yet fully supported.
- Migrate, Migrate Drupal, and Migrate Drupal UI (alpha stability)
This release now provides an alpha-stability user interface for Drupal core migrations! Use these modules to migrate Drupal 6 or 7 sites onto Drupal 8. See the user guide on migrating from Drupal 6 or 7 to Drupal 8 for more information.
Always back up your data before performing a migration, and be sure to take note of the outstanding issues below:
- The Drupal 6 to Drupal 8 migration should be considered alpha stability, but may be suitable for upgrading many existing Drupal 6 sites with careful testing.
- The Drupal 7 to Drupal 8 migration is incomplete, but is suitable for developers who would like to help improve the migration, and can be used to test upgrades especially for simple Drupal 7 sites.
- Issues tagged Migrate critical are blockers for these modules being considered stable. In particular, the user interface does not yet support incremental migrations.
- Drush support is still only available in the Migrate Upgrade contributed module, but the core UI now replaces the contributed module UI, and using the contributed module together with core may have unexpected results until it is updated.
- Note that the module for the user interface has been renamed to "Migrate Drupal UI" since RC1. You will need to enable all three modules to perform a migration.
- BigPipe (alpha stability)
- Provides an advanced implementation of Facebook's BigPipe page rendering strategy, leading to greatly improved perceived performance for pages with dynamic, personalized, or uncacheable content. See the BigPipe handbook page.
If you previously installed the BigPipe contributed module, you must uninstall and remove it before upgrading from Drupal 8.0.x to 8.1.x.
- Inline Form Errors (alpha stability)
This provides a proof-of-concept for showing form errors inline. It has not changed significantly from 8.0.0. Be aware that this module has outstanding issues, some of which are significant.
- #2611816: Update to symfony 2.8
- #2702677: Update to Symfony 2.8.4
- #2614682: Update JS lib: Modernizr to 3.3.1
- #2678574: Symfony 2.8 requirements change: required PHP iconv extension is nowhere documented
- #2698587: Update CKEditor library to 4.5.8
- #2665992: @file is not required for classes, interfaces and traits
- #2337283: Add a composer.json file to every component
- #2589967: Rebuild routes immediately when modules are installed
- #2688535: User deletion - unexpected nodes deletion in batch mode
- #2674780: Unexpected API change in UrlGenerator::generate()
- There is not yet per-commit testing for MySQL 5.7.9 or MariaDB 10.1.8 (both released October 2015), but there are no known issues with them. We intend to add per-commit testing on one of these databases in the future.
- Particular Apache configurations may have issues with serving public file assets. Issue: #2619250: Disabling -MultiViews in .htaccess can cause 500 errors
- #2709569 by xjm, effulgentsia, dawehner: CHANGELOG.txt additions for 8.1.0
- #2701541 by xjm, yoroy, catch, mikeryan, Gábor Hojtsy: Rename Drupal Upgrade UI to Migrate Drupal UI
- #2707109 by alexpott, jhodgdon: Help block should not be displayed when hook_help() implementations return an empty string
- #2644088 by amateescu, kevin.dutra, dawehner, plach: DefaultTableMapping::getFieldTableName does not report table for fields with dedicated storage
- #2706447 by Eli-T, jhodgdon: core/composer.txt may no longer be required
- #2706669 by alexpott, tstoeckler: Fix Drupal.Functions.FunctionDeclaration.* coding standards in core
- #2707467 by alexpott: Improve run-tests.sh phpunit error reporting when something goes wrong
- #2698587 by thpoul: Update CKEditor library to 4.5.8
- #2707095 by rbp, xjm: Add back serial comma in README.txt
- #2700661 by anoopjohn: Ensure core compliance to Drupal.Commenting.FunctionComment.ParamCommentIndentation (part 1).
- #2704821 by alexpott: url_alias table should be created by system install
- #2706113 by alexpott: Disable Drupal\Tests\Listeners\HtmlOutputPrinter by default because PHPStorm is broken
- #2706679 by alexpott, jibran: Fix @file introduced by 2696669
- #2701969 by Eli-T: core/composer.txt is out of date
- #2704911 by malcomio, thhafner: Missing apostrophe in documentation Usage Example array
- #2702677 by pfrenssen, chrko: Update to Symfony 2.8.4
- #2469721 by larowlan, alexpott, dawehner, jibran: Add functionality to store browser output to BrowserTestBase
- #2589967 by alexpott, dawehner, damiankloip, valthebald: Rebuild routes immediately when modules are installed
- #2337283 by hussainweb, Mile23, alexpott, aleksip, dawehner, heykarthikwithu, naveenvalecha, xjm, Crell, davidwbarratt, Fabianx, jhedstrom, tim.plunkett, larowlan, tstoeckler: Add a composer.json file to every component
- #2699637 by leolando.tan, jhodgdon, jummonk: Incorrect and unclear documentation on Views join handler plugins (default is LEFT JOIN)
- #2702537 by ifrik, Wim Leers: Update the BigPipe module description to be in line with the Help text standard
- #2701779 by ifrik, pguillard, saurabhsirdixit, catch: Edit Drupal Upgrade UI module description on Extend page
- #2703339 by alexpott: Many files have the wrong file permissions of 755 and not 664
- #2665992 by alexpott, klausi, heykarthikwithu, xjm, tstoeckler: @file is not required for classes, interfaces and traits
- #2688535 by amateescu, alexpott, xjm, cilefen, olegiv: User deletion - unexpected nodes deletion in batch mode
- #2696669 by mbovan, Berdir, sanja_m: Incomplete/broken access checking in EntityController::addPage()
- #2696557 by Wim Leers, danmuzyka: 404 error for CKEditor config.js file when using text format without buttons from \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal
- #2700491 by er.pushpinderrana, jhodgdon: getFieldMap() should state that bundle array has matching keys and values
- #2678568 by Wim Leers: Ensure good UX & DX even when A) rendering of placeholder fails, B) some response event subscriber fails
- #2700475 by cilefen: Fix coding standards regressions
- #2686407 by andypost, aerozeppelin, darrick, mpdonadio: Datetime type should be disabled on storage setting form if field has data
- #2700367 by alexpott: Consolidate miscellaneous docs from class @file docblocks into the class docblocks (part2)
- #2676836 by xjm, alexpott: Update proxy class generator for new @file standard
- #2701027 by Gábor Hojtsy, Sharique, jhodgdon: Drupal 8 UPGRADE.txt is misleading in many ways (in its name to begin with)
- Back to dev.
Third-party library updates
Changed coding standards
Drupal 8.1.0 has adopted the following coding standards changes:
Important bug fixes
The following important issues are resolved in 8.1.0 (in addition to the dozens of other fixes listed at the end of this post):
There are no known regressions in this release.
The following issues may affect people running Drupal 8.1.0 on specific hosting environments: