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 and includes security fixes since the previous release candidate. 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.
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.
Important issues resolved since 8.3.0-rc1
This release candidate includes security fixes that were also released in Drupal 8.2.7. See SA-CORE-2017-001 for more information. Sites using 8.3.0-rc1 or earlier should update immediately. (Sites on 8.2.x should update to Drupal 8.2.7).
This release also includes a security-related update for the phpunit dev dependency. Since 8.2.3, packaged Drupal releases no longer contain development PHP libraries. See Drupal 8 will no longer include dev dependencies in release packages for more information. This update ensures that Drupal core requires the most secure version of phpunit available, so you should update any sites that do include dev dependencies with this version. Using dev dependencies in production is still not recommended. Be sure to follow the update instructions completely, including removing old files.
Additional important fixes since RC1:
- The Inline Form Errors experimental module's functionality is now automatically disabled while editing a field with Quick Edit because its method of displaying errors was not compatible with Quick Edit's. (There is a followup to allow any form to opt out of Inline Form Errors.)
- Drupal core itself and the coding standards were updated to now use the short PHP array syntax.
- PHP CodeSniffer was updated to 2.8.1 and Coder was updated to 8.2.11.
- This release candidate resolves #2858852: [8.3.x regression] Extra fields cannot be used with tabledrag in Manage Display, which was a regression following entity display improvements that support the Layout Initiative.
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
A regression was found in this release.
All changes since 8.3.0-rc1
- SA-CORE-2017-001 by alexpott, benjy, Berdir, casey, cilefen, dawehner, Heine, klausi, larowlan, Mixologic, mlhess, pwolanin, samuel.mortenson, Wim Leers, xjm, YesCT
- #2701005 by brathbone, gaurav.kapoor, gianani, alexpott, tstoeckler, kristiaanvandeneynde, Yogesh Pawar: Improve documentation of EntityTypeInterface label functions
- #2860096 by alexpott, GoZ, jhodgdon: Remove api doc groups for updates eg. updates-8.2.x-to-8.3.x
- #2860277 by ritzz, gaurav.kapoor, vaplas: update_language_list() should be removed
- #2860308 by geerlingguy: Fix typo in Drupal\Tests\views\Kernel\Plugin\Display\ViewsMenuLinkTest
- #2855927 by daffie, Jo Fitzgerald: Drupal\KernelTests\Core\Database\RangeQueryTest does not have to add the module "database_test"
- #2615016 by hchonov, Jo Fitzgerald, Pavan B S, tstoeckler, mkalkbrenner, plach, amateescu, Berdir: ContentEntityBase::hasTranslationChanges should exclude the "changed" fields from the comparison
- #2858109 by amateescu: The BlockContent entity type does not specify its revision data table
- #2846428 by othermachines, michielnugter, vaplas, dagmar, John Cook, Lendude, droplet: Views add dialog filter searches on label instead of title
- #2824267 by quietone, shashikant_chauhan, faline, mikeryan, OnkelTem, ohthehugemanatee: Highwater condition isn't added (on remote databases)
- #2857502 by Jo Fitzgerald, shashikant_chauhan, quietone, heddn: Comment out migration of D6 file size to sync with D7
- #2756689 by tameeshb, geertvd, arunkumark, claudiu.cristea, Berdir: Label of contact form message field is not hidden
- #2828092 by dmsmidt, gaurav.kapoor, s.d.sirois, andrewmacpherson, Gábor Hojtsy, tstoeckler, jules., Wim Leers, SKAUGHT, marcvangend, yoroy, catch: Inline Form Errors not compatible with Quick Edit
- #2858852 by tim.plunkett: [8.3.x regression] Extra fields cannot be used with tabledrag in Manage Display
- #2687977 by claudiu.cristea, alexpott, prics: Comment::preSave() unconditionally sets hostname to client host
- #2845488 by Jo Fitzgerald, gerzenstl, Pavan B S, Yogesh Pawar, gaurav.kapoor, quietone, phenaproxima, mikeryan: Add documentation to SkipOnEmpty process plugin
- #2845487 by Jo Fitzgerald, quietone, phenaproxima: Add documentation to Route process plugin
- #2857725 by Jo Fitzgerald, boaloysius, klausi: Improve assertNoFieldByName() compatibility for empty strings
- #2718655 by dawehner, Jo Fitzgerald, Wim Leers: #type actions with dropbutton loses bubbleable metadata
- #2846002 by Jo Fitzgerald, joachim: Pipeline failure exceptions should say which plugin they failed at
- #2859308 by Jo Fitzgerald: Improve assertNoFieldById() compatibility for empty strings
- #2819477 by Sam152, timmillwood, dawehner, jibran, xjm: Views integration incorrectly joins content_moderation_state entities with matching IDs, but different entity types
- #2479377 by dpi, edurenye, tstoeckler, andypost, mgifford, RajabNatshah, mglaman, jespermb, hitfactory, meramo, lluvigne, amateescu: content_translation_page_attachments() should check for a canonical link before generating a URL to it
- #2858598 by danielnv18, chiranjeeb2410, jhodgdon: hal.install has @defgroup instead of @addtogroup
- #2742995 by Jo Fitzgerald, claudiu.cristea, naveenvalecha, klausi, dawehner, bighappyface: Convert web tests to browser tests for contact module
- #2859618 by lauriii: Add Gábor Hojtsy, Roy Scholten (yoroy) and Lauri Eskola (lauriii) as provisional maintainers for Drupal 8
- #2782663 by Jo Fitzgerald, klausi: Convert web tests to browser tests for syslog module
- #2757007 by claudiu.cristea, tameeshb, Jo Fitzgerald, Sam152, himanshu-dixit, jibran, klausi, dawehner: Convert all book web tests to BrowserTestBase
- #2548061 by hussainweb, alexpott, klausi, Crell, dawehner, Berdir: Fix Drupal\Tests\accept_header_routing_teste\Unit\Routing\AcceptHeaderMatcherTest::testNoRouteFound
- #2314513 by joelpittet, larowlan: Add test coverage for DiffFormatter not double escaping
- #2857953 by xjm, dmsmidt: Add dmsmidt as maintainer for IFE
- #2859013 by mpdonadio: DateTestBase inadvertently coupled to datetime_range module
- #2855977 by blazey: LanguageNegotiationUrl::processInbound removes path prefix even when detection is based on domain
- Revert "Issue #2225781 by quietone, Jo Fitzgerald, Gábor Hojtsy, mikeryan: Migrate D6 i18n taxonomy vocabularies"
- #2671058 by Jo Fitzgerald, hchonov, tstoeckler, tameeshb, Munavijayalakshmi, pguillard: OverviewTerms doesn't respect the current content language when building the form and term urls and names are generated based on the terms default language
- #2832859 by vaplas, webflo, harings_rob, Wim Leers: Write EntityResourceTestBase subclasses for: MenuLinkContent
- #2225781 by quietone, Jo Fitzgerald, Gábor Hojtsy, mikeryan: Migrate D6 i18n taxonomy vocabularies
- #2712835 by Leksat: Plain text field default value is not translatable
- #2808321 by vaplas, Jo Fitzgerald, Lendude, alexpott, xjm, Chi, benqwerty: Fix default value "EQUAL" in $query_operator param of BooleanOperator::queryOpBoolean()
- #2821711 by Wim Leers: Apache always sets Content-Type: text/html, even for DELETE requests
- #2575535 by bighappyface, heykarthikwithu, rodrigoaguilera, prasad_gogate: Custom language settings configuration is not saved when you have a language selector enabled for any content
- #2858081 by gaurav.kapoor: Constructor Shouldn't have a return statement
- #2823963 by vaplas, Andrej Galuf, dawehner: Views StringFilter using 'Contains any word' or 'Contains all words' breaks query on strings containing only characters that will be trimmed
- #2856364 by drpal, Wim Leers: Reposition Quickedit overlay on toolbar orientation change
- #2666166 by jsst, Lendude, Andrej Galuf: View with not required relationship and aggregation enabled fails to execute
- #2851149 by hchonov, amateescu, Wim Leers: Exceptions on setting entity reference field with integer target ID and entity object
- #2844046 by Wim Leers, dawehner, tedbow: REST Resource config entities do not respect the status (enabled/disabled)
- #2745123 by drugan, Mile23, mpdonadio, alexpott, slasher13, Jo Fitzgerald, drunken monkey, nikolas.costa, Yogesh Pawar, blazey, benjifisher, dawehner, mondrake, penyaskito, fietserwin, othermachines: Simpletest module crashes on cleanup, uninstall
- #2857909 by chiranjeeb2410, dagmar: DbLogController needs some updates on the comments
- #2857846 by swentel: Remove obsolete get call in ViewsBulkTest
- #2852242 by Jo Fitzgerald: Merge the two files testing the file_copy process plugin
- #2854529 by alexpott, xjm, klausi, Chi, Mixologic: Fix Drupal.Scope.MethodScope - all methods should have scopes
- #2857714 by klausi, andypost, Mile23: Upgrade Coder to 8.2.11
- #2668752 by mr.baileys, chx, tim.plunkett, Berdir: DefaultPluginManager::setCacheBackend has wrong information about language suffix
- #2857780 by vegantriathlete: Correct typo in comment in TagTest.php
- #2802663 by mpdonadio, Berdir, jibran, jhedstrom, amateescu: Exceptions due ChangedItem, CreatedItem, and TimestampItem implicit dependencies on datetime module
- #2600836 by balagan, Sagar Ramgade, Chi, anil280988, joshi.rohit100, Jo Fitzgerald, vaplas, dawehner, alexpott, klausi: Make protected Simpletest test methods public for consistency
- #2845731 by ashish-deynap, vaplas, chiranjeeb2410, Munavijayalakshmi, tramsaal, xjm: Theming guide links are wrong
- #2857410 by tim.plunkett, DamienMcKenna: Adding a page-level #prefix or #suffix causes it to be output twice on one-col layout
- Followup to remove unused use.
- #2857822 by alexpott, klausi: Fix coding standards issues introduced mostly by array syntax conversion
- #2776975 by joelpittet, dawehner, tim.plunkett, xjm, klausi, pfrenssen, eojthebrave: March 3, 2017: Convert core to array syntax coding standards for Drupal 8.3.x RC phase
- #1918994 by Tim Bozeman, mgifford, mpdonadio, vprocessor, sun, xjm, falcon03, nabiyllin, rteijeiro, cwarsaw, yoroy, andymartha, jessebeach, lauriii, jhedstrom, andypost, Bojhan, cilefen, aaronbauman, sugaroverflow: Improve Datetime and Daterange Widget accessibility
- #2850984 by maxocub: Fix path alias migration of translated nodes [D7]
- #2857258 by ritzz, Munavijayalakshmi, shashikant_chauhan, xjm: Replace documentation references to token_replace()
- #2845151 by Sam152, timmillwood, tstoeckler: ContentModerationStateFormatter pretends it's for the moderated entity, but it is for the content moderation state entity
- #2855428 by Sam152, jhedstrom, timmillwood: Workflow state and transition add/edit form IDs have a '-' in them
- #2857245 by klausi, pwolanin: Security update for PHPCS