Get expert Drupal 8 advice. Thanks to the hard work of the Drupal community, D8 features improved frontend and backend experiences and more. Checkout this guide to see what's new in D8
This is a release candidate for the next feature release of Drupal 8. Release candidates are not supported for production sites, but they are intended for widespread testing in preparation for the upcoming stable release. More information on release candidates.
Minor releases provide 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.
Backwards compatibility break to correct Serialization module output
#2751325: All serialized values are strings, should be integers/booleans when appropriate corrects a bug that would output all scalar values as strings rather than the correct data type in serialized output, including REST responses. This fix may require some client application updates if the application relies on these values being strings.
An opt-in backwards compatibility mode is configurable at the site level, but not enabled by default. Read the change record for more information on this change and on configuring the backwards compatibility mode.
Other important issues resolved since 8.3.0-beta1
- #2075889: Make Drupal handle incoming paths in a case-insensitive fashion for routing resolves a usability, DX, and migration path bug where case variants of the same path would result in 404s for routes. Path aliases in Drupal 8 were already case-insensitive, but route paths were not. With this change, exact matches are still supported for route paths with different cases, but the normal behavior is changed to be case-insensitive for consistency with Drupal 7, path aliases, and user expectations.
- #2770921: Convert chunk of WTB to BTB by just moving classes, changing use statements adding traits updates many core tests to use a more modern testing API.
- #2840832: Add layout templates based on Panels layouts to core
- #2852636: Update jQuery to version 2.2.4
Drupal 8 currently has a number of known issues related to incorrect tracking of file usage, which can result in files being unexpectedly deleted from a site. Site owners experiencing unexplained file loss should consider setting "Delete orphaned files" to "Never" on
/admin/config/media/file-system until these issues are resolved, and note the following issues:
- #2801777: Give users the option to prevent Drupal from automatically marking unused files as temporary
- #2708411: File usage not incremented when adding new translation
- #1239558: Deleting a node with revisions does not release file usage
- #2666700: User profile images unexpectedly deleted
- #2810355: Images lost when changing node language
All changes since 8.3.0-beta1
- #2751325 by damiankloip, Grayside, dawehner, Wim Leers, catch, tedbow, alexpott, himanshu-dixit, Jo Fitzgerald, xjm, andrewbelcher, skyredwang, effulgentsia, hampercm, eelkeblok: All serialized values are strings, should be integers/booleans when appropriate
- #2075889 by pwolanin, kgoel, alexpott, catch, mpdonadio, YesCT, himanshu-dixit, dawehner, xjm, johnshortess, Crell, jhodgdon, Wim Leers, mradcliffe, attiks, tstoeckler, webchick: Make Drupal handle incoming paths in a case-insensitive fashion for routing
- Revert "Issue #2855428 by Sam152, jhedstrom, timmillwood: Workflow state and transition add/edit form IDs have a '-' in them"
- #2855428 by Sam152, jhedstrom, timmillwood: Workflow state and transition add/edit form IDs have a '-' in them
- #2854830 by Wim Leers: Move rest/serialization module's "link manager" services to HAL module
- #2799603 by Mukeysh, josephdpurcell, Mixologic: .csslintrc file format is invalid and results in "important is not a valid option"
- #2737805 by klausi, Jo Fitzgerald, tameeshb, larowlan, dawehner: Convert web tests to browser tests for forum module
- #2853684 by tameeshb, wturrell, chiranjeeb2410, krknth, Wim Leers, eojthebrave, leolando.tan, xjm: Update grammar of inline comments in \Drupal\Core\Render\Renderer::doRender
- #2855260 by hchonov, tameeshb, klausi: Cannot make static method PHPUnit_Framework_Assert::assertFileExists() non static in class Drupal\Tests\file\Functional\FileFieldTestBase
- Revert "Issue #2587063 by quietone, Jo Fitzgerald, jhodgdon, phenaproxima, alexpott, mikeryan: Variable to config: search_active_modules [d7]"
- #2587063 by quietone, Jo Fitzgerald, jhodgdon, phenaproxima, alexpott, mikeryan: Variable to config: search_active_modules [d7]
- #2854926 by xjm, himanshu-dixit, borisson_, boaloysius, alexpott: Remove unneeded control structures in ContentEntityBase
- #2854851 by chrisrockwell, Chi: Max width and min height change to status page affects installer screens as well, but shouldn't
- #2855267 by daffie: "Larry" should not use $GLOBALS in Drupal\KernelTests\Core\Database\UpdateComplexTest
- #2585821 by blazey, marvin_B8, sdstyles, benelori, GoZ, DuaelFr: ConfigurableLanguageManager language_switch_links alter use undefined path variable
- #2854249 by GoZ, himanshu-dixit, boaloysius, xjm: Default message for linkNotExists and linkByHrefNotExists is wrong
- #2854586 by NonProfit: Stark's helptext link redirects to D7 theme guide
- Revert "Issue #2854926 by xjm, borisson_, boaloysius: Remove unneeded control structures in ContentEntityBase"
- #2854926 by xjm, borisson_, boaloysius: Remove unneeded control structures in ContentEntityBase
- #2853592 by Lendude, dawehner: Cacheability metadata can't be set from within argument default handlers
- #2831630 by quietone, Jo Fitzgerald, Kifah Meeran, phenaproxima, gaurav.kapoor, mikeryan, heddn, xjm, claudiu.cristea: Add documentation to download process plugin
- #2852636 by gnuget, kporras07: Update jQuery to version 2.2.4
- #2854560 by Wim Leers, boaloysius, dawehner: \Drupal\Core\Routing\RequestFormatRouteFilter::filter() is too HTML-centric
- #2808335 by hchonov, tstoeckler, anish.a, Wim Leers, catch, Berdir: Changed time not updated when only non-translatable fields are changed on a translated entity
- #2561115 by michaellenahan, alexpott, Lendude, cilefen, lomasr, amit.drupal, Gábor Hojtsy, ifrik, dawehner: Rollback: Use 'Filter' for exposed filter button text in new views and new installations (instead of 'Apply')
- #2846643 by mpdonadio, bkosborne, jhedstrom, alexpott: DateFormatter should not attempt to load a format from storage if the format is "custom"
- #2770921 by dawehner, klausi, Mile23, mpdonadio, xjm, claudiu.cristea: Feb 21st: Convert chunk of WTB to BTB by just moving classes, changing use statements adding traits
- #2852515 by dawehner, timmillwood: $interface is still set from the previous loop in tagged services compilation
- #2854012 by vegantriathlete: Typo in Doc block for data provider
- #2845480 by Jo Fitzgerald, quietone, phenaproxima, ultimike, xjm: Add documentation to FileCopy process plugin
- #2853984 by klausi: Remove unused use statement in AuthorFormatter.php
- #2850540 by Gábor Hojtsy et al: Remove multilingual initiative from MAINTAINERS.txt as completed
- #2851746 by Berdir, Wim Leers: Support xdebug header in ResourceTestBase and move htttpClient property to right place
- #2852992 by arshadcn: EntityResourceTestBase: only assert presence of Link headers for entity types that have link templates
- #2701777 by quietone, gaurav.kapoor, ifrik, heddn, maxocub, xjm, ekes: Edit hook_help text for Drupal Upgrade UI module
- #2845491 by Jo Fitzgerald, quietone, phenaproxima, ultimike: Add documentation to UrlEncode process plugin
- #2853163 by douggreen: ThemeInstaller is missing protected variable declaration for injected themeHandler
- #2853509 by alexpott: Don't render status messages if there are no messages
- #2851761 by MariaDenysyuk, andypost: Comment logs messages under both 'content' and 'comment' loggers; make it consistent
- #2832264 by mpdonadio, jhedstrom: DateTimeItemTest is not valid
- #2853138 by tameeshb, FlorisMoriceau: Incorrect documentation of hook_views_plugins_pager_alter()
- #2853296 by Wim Leers: Follow-up for #2820743: address remaining @todo
- Revert "Issue #2843565 by Berdir, swentel, yched: getViewBuilder('node')->viewMultiple() bypasses render cache"
- #2840832 by tim.plunkett, DickJohnson, yoroy, DyanneNova, webchick: Add Panels layouts to core
- #2845484 by Jo Fitzgerald, quietone, Kifah Meeran, Winthropian, phenaproxima, tstoeckler: Add documentation to MachineName process plugin
- #2845490 by Jo Fitzgerald, wturrell, quietone, phenaproxima, xjm: Add documentation to Substr process plugin