Install
To start a new Drupal project with version 8.8.2: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 patch release of Drupal 8 and is ready for use on production sites. Learn more about Drupal 8.
Important update information
If you are upgrading to this release from 8.7.x or earlier, read the Drupal 8.8.0 release notes before upgrading to this release.
-
ConfigEntityUpdater now enforces that it is only used for one update function at a time via an exception, whereas this behaviour was previously silently broken. Read the change record on ConfigEntityUpdater for more information.
-
This is the first release of Drupal 8 core to use a new packaging pipeline that automates the Composer build process (
composer create-project) to create release packages.The packaged tar and zip files that were available from 2020-02-01 20:20 UTC until 2020-02-02 00:15 UTC were erroneously published with Drupal 8.8.1 packaged inside. If you downloaded a tarball during that window, you should re-download it and upgrade again using the new tarball.
Drupal 8.8.x will receive security coverage until December 2rd, 2020.
Important bug fixes
- A workspaces update has been refactored in order to avoid conflicts with contributed module updates: #3099986: Move part of workspaces_post_update_move_association_data() to a hook_update_N
All changes since 8.8.1
- #3059934 by cilefen: Remove cilefen as Drupal 8 core maintainer
- #3108025 by Beakerboy, alexpott, daffie, bohart: Function testNumericExpressionSubstitution uses non-standard SQL
- #3087606 by jhedstrom, kim.pepper, jonathan1055, partdigital, larowlan, acbramley, Berdir, yunke: Datetime::getInfo() caches user's timezone causing unpredictable timestamps
- #3108287 by Beakerboy, daffie: Remove, or mark as core only: testPrimaryKeyUpdate()
- #3108021 by alexpott, lauriii: Set $defaultTheme for install profiles using configuration install
- #3109433 by alexpott, Berdir: Set install profile correctly in the 8.8 database dumps
- #2893804 by Wim Leers, Stefdewa, Berdir, catch: fix deprecation notices in REST bc layers
- #3098521 by Gnanagowthaman sankar, mandclu, penyaskito: drupal_installation_attempted() deprecation referencing wrong change record
- #3015699 by alexpott, longwave, johndevman, Berdir: Properly deprecate MENU_MAX_MENU_NAME_LENGTH_UI
- #3101130 by Krzysztof Domański, DukeandGrace: ConfigEntityQueryTest::testCaseSensitivity can randomly fail
- #2937782 by quietone, jofitz, yo30, heddn, Wim Leers, catch: Create trait for getDefinitionFromEntity
- Revert "Issue #2937782 by quietone, jofitz, yo30, heddn, Wim Leers, catch: Create trait for getDefinitionFromEntity"
- #3103976 by Daniel Korte, Lendude: Fix misspellings in Twig comments
- #3094304 by tedbow, bnjmnm, dww: Create tests that cover contrib non-full releases and contrib patch versions
- #3064523 by andypost, Kartagis, Sutharsan: Add t() context to "Order" string for views module
- #3105288 by Hardik_Patel_12, snehalgaikwad: Expected type hint "WorkflowInterface"; found "WorkflowTypeInterface"
- #3100611 by amateescu, lauriii, dixon_, shaal, vijaycs85, huzooka: Improve the Workspaces toolbar UI for desktop and mobile
- #3100066 by oknate, Wim Leers, alisonjo315: "Convert line breaks into HTML" filter should exclude tag
- #3058853 by hubaishan, jhmnieuwenhuis, x0r1x, daffie, xekon, andypost, qdelance, lamigo, jmonkfish: Drupal 8.x on Postgresql 12
- #3106654 by kiamlaluno: hook_toolbar() documentation still makes reference to toolbar_pre_render()
- #3092408 by ravi.shankar, govind.maloo, Chi, alexpott: Fix broken references in Field UI module
- #3094913 by alexpott, AkashkumarOSL, neel24, Hardik_Patel_12, joelpittet, joachim, Berdir, agrochal: EntityForm's use of magic setter/getter breaks any subclasses that don't declare a property
- #3086850 by MasterBranch, ravi.shankar, joachim, hchonov, kiwimind, mglaman, jhedstrom: "Cannot load a NULL ID" assertion in EntityStorageBase should say the entity type
- #3096566 by huzooka, aleevas, Dinesh18, ravi.shankar, phenaproxima, lauriii: Copy media library styles from Seven to Claro
- #2969262 by bkosborne, FeyP, BlacKICEUA, dawehner, joelpittet: PHP 7.2: Warning: count(): Parameter must be an array or an object that implements Countable n Drupal\views\Plugin\views\argument_validator\Entity->validateEntity()
- #3096831 by hash6, sd9121, lauriii, huzooka: Fix default link button styles
- #3100470 by phenaproxima, oknate, Meenakshi.g, Wim Leers, bnjmnm: EditorMediaDialog triggers an "undefined index" notice for data-view-mode
- #3027998 by robpowell, jofitz, codekarate, heddn: Default Value Migration Process plugin produces unexpected behavior when updating list field from D7 to D8
- #3079330 by Berdir: LocaleConfigSubscriberTest has many assertions that don't run
- #3099364 by wells, Dinesh18, Sam152, Berdir: Content Moderation requirements check relies on Views UI module
- #3073261 by oknate, phenaproxima, Wim Leers: Improve CKEditorTestTrait
- #3101818 by eiriksm, ravi.shankar, longwave: Allow other loggers than core loggers to FieldDiscovery.php
- #3104420 by peterkokot, mondrake: PHP 7.4 Deprecated curly brace syntax for accessing array elements
- #2903831 by quicksketch, acbramley, Lendude, longwave, Mirroar, jibran: Views attachments missing for some display machine names
- #3098707 by blazey: Add purgeDeletedWorkspacesBatch to the WorkspaceManagerInterface
- #2851204 by swarad07, fotuzlab, Sahana _N, prash_98, anoopjohn, ravi.shankar, jungle, rahul.gore, cilefen, xjm, alexpott, jericho711: #size for Select field documentation is wrong
- #3104421 by peterkokot: PHP 7.4 deprecated reverse order of glue and pieces in implode
- #3098244 by longwave, Madhura BK, Krzysztof Domański: Rename SafeMarkupKernelTest to FormattableMarkupKernelTest
- #3102903 by mondrake: MigrateExecutableMemoryExceededTest has mismatched argument type mock expectations (and fails in PHPUnit8)
- #3087486 by AkashkumarOSL, kim.pepper, catch: Update docs in PagerManagerInterface
- #3065166 by mondrake: Modernize Drupal\KernelTests\Core\Database\ConnectionUnitTest
- #3103913 followup by Lendude, mondrake, catch, xjm: hotfix for test failures on PHP 7.0
- #3099971 by huzooka: Hard-coded uri string in WorkflowListBuilder breaks if Drupal is installed in (webroot) subfolder
- #3100141 by shimpy, andrewmacpherson: Update handbook page link on cron settings form
- #3103913 by Lendude, mondrake: ViewExecutableTest::testAddHandler and ::testAddHandlerWithEntityField are misusing the mock expectation
- #3096241 by huzooka, Vinodhini.E: Refactor image and file field widgets to improve contrib compatibility and to make their templates and preprocess functions DRY
- #3100190 by quietone: Change ValidateMigrationStateTestTrait to only test one version
- #2620854 by leolando.tan, idebr, hussainweb, anya_m, jhodgdon, alexpott, Jeff Burnz: links.html.twig docs are out of date
- #2936105 by SerShevchyk, voleger, RoSk0, Charlie ChX Negyesi: Deprecate DRUPAL_PHP_FUNCTION_PATTERN and replace its usages
- #3102899 by mondrake: ViewExecutableTest uses a mocked argument callback wrongly (and fails in PHPUnit8)
- #3101787 by lauriii: Follow-up to #2849628: Copy change to Views UI module
- #3102329 by Deepthi kumari, huzooka: Remove transition from CKEditor border-color
- #3097327 by Wim Leers, quietone, Meenakshi.g: d7_node_title_label migration plugin incorrectly generating base_field_override for every node type, even those that don't have an overridden title label
- #2946889 by Wim Leers, jfussion, quietone, jofitz, heddn: Missing migration filters that are replaced with filter_null may have invalid settings applied
- #3096969 by quietone, gabesullice, Wim Leers, mikelutz: migrate_drupal's Variable source plugin always returns a row for processing, even if none of the variables for a migration are set on the source site
- #3095195 by jofitz, Wim Leers, heddn: Drupal 7 date fields configured to not collect the hour/minute/second granularities can have "00" MM or DD attributes
- #3095146 by Wim Leers, heddn: Drupal 7 date fields configured to not collect the hour/minute/second granularities can have a different "settings" structure than the migration assumes
- #3101556 by lauriii, phenaproxima: Invalid .eslintrc.json file in the scaffold fixtures
- #3100496 by amateescu, Donnyboypony, alexpott, Berdir, daffie, PapaGrande: Workspaces should only alter non-deprecated path_alias services
- #3101720 by larowlan: HEAD broken on - updates required for prophecy 1.10.0
- Merged 8.8.1.
- #2882031 by Lendude, acbramley, RobLoach: Undefined index: identifier in view's DisplayPluginBase->isIdentifierUnique()
- #2930283 by Krzysztof Domański, geek.merlin aka axel.rutz, hiten2112, dagmar, plach, alexpott, dawehner: Error backtrace malformatted
- #3018148 by Lendude, tstoeckler: Views bulk forms perform redirects to the confirmation page even if it is not allowed for the user
- #3096811 by gease, Meenakshi.g, hchonov: Reusing initialized constraint validators overwrittes validation errors
- #3099986 by alexpott, amateescu: Move part of workspaces_post_update_move_association_data() to a hook_update_N
- #3092714 by alexpott, hchonov, Berdir, gease: Config entity updater misbehaves when updating multiple entity types
- #3087061 by quietone, larowlan, Lendude: Move existing assertions of IdConflict page to new test files
- #3043467 by AaronMcHale, mgbauman, bkosborne, lauriii: Multi-select list items "escape" bounding box in Off-Canvas Forms when using WebKit and Mozilla based browsers
- #3098922 by AkashkumarOSL, benjifisher, reinchek, shubham.prakash: Code comment says "reusable" instead of "not reusable"
- #3086238 follow-up by quietone: getHighestId() should not fail when there is a destination id with type string
- #3086238 by quietone, alexpott, heddn, larowlan, benjifisher, dinarcon: getHighestId() should not fail when there is a destination id with type string
- #3096609 by alexpott, Berdir: Allow contrib test modules to not need a core or core_version_requirement key
- #3097765 by Krzysztof Domański, 2pha, Lendude, alexpott: Numerical machine names create problems in view filters
- #3009854 by Berdir, Wim Leers, Mile23, alexpott, andypost, tedbow, damiankloip: Fix "The "serializer.normalizer.file_entity.hal" normalizer service is deprecated: it is obsolete, it only remains available for backwards compatibility." deprecation error
- #3100071 by ravi.shankar, benjifisher, dww: Several code comments refer to \Drupal\Update instead of \Drupal\update
- #3099441 by pjudge, peterwcm, Spokje: Missing hash in attributes key in Seven (another one)
- #3098814 by alexpott, TrevorBradley, xjm, Krzysztof Domański, longwave: Class 'Drupal\Core\Controller\ArgumentResolver\RawParameterValueResolver' not found during update to 8.8.0
- #3093752 by bbrala, Wim Leers: Call to JSON:API test helper method passes an argument that no longer exists
- #2956722 by dww, Prashant.c, vakulrai, imen ch: Exposed sort label is double-escaping special characters (apostrophe)
- #3093089 by jhodgdon, Amber Himes Matz: Minor improvements to block topics
- #3005403 by alexpott, Lennard Westerveld, rensingh99, lauriii, xjm: Cannot delete or edit a block that is placed in a section of the layout_builder
- #3090904 by amateescu, dixon_, breakfull, lauriii, jhuhta, StevenAvelino, shaal, ChrisDarke, realityloop, Michael.J.Gleeson, vints24, martamarczak: Workspace drawer CSS fix for better consistency