|
@@ -1,14 +1,544 @@
|
|
|
-Drupal 8.3.7, 2017-08-16
|
|
|
+Drupal 8.4.0, 2017-10-04
|
|
|
------------------------
|
|
|
-- Fixed security issues. See SA-CORE-2017-004.
|
|
|
+### Drush users: Update to Drush 8.1.12+ or higher
|
|
|
|
|
|
-Drupal 8.3.4, 2017-06-21
|
|
|
-------------------------
|
|
|
-- Fixed security issues. See SA-CORE-2017-003.
|
|
|
+[Versions of Drush earlier than 8.1.12 will not work with Drupal
|
|
|
+8.4.x](https://www.drupal.org/node/2874827). Update Drush to 8.1.12 or higher
|
|
|
+**before using it to update to Drupal core 8.4.x** or you will encounter fatal
|
|
|
+errors that prevent updates from running.
|
|
|
|
|
|
-Drupal 8.3.1, 2017-04-19
|
|
|
-------------------------
|
|
|
-- Fixed security issues. See SA-CORE-2017-002.
|
|
|
+* If Drush is installed globally (i.e., generally available on the web host),
|
|
|
+ Drush 8.1.12 and higher will successfully update Drupal 8.3.x to 8.4.0, but
|
|
|
+ users may still see [other error messages after updates have
|
|
|
+ run](https://github.com/drush-ops/drush/issues/2933).)
|
|
|
+* If the site is built with Composer and includes Drush as a local dependency
|
|
|
+ (less common), you should update your `composer.json` file to require at
|
|
|
+ least [Drush 8.1.15](https://github.com/drush-ops/drush/releases/tag/8.1.15).
|
|
|
+ Drush 8.1.14 will not work in the same composer project as Drupal 8.4.
|
|
|
+
|
|
|
+### Updated browser requirements: Internet Explorer 9 and 10 no longer supported
|
|
|
+
|
|
|
+In April 2017, Microsoft discontinued all support for Internet Explorer 9 and
|
|
|
+10. Therefore, [Drupal 8.4 has as well](https://www.drupal.org/node/2842298).
|
|
|
+Drupal 8.4 still mostly works in these browser versions, but bugs that affect
|
|
|
+them only will no longer be fixed, and existing workarounds for them will
|
|
|
+be removed beginning in Drupal 8.5.
|
|
|
+
|
|
|
+Additionally, Drupal 8's [browser requirements documentation
|
|
|
+page](https://www.drupal.org/docs/8/system-requirements/browser-requirements)
|
|
|
+currently lists incorrect information regarding very outdated browser versions
|
|
|
+such as Safari 5 and Firefox 5. [Clarifications to the browser policy and
|
|
|
+documentation](https://www.drupal.org/node/2390621) are underway.
|
|
|
+
|
|
|
+### Known Issues
|
|
|
+
|
|
|
+Drupal 8.4.0 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 below. Known issues related to the
|
|
|
+Symfony update include:
|
|
|
+
|
|
|
+* Drush issues:
|
|
|
+ * [Incompatibility with Drush 8.1.11 and earlier](https://www.drupal.org/node/2874827).
|
|
|
+ * [Other error messages with Drush 8.1.12 and higher](https://github.com/drush-ops/drush/issues/2933).
|
|
|
+ * [Incompatibility with Drush 8.1.14 and earlier for Composer-built sites](https://github.com/drupal-composer/drupal-project/issues/305).
|
|
|
+* [Certain file uploads may fail
|
|
|
+ silently](https://www.drupal.org/node/2906030) due to a Symfony 3 backwards
|
|
|
+ compatibility break if they used the `$deep` parameter (which was already
|
|
|
+ deprecated in Symfony 2.8 and is removed in Symfony 3.0. *Check any custom
|
|
|
+ file upload code* that may have used the deprecated parameter and [update
|
|
|
+ it according to the API change record](https://www.drupal.org/node/2743809).
|
|
|
+
|
|
|
+See the ['8.4.0 update' tag for a list of known issues across
|
|
|
+projects](https://www.drupal.org/project/issues/search?issue_tags=8.4.0%20update).
|
|
|
+
|
|
|
+[Search the issue queue for known
|
|
|
+issues](https://www.drupal.org/project/issues/search/drupal?project_issue_followers=&status%5B%5D=Open&version%5B%5D=8.x&issue_tags_op=%3D).
|
|
|
+
|
|
|
+### Important fixes since 8.3.x
|
|
|
+
|
|
|
+Translators should take note of several [string additions and changes since the
|
|
|
+last release](https://www.drupal.org/project/issues/search/drupal?project_issue_followers=&issue_tags_op=%3D&issue_tags=String+change+in+8.4.0).
|
|
|
+
|
|
|
+#### File usage tracking
|
|
|
+
|
|
|
+Drupal 8 has several longstanding [file usage tracking
|
|
|
+bugs](https://www.drupal.org/node/2821423). To prevent further data loss,
|
|
|
+Drupal 8.4 has [disabled the automatic deletion of files with no known
|
|
|
+remaining usages](https://www.drupal.org/node/2801777). This will result of the
|
|
|
+accumulation of unused files on sites, but ensures that files erroneously
|
|
|
+reporting 0 usages are not deleted while in use. Additionally, an issue with
|
|
|
+[validation errors when saving content referencing these
|
|
|
+files](https://www.drupal.org/node/2896480) has also been resolved.
|
|
|
+
|
|
|
+[The change record explains how sites can opt back into marking files
|
|
|
+temporary](https://www.drupal.org/node/2891902). If you choose to enable the
|
|
|
+setting, you can also set "Delete orphaned files" to "Never" on
|
|
|
+`/admin/config/media/file-system` to avoid permanent deletion of the affected
|
|
|
+files.
|
|
|
+
|
|
|
+While the files will no longer be deleted by default, file usage is still not
|
|
|
+tracked correctly in several scenarios, regardless of the setting. Discussion
|
|
|
+on [how to evolve the file usage tracking
|
|
|
+system](https://www.drupal.org/node/2821423) is underway.
|
|
|
+
|
|
|
+#### Configuration export sorting
|
|
|
+
|
|
|
+* [#2361539: Config export key order is not predictable for sequences, add
|
|
|
+ orderby property to config schema](https://www.drupal.org/node/2361539)
|
|
|
+ resolves an issue where sequences in configuration were not sorted unless
|
|
|
+ the code responsible for saving configuration explicitly performed a sort.
|
|
|
+ This resulted in unpredictable changes in configuration ordering and
|
|
|
+ confusing diffs even when nothing had changed. To resolve this issue, we've
|
|
|
+ [added an `orderby` key to the config schema](https://www.drupal.org/node/2852566)
|
|
|
+ that allows it to be sorted either by key or by value. Adding a preferred
|
|
|
+ sort is strongly recommended.
|
|
|
+* Two related issues remain open:
|
|
|
+ * [#2860531: Add orderby key to third-party
|
|
|
+ settings](https://www.drupal.org/node/2860531) relates to unsorted
|
|
|
+ sequences which result in unexpected discrepancies in configuration
|
|
|
+ during a configuration import.
|
|
|
+ * [#2885368: Config export key order for sequences: "orderedby" does not
|
|
|
+ support cases where the order actually
|
|
|
+ matters](https://www.drupal.org/node/2885368) relates to various
|
|
|
+ sequences in core and contributed modules in which the source order is
|
|
|
+ important.
|
|
|
+
|
|
|
+#### Revision data integrity fixes
|
|
|
+
|
|
|
+* Previously, data from draft revisions for
|
|
|
+ [path aliases](https://www.drupal.org/node/2856363),
|
|
|
+ [menus](https://www.drupal.org/node/2858434),
|
|
|
+ and [books](https://www.drupal.org/node/2858431) could leak into the live
|
|
|
+ site. Drupal 8.4.0 hotfixes all three issues by preventing changes to
|
|
|
+ this data from being saved on any revision that is not the default revision.
|
|
|
+ These fixes improve revision support for both stable features and the
|
|
|
+ experimental Content Moderation module.
|
|
|
+* Correspondingly, [Content Moderation now avoids such scenarios with
|
|
|
+ non-default revisions](https://www.drupal.org/node/2883868) by setting the
|
|
|
+ 'default revision' flag earlier.
|
|
|
+* Previously, [saving a revision of an entity translation could cause draft
|
|
|
+ revisions to go "missing"](https://www.drupal.org/node/2766957). Drupal 8.4.0
|
|
|
+ prevents this by preventing the moderation state from being set to anything
|
|
|
+ that would make the revision go "missing". Going forward, the entity system
|
|
|
+ will also [provide the 'revision_translation_affected' base field by default
|
|
|
+ for all revisionable and translatable entity
|
|
|
+ types](https://www.drupal.org/node/2896845) for tracking such revisions.
|
|
|
+* [A similar but unrelated bug in
|
|
|
+ Content Moderation](https://www.drupal.org/node/2862988) has also been fixed
|
|
|
+ in this release.
|
|
|
+
|
|
|
+#### Other critical improvements
|
|
|
+
|
|
|
+* When nodes were deleted, Menu UI module deleted their menu items. However,
|
|
|
+ menu items may exist even whenm Menu UI module is not enabled and can also be
|
|
|
+ attached to entities other than nodes. Therefore, menu item cleanup on entity
|
|
|
+ deletetion [is now performed by the Custom Menu Links
|
|
|
+ module](https://www.drupal.org/node/2350797) instead, covering the previously
|
|
|
+ missing cases. A related issue that [broke module uninstallation for some
|
|
|
+ modules providing menu items for certain entity
|
|
|
+ forms](https://www.drupal.org/node/2907654) has also been resolved.
|
|
|
+* A race condition occured in the Batch API when using fastcgi. The Batch API
|
|
|
+ now ensures that [the current batch state is written completely to the
|
|
|
+ database before starting the next
|
|
|
+ batch](https://www.drupal.org/node/2851111).
|
|
|
+* When uninstalling modules, empty fields were left behind to be purged.
|
|
|
+ However, without the field definitions from the module, it was not possible
|
|
|
+ to purge them any more. [Empty field deletion is now performed
|
|
|
+ immediately](https://www.drupal.org/node/2884202) instead to avoid this
|
|
|
+ scenario.
|
|
|
+* When clearing caches in a translated interface, the field labels would
|
|
|
+ [return to the default language](https://www.drupal.org/node/2650434).
|
|
|
+
|
|
|
+### New stable modules
|
|
|
+
|
|
|
+The following modules, previously considered experimental, are now stable and
|
|
|
+safe for use on production sites, with full backwards compatibility and upgrade
|
|
|
+paths from 8.4.0 to future releases:
|
|
|
+
|
|
|
+#### Datetime Range
|
|
|
+
|
|
|
+The [Datetime Range module](https://www.drupal.org/node/2893128) provides a
|
|
|
+field type that allows end dates to support contributed modules like
|
|
|
+[Calendar](https://www.drupal.org/project/calendar). This stable release is
|
|
|
+backwards-compatible with the 8.3.x experimental version and shares a
|
|
|
+consistent API with other Datetime fields.
|
|
|
+
|
|
|
+Future releases may improve Views support, usability, Datetime Range field
|
|
|
+validation, and REST support. For bugs or feature requests for this module,
|
|
|
+[see the core Datetime issue
|
|
|
+queue](https://www.drupal.org/project/issues/search/drupal?project_issue_followers=&status%5B%5D=Open&version%5B%5D=8.x&component%5B%5D=datetime.module&issue_tags_op=%3D).
|
|
|
+
|
|
|
+#### Layout Discovery
|
|
|
+
|
|
|
+The [Layout Discovery module](https://www.drupal.org/node/2834025) provides
|
|
|
+an API for modules or themes to register layouts as well as five common
|
|
|
+layouts. Providing this API in core enables core and contributed layout
|
|
|
+solutions to be compatible with each other. This stable release is
|
|
|
+backwards-compatible with the 8.3.x experimental version and introduces
|
|
|
+[support for per-region attributes](https://www.drupal.org/node/2885877).
|
|
|
+
|
|
|
+#### Media
|
|
|
+
|
|
|
+The new core [Media module](https://www.drupal.org/node/2831274) provides an
|
|
|
+API for reusable media entities and references. It is based on the contributed
|
|
|
+[Media Entity module](https://www.drupal.org/project/media_entity).
|
|
|
+
|
|
|
+Since there is a rich ecosystem of Drupal contributed modules built on Media
|
|
|
+Entity, the top priority for this release is to [provide a stable core API and
|
|
|
+data model](https://www.drupal.org/node/2895059) for a smoother transition for
|
|
|
+these modules. Developers and expert site builders can now add Media as a
|
|
|
+dependency. Work is underway to [provide an update path for existing sites'
|
|
|
+Media Entity data](https://www.drupal.org/node/2880334) and to [port existing
|
|
|
+contributed modules to the improved core
|
|
|
+API](https://www.drupal.org/node/2860796). Both versions cannot be used at the
|
|
|
+same time, so we also [prevent the 1.x version of the contributed Media Entity
|
|
|
+module from being enabled at the same time as the core Media
|
|
|
+module](https://www.drupal.org/node/2896427).
|
|
|
+
|
|
|
+Note that **the core Media module is currently marked hidden** and will not
|
|
|
+appear on the 'Extend' (module administration) page. (Enabling a contributed
|
|
|
+module that depends on the core Media module will also enable Media
|
|
|
+automatically.) The module will be displayed to site builders normally once
|
|
|
+user experience issues with it are resolved. Similarly, the REST API and
|
|
|
+normalizations for Media is not final and support for decoupled applications
|
|
|
+will also be improved in a future release.
|
|
|
+
|
|
|
+#### Inline Form Errors
|
|
|
+
|
|
|
+The [Inline Form Errors module](https://www.drupal.org/node/2897652) provides a
|
|
|
+summary of any validation errors at the top of a form and places the individual
|
|
|
+error messages next to the form elements themselves. This helps users
|
|
|
+understand which entries need to be fixed, and how. Inline Form Errors was
|
|
|
+provided as an experimental module from Drupal 8.0.0 on, but it is now stable
|
|
|
+and polished enough for production use. See the core [Inline Form Errors module
|
|
|
+issue queue](https://www.drupal.org/project/issues/drupal?text=&status=Open&priorities=All&categories=All&version=All&component=inline_form_errors.module)
|
|
|
+for outstanding issues.
|
|
|
+
|
|
|
+#### Workflows
|
|
|
+
|
|
|
+The Workflows module provides an abstract system of states (like Draft,
|
|
|
+Archived, and Published) and transitions between them. Workflows can be used by
|
|
|
+modules that implement non-publishing workflows (such as for users or products)
|
|
|
+as well as content publishing workflows.
|
|
|
+
|
|
|
+Drupal 8.4 introduces a final significant backwards compatibility and data
|
|
|
+model break for this module, [moving responsibility for workflow states and
|
|
|
+transitions from the Workflow entity to the Workflow type
|
|
|
+plugin](https://www.drupal.org/node/2849827). Read [Workflow type plugins are
|
|
|
+now responsible for state and transition
|
|
|
+schema](https://www.drupal.org/node/2897706) for full details on the API and
|
|
|
+data model changes related to this fix. Now that this change is complete, [the
|
|
|
+Workflows module became stable](https://www.drupal.org/node/2897130)!
|
|
|
+
|
|
|
+While the module can be installed as-is, it is not useful in itself without
|
|
|
+either Content Moderation and/or some other module that requires it.
|
|
|
+
|
|
|
+### Content authoring and site administration improvements
|
|
|
+
|
|
|
+* The "Save and keep (un)published" dropbutton has been replaced with [a
|
|
|
+ "Published" checkbox and single "Save"
|
|
|
+ button](https://www.drupal.org/node/2068063). The "Save and..." dropbutton
|
|
|
+ was a new design in Drupal 8, but users found it confusing, so we have
|
|
|
+ restored a design that is more similar to the user interface for Drupal 7 and
|
|
|
+ earlier.
|
|
|
+* Previously, deleting a field on a content type would also delete any views
|
|
|
+ depending on the field. While the confirmation form did indicate that the
|
|
|
+ view would be deleted, users did not expect the behavior and often missed the
|
|
|
+ message, leading to data loss. [Now, the view is disabled
|
|
|
+ instead](https://www.drupal.org/node/2468045). In the future, we intend to
|
|
|
+ [notify users that configuration has been
|
|
|
+ disabled](https://www.drupal.org/node/2832558) (as in this fix) as well as
|
|
|
+ [give users clearer warnings for other highly destructive
|
|
|
+ operations](https://www.drupal.org/node/2773205).
|
|
|
+* The [Drupal toolbar no longer flickers](https://www.drupal.org/node/2542050)
|
|
|
+ during page rendering, thus improving perceived front-end performance.
|
|
|
+* Options in [timezones selector are now grouped by
|
|
|
+ regions](https://www.drupal.org/node/2847651) and labeled by cities instead
|
|
|
+ of timezone names, making it much easier for users to find and select the
|
|
|
+ specific timezone they need.
|
|
|
+* Both the ["Comments" administration page at
|
|
|
+ `/admin/content/comment`](https://www.drupal.org/node/1986606) and the
|
|
|
+ ["Recent log messages" report provided by
|
|
|
+ dblog](https://www.drupal.org/node/2015149) are now configurable views. The
|
|
|
+ "Comments" administration page also [has some default filters
|
|
|
+ added](https://www.drupal.org/node/2898344).
|
|
|
+* Useful meta information about a node's status is typically displayed at the
|
|
|
+ top of the node sidebar. Previously, this meta information was provided by
|
|
|
+ the Seven theme, so it was not available in other administrative themes.
|
|
|
+ [This meta information is now provided by node.module
|
|
|
+ itself](https://www.drupal.org/node/2803875) so other administration themes
|
|
|
+ can access it.
|
|
|
+* [Views now supports rendering computed
|
|
|
+ fields](https://www.drupal.org/node/2852067).
|
|
|
+
|
|
|
+### REST and API-first improvements
|
|
|
+
|
|
|
+* Authenticated REST API performance increased by 15% by [utilizing the Dynamic
|
|
|
+ Page Cache](https://www.drupal.org/node/2827797).
|
|
|
+* POSTing entities [can now happen at `/node`, `/taxonomy/term` and so
|
|
|
+ on](https://www.drupal.org/node/2293697), instead of `/entity/node`,
|
|
|
+ `/entity/taxonomy_term`. Instead of confusingly different URLs, they therefore
|
|
|
+ now use the URLs you'd expect. Backwards compatibility is maintained.
|
|
|
+* There is now a dedicated resource for [resetting a user's
|
|
|
+ password](https://www.drupal.org/node/2847708).
|
|
|
+* Time fields now are [normalized to RFC3339 timestamps by
|
|
|
+ default](https://www.drupal.org/node/2768651), fixing time ambiguity.
|
|
|
+ Existing sites continue to receive UNIX timestamps, but can opt in. [See the
|
|
|
+ change record for more information about backwards compatibility and on how
|
|
|
+ to opt in](https://www.drupal.org/node/2859657).
|
|
|
+* [Path alias fields are now normalized as
|
|
|
+ well](https://www.drupal.org/node/2846554). [See the change record for
|
|
|
+ information about how this impacts API-first modules and other features
|
|
|
+ relying on serialized entities](https://www.drupal.org/node/2856220).
|
|
|
+* When denormalization fails, a [422 response is now
|
|
|
+ returned](https://www.drupal.org/node/2827084) instead of a 400, per the HTTP
|
|
|
+ specification.
|
|
|
+* With CORS enabled to allow origins besides the site's own host, [submitting
|
|
|
+ forms was broken](https://www.drupal.org/node/2853201) unless the site's own
|
|
|
+ host was also explicitly allowed. This is now resolved.
|
|
|
+* Fatal errors and exceptions [now show a
|
|
|
+ backtrace](https://www.drupal.org/node/2853300) for all non-HTML requests as
|
|
|
+ well as HTML requests, which makes for easier debugging and better bug
|
|
|
+ reports.
|
|
|
+* Massive expansion of test coverage.
|
|
|
+
|
|
|
+### Performance and scalability improvements
|
|
|
+
|
|
|
+* Drupal 8 caches at various different levels for more effective caching.
|
|
|
+ However, this resulted in exessively growing cache tables with tens or
|
|
|
+ hundreds of thousands of entries, and gigabytes in size. [A new limit of 5000
|
|
|
+ rows per cache bin was introduced to limit this
|
|
|
+ growth](https://www.drupal.org/node/2526150).
|
|
|
+* The internal page cache now [has a dedicated cache
|
|
|
+ bin](https://www.drupal.org/node/2889603) distinct from the rest of the
|
|
|
+ render cache for improved scalability.
|
|
|
+* The service collector pattern instantiates all services it collects, which is
|
|
|
+ expensive, and unnecessary for some use cases. For those use cases, a [new
|
|
|
+ service ID collector](https://www.drupal.org/node/2472337) pattern has been
|
|
|
+ added and the theme negotiator updated to use it. [See the change record for
|
|
|
+ information about how to use the service ID
|
|
|
+ collector](https://www.drupal.org/node/2598944) for improved performance.
|
|
|
+* The maximum time in-progress forms are cached [is now
|
|
|
+ customizable](https://www.drupal.org/node/1286154) rather than being limited
|
|
|
+ to a default cache lifetime of 6 hours. Sites can decrease the lifetime to
|
|
|
+ reduce cache footprint, or increase it if needed for a particular site's
|
|
|
+ usecase. [See the change record to learn how to access this new
|
|
|
+ setting](https://www.drupal.org/node/2886836).
|
|
|
+* If there are no status messages, the corresponding rendering [is now
|
|
|
+ skipped](https://www.drupal.org/node/2853509). On simple sites that use the
|
|
|
+ Dynamic Page Cache (the default), this can result in a 10% improvement when
|
|
|
+ there are no messages!
|
|
|
+* [Optimized the early Drupal installer](https://www.drupal.org/node/2872611)
|
|
|
+ to check whether any themes are installed first before invoking an
|
|
|
+ unnecessary function, which improves Drupal install time measurably for both
|
|
|
+ sites and automated tests.
|
|
|
+
|
|
|
+### Developer experience improvements
|
|
|
+
|
|
|
+* [Adopted Airbnb JavaScript style guide
|
|
|
+ 14.1](https://www.drupal.org/node/2815077) as the new baseline set of coding
|
|
|
+ standards for Drupal core and contributed modules. [See the change record for
|
|
|
+ information about how to configure your project for
|
|
|
+ eslint](https://www.drupal.org/node/2873849).
|
|
|
+* Field type definitions can now [enforce the cardinality of the
|
|
|
+ field](https://www.drupal.org/node/2403703). [See the change record for
|
|
|
+ information about how to specify a cardinality via the
|
|
|
+ annotation](https://www.drupal.org/node/2869873).
|
|
|
+* [Added new methods](https://www.drupal.org/node/2869809) to make getting
|
|
|
+ typed configuration entity representations easier. [See the change record for
|
|
|
+ more information about how to invoke these
|
|
|
+ methods](https://www.drupal.org/node/2877282).
|
|
|
+* The `html_tag` render element now [supports nested render
|
|
|
+ arrays](https://www.drupal.org/node/2694535), enabling the creation of
|
|
|
+ dynamic SVGs. [See the change record for information about how you can use
|
|
|
+ this in your theme](https://www.drupal.org/node/2887146).
|
|
|
+* [Added more helpful errors](https://www.drupal.org/node/2705037) when CSS
|
|
|
+ is not properly nested under an existing category in asset libraries.
|
|
|
+* Also see the [change records for the 8.4.x
|
|
|
+ branch](https://www.drupal.org/list-changes/drupal/published?keywords_description=&to_branch=8.4.x&version=&created_op=%3E%3D&created%5Bvalue%5D=&created%5Bmin%5D=&created%5Bmax%5D=)
|
|
|
+ for other changes for developers.
|
|
|
+
|
|
|
+### Automated testing improvements
|
|
|
+
|
|
|
+* [PHPUnit has been updated from 4.8.28 to
|
|
|
+ 4.8.35](https://www.drupal.org/node/2850797) in order to incorporate a
|
|
|
+ forward-compatibility layer for PHPUnit 4.8, which will be useful during a
|
|
|
+ future migration to PHPUnit 5 or PHPUnit 6.
|
|
|
+* Many former WebTestBase tests were converted to BrowserTestBase. [Track
|
|
|
+ current progress](http://simpletest-countdown.org/).
|
|
|
+* The default approach for testing deprecated code has changed to [require use
|
|
|
+ of the Drupal core deprecation policy](https://www.drupal.org/node/2488860)
|
|
|
+ (`@trigger_error()`) to mark code deprecated; otherwise a test error will
|
|
|
+ be thrown. [See the change record for information about how to update
|
|
|
+ `phpunit.xml` and how to test deprecated
|
|
|
+ code](https://www.drupal.org/node/2811561).
|
|
|
+* BrowserTestBase is [no longer dependent on traits from
|
|
|
+ Simpletest](https://www.drupal.org/node/2803621). Backwards
|
|
|
+ compatibility is preserved.
|
|
|
+* [Resolved random test failures](https://www.drupal.org/node/2866056) due to
|
|
|
+ ResourceTestBase's HTTP client timeout of 30 seconds.
|
|
|
+
|
|
|
+### Third-party library updates
|
|
|
+
|
|
|
+* [Drupal's Symfony dependency has been updated from Symfony 2.8 to Symfony
|
|
|
+ 3.2](https://www.drupal.org/node/2712647). This major version update is
|
|
|
+ necessary because Symfony 2.8 support will end around the release of Drupal
|
|
|
+ 8.6.0 next year. See the change record for information about [Symfony 3
|
|
|
+ backwards compatibility breaks that affected Drupal
|
|
|
+ core](https://www.drupal.org/node/2743809). [Drupal 8 also requires Symfony
|
|
|
+ 3.2.8](https://www.drupal.org/node/2871253) because of a bug in Symfony
|
|
|
+ 3.2.7.
|
|
|
+* [#2533498: Update jQuery to version 3](https://www.drupal.org/node/2533498).
|
|
|
+ Now that jQuery 3.0 has been released, jQuery 2.x will only be receiving
|
|
|
+ security updates, so Drupal 8.4.0 ships with this library update. jQuery 3
|
|
|
+ features numerous improvements, including better error reporting. See the
|
|
|
+ [jQuery Core 3.0 Upgrade Guide](https://jquery.com/upgrade-guide/3.0/) for
|
|
|
+ information on jQuery 3 backwards compatibility breaks that might affect the
|
|
|
+ JavaScript code in your modules, themes, and sites.
|
|
|
+* The zurb/joyride library (used by the Tour module) has been [updated to a
|
|
|
+ development version higher than 2.1.0.1](https://www.drupal.org/node/2898808)
|
|
|
+ to resolve an upstream incompatibility with jQuery 3. We will update to
|
|
|
+ Joyride 2.1.1 once it is available with the needed fix.
|
|
|
+* [zendframework/zend-diactoros has been updated from 1.3.10 to 1.4.1](https://www.drupal.org/node/2874817).
|
|
|
+* [jQuery UI has been updated from 1.11.4 to 1.12.1](https://www.drupal.org/node/2809427).
|
|
|
+* [jQuery Once has been updated from 2.1.1 to 2.2.0](https://www.drupal.org/node/2899156).
|
|
|
+* [CKEditor has been updated from 4.6.2 to 4.7.2](https://www.drupal.org/node/2904142).
|
|
|
+* [asm89/stack-cors has been updated from 1.0 to 1.1](https://www.drupal.org/node/2853201).
|
|
|
+* [The minimum phpsec/prophecy requirement is now 1.4](https://www.drupal.org/node/2900800).
|
|
|
+* [composer/installers has been updated from 1.2.0 to 1.4.0](https://www.drupal.org/node/2900112).
|
|
|
+* [wikimedia/composer-merge-plugin has been updated from 1.4.0 to 1.4.1](https://www.drupal.org/node/2900112).
|
|
|
+* [guzzlehttp/guzzle has been updated from 6.2.3 to 6.3.0](https://www.drupal.org/node/2900112).
|
|
|
+* [mikey179/vfsstream has been updated from 1.6.4 to 1.6.5](https://www.drupal.org/node/2900112).
|
|
|
+* [phpunit/phpunit has been updated from 4.8.35 to 4.8.36](https://www.drupal.org/node/2900112).
|
|
|
+* [masterminds/html5 has been updated from 2.2.2 to 2.3.0](https://www.drupal.org/node/2909743).
|
|
|
+* [symfony-cmf/routing has been udpated from 1.4.0 to 1.4.1](https://www.drupal.org/node/2909743).
|
|
|
+
|
|
|
+### Experimental modules
|
|
|
+
|
|
|
+#### Migrate ([beta stability](https://www.drupal.org/core/experimental#beta))
|
|
|
+
|
|
|
+Migrate provides a general API for migrations. It will be considered completely
|
|
|
+stable once all issues tagged [Migrate
|
|
|
+critical](https://www.drupal.org/project/issues/search/drupal?project_issue_followers=&status%5B%5D=Open&version%5B%5D=8.x&issue_tags_op=%3D&issue_tags=Migrate+critical)
|
|
|
+are resolved.
|
|
|
+
|
|
|
+* This release includes numerous developer experience improvements for Migrate
|
|
|
+ and Migrate Drupal, including [deprecating outdated references to
|
|
|
+ "CCK"](https://www.drupal.org/node/2751897), [simplifying field type
|
|
|
+ mapping](https://www.drupal.org/node/2896507), renaming several plugins to
|
|
|
+ better capture their and many other API and documentation improvements.
|
|
|
+ (Backwards compatibility is provided in each case Migrate is in beta.)
|
|
|
+* Added the ability to [provide the source
|
|
|
+ module](https://www.drupal.org/node/2569805) to migrations to help site
|
|
|
+ owners review what data is being migrating, especially for cases where the
|
|
|
+ source and destination module are not the same (for example if a new Drupal 8
|
|
|
+ module replaces old functionality.
|
|
|
+
|
|
|
+
|
|
|
+#### Migrate Drupal and Migrate Drupal UI ([alpha stability](https://www.drupal.org/core/experimental#alpha))
|
|
|
+
|
|
|
+Migrate Drupal module provides API support for Drupal-to-Drupal migrations, and
|
|
|
+Migrate Drupal UI offers a simple user interface to run migrations from older
|
|
|
+Drupal versions.
|
|
|
+
|
|
|
+* This release adds [date](https://www.drupal.org/node/2566779) and
|
|
|
+ [node reference](https://www.drupal.org/node/2814949) support for Drupal 6 to
|
|
|
+ 8 migrations.
|
|
|
+* Core provides migrations for most Drupal 6 data and can be used for migrating
|
|
|
+ Drupal 6 sites to Drupal 8, and the Drupal 6 to 8 migration path is nearing
|
|
|
+ beta stability. Some gaps remain, such as for some internationalization data.
|
|
|
+ ([Outstanding issues for the Drupal 6 to Drupal 8
|
|
|
+ migration](https://www.drupal.org/project/issues/search/drupal?project_issue_followers=&status%5B%5D=1&status%5B%5D=13&status%5B%5D=8&status%5B%5D=14&status%5B%5D=15&status%5B%5D=4&issue_tags_op=%3D&issue_tags=migrate-d6-d8).)
|
|
|
+* 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. Most high-priority
|
|
|
+ migrations are available. ([Outstanding issues for the Drupal 7 to Drupal 8
|
|
|
+ migration](https://www.drupal.org/node/2456259).)
|
|
|
+* Drush support for Migrate is currently only available in the
|
|
|
+ [Drupal Upgrade](https://www.drupal.org/project/migrate_upgrade) contributed
|
|
|
+ module. (See the [pull request to add support to
|
|
|
+ Drush](https://github.com/drush-ops/drush/issues/2140).)
|
|
|
+* Conflicting text field processing settings [are now identified and
|
|
|
+ logged](https://www.drupal.org/node/2842222) to avoid security or data
|
|
|
+ integrity issues with the migration of plain and formatted text fields.
|
|
|
+* Automatic redirects are now [added for translation node paths that are no
|
|
|
+ longer valid](https://www.drupal.org/node/2850085) after migration has merged
|
|
|
+ translations into a single node.
|
|
|
+* A data integrity bug that resulted in [duplicate comment types and incorrect
|
|
|
+ comment_entity_statistics](https://www.drupal.org/node/2853872) for node and
|
|
|
+ forum comment migrations has been resolved.
|
|
|
+* A bug that [stopped public files from being migrated from D6 to D8 if the
|
|
|
+ user first selected Drupal 7 in the UI](https://www.drupal.org/node/2907233)
|
|
|
+ has also been resolved.
|
|
|
+
|
|
|
+#### Content Moderation ([beta stability](https://www.drupal.org/core/experimental#beta))
|
|
|
+
|
|
|
+Content Moderation allows workflows from the Workflows module to be applied to
|
|
|
+content. Content Moderation has beta stability in 8.4.0-alpha1. Notable improvements in this release:
|
|
|
+
|
|
|
+* Workflow states are now [selected from a select list, rather than under a drop-button](https://www.drupal.org/node/2753717), which represents a significant
|
|
|
+ usability improvement.
|
|
|
+* Now that workflows can be applied to any revisionable entity type, Content
|
|
|
+ Moderation [adds entity type checkboxes to the workflow form](https://www.drupal.org/node/2843083).
|
|
|
+ This allows site administrators to configure which entity types should have
|
|
|
+ the workflow at the same time as they configure the workflow itself, for a
|
|
|
+ more intuitive user experience.
|
|
|
+* Content Moderation now [prevents the deletion of workflows that are currently in use](https://www.drupal.org/node/2830740)
|
|
|
+ to prevent fatal errors and data integrity problems.
|
|
|
+* The confusing terminology of
|
|
|
+ ["forward revisions" has been replaced with that of "pending revisions"](https://www.drupal.org/node/2890364).
|
|
|
+ If your contributed module refers to revisions that are not yet published, it
|
|
|
+ should use this new term.
|
|
|
+* [The 'Latest revision' views filter has been rewritten to avoid relying on a
|
|
|
+ custom {revision_tracker}](https://www.drupal.org/node/2865579), and that
|
|
|
+ table has been removed from the database schema.
|
|
|
+
|
|
|
+As per the experimental module process, there were some backwards-incompatible
|
|
|
+changes since Drupal 8.3.x. Experimental modules do not offer a supported
|
|
|
+upgrade path, but [an unofficial upgrade path is
|
|
|
+available](https://www.drupal.org/node/2896630).
|
|
|
+
|
|
|
+#### Field Layout ([alpha stability](https://www.drupal.org/core/experimental#alpha))
|
|
|
+
|
|
|
+This module provides the ability for site builders to rearrange fields on
|
|
|
+content types, block types, etc. into new regions, for both the form and
|
|
|
+display, on the same forms provided by the normal field user interface. Field
|
|
|
+Layout has had several bugfixes since 8.3.0, but no significant changes. See
|
|
|
+the [entity display layout roadmap](https://www.drupal.org/node/2795833) for
|
|
|
+the next steps for this module, which needs to become stable by 8.5.0 to remain
|
|
|
+in Drupal core.
|
|
|
+
|
|
|
+#### Settings Tray ([beta stability](https://www.drupal.org/core/experimental#beta))
|
|
|
+
|
|
|
+The Settings Tray module allows configuring page elements such as blocks and
|
|
|
+menus from the frontend of your site. Settings Tray has improved significantly
|
|
|
+since Drupal 8.3.0, including numerous user interaction and accessibility
|
|
|
+fixes, better compatibility with stable core modules like Quick Edit and
|
|
|
+Contextual Links, added documentation, and [a CSS
|
|
|
+reset](https://www.drupal.org/node/2826722) for better themer experience.
|
|
|
+
|
|
|
+The module reached beta stability following completion of [moving the
|
|
|
+off-canvas dialog renderer into a core
|
|
|
+component](https://www.drupal.org/node/2784443), and [renaming the machine name
|
|
|
+of the module to settings_tray](https://www.drupal.org/node/2803375), to match
|
|
|
+its user-facing name. We hope to make Settings Tray stable by 8.5.0. To track
|
|
|
+progress, see the ["outside in" roadmap issue](https://www.drupal.org/node/2762505).
|
|
|
+
|
|
|
+#### Place Blocks ([alpha stability](https://www.drupal.org/core/experimental#alpha))
|
|
|
+
|
|
|
+This feature allows the user to place a block on any page and see the region
|
|
|
+where it will be displayed, without having to navigate to a backend
|
|
|
+administration form. [8.4.0-alpha1 was the deadline for Place Blocks to
|
|
|
+stabilize](https://www.drupal.org/core/experimental#versions), but the module's
|
|
|
+roadmap was not completed. Furthermore, the module is not intended as a
|
|
|
+standalone feature and should instead be a built-in part of the Block system.
|
|
|
+For these reasons, [Place Blocks module has been marked hidden in this
|
|
|
+release](https://www.drupal.org/node/2898267) (it can still be enabled with
|
|
|
+Drush). The Place Blocks module itself will be turned into an empty module in
|
|
|
+Drupal 8.5.x, since ideally the core Block system will offer the same
|
|
|
+functionality in 8.5.0 (though this depends on completion of a [core patch for
|
|
|
+the feature](https://www.drupal.org/node/2739075).)
|
|
|
|
|
|
Drupal 8.3.0, 2017-04-05
|
|
|
------------------------
|