Install
To start a new Drupal project with version 8.4.0-beta1@beta:To update your site and all dependencies to the latest version of Drupal:
To update your site to this specific release:
Using Composer to manage Drupal site dependencies
Downloads
Release notes
This is a beta release for the next release of Drupal 8. Betas are good testing targets for developers and site builders who are comfortable reporting (and where possible, fixing) their own bugs. Beta releases are not recommended for non-technical users, nor for production websites. More information on beta releases.
This minor release provides new improvements and functionality without breaking backward compatibility (BC) for public APIs. 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.
For a full list of other API and feature additions included in the 8.4.0 beta compared to 8.3.x, see the 8.4.0-alpha1 release notes.
The following important issues have been resolved since 8.4.0-alpha1 (in addition to the numerous fixes listed at the end of this post).
Known issues
Drupal 8.4.0-alpha1 includes major version updates for two dependencies: Symfony 3.2 and jQuery 3. Both updates may introduce backwards compatibility issues for some sites or modules, so test carefully. For more information, see the "Third-party library updates" section of the 8.4.0-alpha1 release notes and the "Updated third-party libraries" section below.
Important fixes in this release
The following critical and major bug fixes resolve several problems that affected file usage tracking and translated content, prevented content creation in the Content Moderation module, affected user experience in multiple interfaces, and triggered race conditions in the Batch system, among others.
- #2898808: [regression] With jQuery3, modal tour tips lose their grey background and centering resolves a critical regression in core in which the update to jQuery 3 caused modal tips provided by the Tour module to be unusable on smaller screens. An upstream fix has been committed to the zurb/joyride library to resolve its jQuery 3 compatibility problem, but is not yet available in a tagged release, so in the meanwhile we provide a pre-release version of the library.
- #2896480: Allow to reference permanent files with 0 usages resolves a critical core issue in which some sites could not save nodes following our hotfix to disable marking unused files as temporary which was in turn a workaround for data integrity bugs with file usage tracking. * #2900687: Fatal error when saving a node type without content moderation resolves a critical issue in the Content Moderation module in which after applying moderation to one content type, creating a node of an unmoderated type led to a fatal error.
- #2851111: fastcgi_finish_request and shutdown functions (e.g. batch) do not play nicely together resolves a critical core issue in which a race condition is triggered when Batch or other users of shutdown functions allow subsequent requests to be issued when shutdown functions are still running.
- #2900800: Specify minimum phpspec/prophecy version in core/composer.json resolves a major core issue in which tests would fail due to an incompatibility with an unmet dependency version for phpspec/prophecy.
- #2896845: Provide the 'revision_translation_affected' base field by default for all revisionable and translatable entity types ensures that entity types that can be both revisioned and translated have the base field
revision_translation_affectedwhich prevents forked draft revisions downstream due to changes in translations. The change record for this issue describes what to do if you already have a field with the same name. - #2650434: Clearing cache via UI in translated language resets config translation of field labels to default language resolves a major core issue in which a cache clear operation conducted through a translated administrative interface changes field labels back to the default language.
- #2896381: "TranslationLanguageRenderer" uses the wrong table for the "langcode" column with entity revision views resolves a major Views issue in which a view of revisions on a site with translated content issues a malformed select query.
- #2551373: contextual.js and quickedit.js should fail gracefully, with useful error messages, when Twig templates forget to print attributes resolves a major core issue in Contextual Links in which unhelpful JavaScript errors are thrown when attributes are removed from certain Twig templates.
- #2896427: Prevent enabling the "media" module if "media_entity" contrib 1.x is already enabled results in Drupal now indicating that the Media core module and Media Entity contributed module should not be enabled together due to incompatibilities with one another. The contributed module will provide an upgrade path to the core module in its 2.x release.
User and developer experience improvements
The following improvements have been added to this beta (in addition to those that were already included in 8.4.0-alpha1).
- #2895382: Hide label, thumbnail, etc. for default display of media file and image references
- #2901778: Provide correct display name and title for comment admin view displays
- #2787873: Add a base class for entity reference selection handlers and fix the structure of their configuration
- #2898344: Add filters to the comments administration pages
Experimental module improvements
This beta release includes several improvements for the experimental modules in 8.4.0-alpha1.
Migrate
- #2891935: Refactor D7 FieldInstance source plugin and other field instance related source plugins helps, along with #2891932: Refactor D7 Field source plugin, to provide a means to resolve a critical migration issue where plaintext fields in Drupal 7 are incorrectly migrated as formatted text in Drupal 8.
- #2854878: Taxonomy vocabulary with name "Type" cannot migrate from d6 to d8
- #2569805: For Drupal migration, identify the source module
- #2551727: Menu link migrations should be defensive resolves an issue where migrations for menu data could fail without explanation after running for a long time (due to failed path migration).
Workflows and Content Moderation
The Workflows and Content Moderation modules include numerous fixes since 8.4.0-alpha1. Workflows has now entered the release candidate phase. We expect that Workflows may be available as stable modules in Drupal 8.4.0 unless we identify serious bugs or architectural issues. Content Moderation remains beta stability, as we have identified a critical feature gap because there is no way to find moderated content that requires added views integration for Content Moderation as well as a feature addition to Views itself.
- #2848775: BaseFieldOverride entities created by content_translation break content_moderation because they don't support computed fields
- #2893888: Content moderation state entity field data not removed when the host field data is
- #2900019: _moderationcauses errors when importing any non-workflow config
- #2899395: Content Moderation form in displayed entity looks broken
- #2856917: Moderating an entity that uses a special language (e.g. LANGCODE_NOT_SPECIFIED) throws exception
- #2892967: _moderation::formAlter() is half broken
- Architectural reviews of the Workflows and Content Moderation modules surfaced several issues that have since been resolved, so the modules now include added API documentation, better accessibility, and several API and data model improvements.
Settings Tray
The 8.4.0-beta release includes numerous Settings Tray fixes since 8.4.0-alpha1. Settings Tray remains at alpha stability but only three unresolved issues remain that block beta stability:
- #2902361: [regression] In Settings Tray the when form is longer than page body it is tricky to scroll to the very bottom
- #2782891: Page Title block's title behaves in a confusing way, especially with Outside In
- #2803375: Rename Outside-in module to "Settings Tray" for real
Settings Tray improvements since 8.4.0-alpha1 include:
- #2830882: Introduce Drupal.offCanvas, mirrored after Drupal.dialog, to avoid Settings Tray using Drupal.Dialog in unintended ways introduces a new public API in the Drupal JavaScript namespace for off-canvas interactions which can be modified or overridden by any module outside of Settings Tray.
- #2901626: CSS animations cause _inrandom fails
- #2897938: Prevent accessing null elements when operating on ajax instances using the off_canvas renderer
- #2897320: Settings Tray causes the "pointer" cursor to be used both when hovering over inaccessible links (should use "default" cursor) and when in input[type=text] (should use "text" cursor)
- #2901205: Settings tray leaves dashed outline on followup pages
Updated third-party libraries
- #2899156: Update jquery-once to latest release updates jquery-once from 2.1.1 to 2.2.0.
- #2898808: [regression] With jQuery3, modal tour tips lose their grey background and centering updates zurb/joyride to a patched version of 2.1.0.
All changes since 8.4.0-alpha1
- #2898808 by effulgentsia, larowlan, drpal, droplet, cilefen: [regression] With jQuery3, modal tour tips lose their grey background and centering
- SA-CORE-2017-004 by arshadcn, amateescu, Wim Leers, Berdir, Lendude, dawehner, klausi, pwolanin, xjm, mpdonadio, mlhess, larowlan, milesw
- #2899156 by andypost: Update jquery-once to latest release
- #2899859 by Sam152: Remove incorrect documentation hint for "WorkflowTypeFormInterface"
- #2738563 by andypost, Wim Leers: HeadersCacheContext needs test coverage
- #2901778 by xjm, jibran, annajl: Provide correct display name and title for comment admin view displays
- #2859455 by Sam152, vijaycs85, timmillwood, dawehner, Wim Leers: Remove superfluous @todos from content moderation
- Revert "Issue #2901692 by tim.plunkett, EclipseGc: FieldDefinitionIntegrityTest does not respect experimental modules"
- #2896427 by marcoscano, Wim Leers, xjm, Berdir, slashrsm: Prevent enabling the "media" module if "media_entity" contrib 1.x is already enabled
- #2787873 by claudiu.cristea, jibran, amateescu, catch, dawehner, cilefen, xjm, larowlan, vaplas: Add a base class for entity reference selection handlers and fix the structure of their configuration
- #2569805 by quietone, Jo Fitzgerald, mikeryan, joelpittet, heddn, Adita, Miguel.kode, iMiksu, tvb, maxocub, juancasantito, phenaproxima, alexpott, neclimdul, xjm: For Drupal migration, identify the source module
- #2830882 by tedbow, droplet, drpal, Adita, Cottser, tim.plunkett, markcarver, Wim Leers, nod_, catch: Introduce Drupal.offCanvas, mirrored after Drupal.dialog, to avoid Settings Tray using Drupal.Dialog in unintended ways
- #2901626 by tedbow, vaplas: CSS animations cause \Drupal\Tests\outside_in\FunctionalJavascript\OutsideInBlockFormTest random fails
- #2898344 by jibran, xjm, Lendude, dawehner, andypost, mradcliffe, larowlan, annajl, Bojhan: Add filters to the comments administration pages
- #2896480 by mpdonadio, dawehner, Berdir, martin107: Allow to reference permanent files with 0 usages
- #2900700 by timmillwood: Add orderby to content_moderation schema sequences
- #2900320 by Sam152, timmillwood, Wim Leers: Remove workflow type checkWorkflowAcess() & "view content moderation" permission
- Revert "Issue #2830882 by tedbow, droplet, drpal, Adita, tim.plunkett, markcarver, Wim Leers, nod_: Introduce Drupal.offCanvas, mirrored after Drupal.dialog, to avoid Settings Tray using Drupal.Dialog in unintended ways"
- #2897938 by tedbow, drpal: Prevent accessing null elements when operating on ajax instances using the off_canvas renderer
- #2899724 by drpal, tedbow, DyanneNova, droplet, Cottser, Wim Leers: Fixes for settings tray CSS and JavaScript minor issues
- #2900222 by dagmar: Remove coupling to minimal profile in ModuleHandlerTest::testUninstallProfileDependency() and use the testing profile instead
- #2830882 by tedbow, droplet, drpal, Adita, tim.plunkett, markcarver, Wim Leers, nod_: Introduce Drupal.offCanvas, mirrored after Drupal.dialog, to avoid Settings Tray using Drupal.Dialog in unintended ways
- #2767275 by GoZ, Jo Fitzgerald, claudiu.cristea, boaloysius, andypost, klausi, dawehner: Convert web tests to browser tests for tour module
- Revert "Issue #2830882 by tedbow, droplet, Adita, drpal, markcarver, Wim Leers, nod_: Introduce Drupal.offCanvas, mirrored after Drupal.dialog, to avoid Settings Tray using Drupal.Dialog in unintended ways"
- #2896845 by amateescu, pk188, plach, timmillwood, Sam152: Provide the 'revision_translation_affected' base field by default for all revisionable and translatable entity types
- #2848775 by Sam152, eyilmaz, D34dMan, DuneBL, huzooka: BaseFieldOverride entities created by content_translation break content_moderation because they don't support computed fields
- #2830882 by tedbow, droplet, Adita, drpal, markcarver, Wim Leers, nod_: Introduce Drupal.offCanvas, mirrored after Drupal.dialog, to avoid Settings Tray using Drupal.Dialog in unintended ways
- #2900687 by timmillwood, Sam152, DuneBL: Fatal error when saving a node type without content moderation
- #2891935 by maxocub, Jo Fitzgerald, heddn: Refactor D7 FieldInstance source plugin and other field instance related source plugins
- #2900800 by Mile23, mpdonadio: Specify minimum phpspec/prophecy version in core/composer.json
- #2901692 by tim.plunkett, EclipseGc: FieldDefinitionIntegrityTest does not respect experimental modules
- #2887000 by cilefen, Mile23, mpdonadio, Eric_A: composer.json does not constrain Symfony components to minor and patch versions that are compatible with Drupal
- #2900634 by Sam152: Mark WorkflowDeleteAccessCheck @internal until a UI pattern for access-restricted states has been established
- #2898913 by Sam152, andrewmacpherson, Wim Leers: Review a11y concerns in ContentModerationConfigureForm
- #2897320 by Wim Leers, tedbow, xjm, andrewmacpherson, Cottser, DyanneNova: Settings Tray causes the "pointer" cursor to be used both when hovering over inaccessible links (should use "default" cursor) and when in input[type=text] (should use "text" cursor)
- #2900394 by rachel_norfolk, mradcliffe, valthebald, heddn: Update mentoring coordinators section of MAINTAINERS.txt
- #2901205 by tedbow, SKAUGHT: Settings tray leaves dashed outline on followup pages
- #2551727 by quietone, Jo Fitzgerald, phenaproxima, neclimdul, joelpittet, iMiksu, lostkangaroo, heddn, mikeryan, geste, alexpott, benjy: Menu link migrations should be defensive
- #2650434 by vijaycs85, anemes, duozersk, andypost, eiriksm, TwoD, chipway, pguillard, dawehner, tstoeckler, vaplas, robert-os, Yogesh Pawar, davidraijmakers: Clearing cache via UI in translated language resets config translation of field labels to default language
- #2898020 by amateescu, timmillwood: Simplify ContentModerationStateTest
- https://www.drupal.org/files/issues/2900046-20.patch
- #2851111 by tedbow, tstoeckler, Munavijayalakshmi, dagmar, dawehner, catch, Fabianx, david_garcia, Nebel54, hchonov: fastcgi_finish_request and shutdown functions (e.g. batch) do not play nicely together
- #2896381 by plach, Sam152, tacituseu, amateescu, Berdir: TranslationLanguageRenderer uses the wrong table for the langcode column with entity revision views
- #2893888 by plach, Sam152, amateescu, evilehk: Content moderation state entity field data not removed when the host field data is
- #2900247 by andypost, thejacer87: Hook seven_preprocess_menu_local_tasks is preprocess, not pre_render
- #2899395 by timmillwood, Wim Leers, jojototh, xjm, Bojhan, DyanneNova: Content Moderation form in displayed entity looks broken
- #2887080 by edwardaa: Fix FieldItemInterface doc's parameter type and return type
- #2551373 by drpal, danlinn, ruthleopold, Berdir, droplet, Wim Leers, prajaankit: contextual.js and quickedit.js should fail gracefully, with useful error messages, when Twig templates forget to print attributes
- #2900019 by tim.plunkett, joelpittet: \Drupal\content_moderation\EventSubscriber\ConfigImportSubscriber causes errors when importing any non-workflow config
- #2895382 by Wim Leers, chr.fritsch, xjm, marcoscano, dawehner, larowlan: Hide label, thumbnail, etc. for default display of media file and image references
- #2882784 by harsha012, douggreen, joelpittet: Fix ThemeHandlerInterface::setDefault() deprecation code example in header comment
- #2856917 by amateescu, kriboogh: Moderating an entity that uses a special language (e.g. LANGCODE_NOT_SPECIFIED) throws exception
- #2895685 followup by xjm: Fix header levels for display on release notes nodes.
- #2851603 by Sam152: Add inline documentation to content moderation onDependencyRemoval() that describes what's happening
- #2854878 by maxocub, joelpittet, mikeryan, quietone, hansrossel, phenaproxima: Taxonomy vocabulary with name Type cannot migrate from d6 to d8
- #2897533 by claudiu.cristea: Documentation and example for FileCopy is wrong
- #2893072 by maxocub: Modify the DateField Field plugin so it's used for D6 & D7
- #2898437 by andypost, dawehner, Lendude: Convert HistoryTimestampTest to kernel test
- #2723745 by sonfd: TermStorageInterface::loadChildren() incorrectly states retrieving parents instead of children
- #2897686 by xjm: Description for workflow label field does not add any information
- #2889814 by mpdonadio: DateTimePlus doesn't apply the correct time zone when converting a string with an offset
- #2895180 by hussainweb: Fix documentation in MigrateSourcePluginManager
- #2775553 by Wim Leers, naveenvalecha: Convert web tests to browser tests for REST module
- #2892967 by amateescu, Sam152: \Drupal\content_moderation\EntityTypeInfo::formAlter() is half broken
- #2895685 followup by xjm: Add references to string changes and change records.
- #2895685 followup by Wim Leers: Correct a few CHANGELOG entries.
- #2863318 by martin107, naveenvalecha, Lendude, Jo Fitzgerald: Cache: Convert system functional tests to phpunit
- #2892179 by Wim Leers, Berdir: Follow-up for #2775381: clearing render cache in PerformanceForm::submitForm() is obsolete
- #2893978 by tedbow: Use newly supported 'options' in contextual links in Settings Tray contextual links
- #2863416 by zviryatko, michielnugter, naveenvalecha, alexpott, Jo Fitzgerald: Convert web tests to browser tests for filter module