Install
To start a new Drupal project with version 9.5.4:To update your site and all dependencies to the latest version of Drupal:
To update your site to this specific release:
Pinning to a specific release may make it more challenging to update your site in future, see composer documentation for managing pinned versions
Using Composer to manage Drupal site dependencies
Downloads
Download tar.gz
21.52 MB
MD5: aa696680d9c63dd0b42445d49152bb7f
SHA-1: bcf28cab7536fd212d9ed868f5f18b6104e552de
SHA-256: 0414c245f726defcdf2407e649b59f4a1bddfd7dbe6514c135ebf585b35f2290
Download zip
34.13 MB
MD5: c0b8a6fc555320e1750083ecac09bdba
SHA-1: c112ae2955c9023e93e6b967d020cffa96cfce03
SHA-256: 56488ee99215abdade01fb02f496b0aa5fba09d19967c75292654bab6b053782
Release notes
This is a patch (bugfix) release of Drupal 9 and is ready for use on production sites. Learn more about Drupal 9. Drupal 10.0.4 is also available.
Drupal 9.5.x will receive security coverage until November 2023.
If you are upgrading from Drupal 8, read upgrading a Drupal 8 site to Drupal 9, 9.0.0 release notes, and the 9.5.0 release notes before upgrading to this release.
All changes since 9.5.3
- Issue #3185183 by philipnorton42, larowlan, bruno.bicudo, longwave, xjm, quietone: Refactor ContextualUnitTest to use a data provider
- Issue #2865401 by Berdir, yassin.barrani, ankithashetty, dxvargas, Hardik_Patel_12, ayushmishra206: Views pager is using exposed_raw_input instead of exposed_input
- Issue #3276939 by daffie, aziza_a, larowlan: The Symfony method Request::setTrustedHosts() is a static method, we use it as non-static
- Issue #2106939 by smustgrave, dawehner, catch, jungle, longwave, xjm: Improve test coverage of the flood memory backend test and convert it to a unit test
- Revert "Issue #2106939 by smustgrave, dawehner, jungle: Improve test coverage of the flood memory backend test and convert it to a unit test"
- Issue #2910181 by sarvjeetsingh, anmolgoyal74, apaderno, pameeela, jcalais: Update hook_node_grants docs to remove role ID reference, since it is no longer an integer
- Issue #3273876 by mfb, smustgrave: Aggregator page contents could be empty due to missing cache context
- Issue #3324726 by Akhil Babu, xjm, Gauravvv, joachim: #ajax 'options' property is undocumented
- Issue #2106939 by smustgrave, dawehner, jungle: Improve test coverage of the flood memory backend test and convert it to a unit test
- Issue #3343495 by alexpott: Fix commit-code-check.sh on DrupalCI
- Issue #3317744 by idebr, smustgrave: Bundle restrictions from a route do not apply to revisionable entities
- Issue #3216430 by Charlie ChX Negyesi: Improve documentation on $is_syncing
- Issue #2890726 by pooja saraah, poornachandran, quietone, alexpott, DanielVeza, borisson_, rdworianyn, smustgrave: Custom role with all numeric name results in fatal error after assigning to user
- Issue #3256002 by Gauravvv, ameymudras, vulcanr, DeepaliJ, Satyajit1990, Kristen Pol, bnjmnm, xjm, smustgrave, lauriii: Umami demo: Tour popup close button hover effect movement
- Issue #3181634 by Wongjn: States API: Empty/Filled state with number does not update when using spinner
- Issue #2738547 by smustgrave, mehul.gada, lauriii, sahil.goyal, larowlan, BarisW, xjm: Contextual Links do not respect parameters in the destination
- Issue #3270378 by andregp, murilohp, Rinku Jacob 13, AaronMcHale, dww, alexpott, smustgrave: Promote non-stable modules to the top of the list at admin/modules/uninstall form
- Issue #3179850 by claudiu.cristea: EntityTestAccessControlHandler allows viewing an unpublished entity
- Issue #1956466 by smustgrave, Chi, sahil.goyal, dawehner, Lendude: TimeInterval plugin should not handle empty values
- Issue #3039499 by alexpott, acbramley: Role permissions not sorted in config export
- Issue #3226117 by MegaChriz, marthinal, longwave, rschwab, sinn, dcam, cilefen, ankithashetty, itaran, larowlan, catch: [Needs backport] Uncaught RfcComplianceException when email From name contains a comma
- Issue #3328694 by murilohp, rpayanm, jonathan1055, xjm, cilefen: Incorrect sprintf parameter usage
- Issue #2498791 by awset, ameymudras, balis_m, PQ, Kristen Pol, dww, morbiD, alexpott, smustgrave: #states defaultTrigger oldValue is out of date if values are updated via a state trigger
- Issue #3283930 by chaubeyji: Fix comment with a plural possessive typo in PluginBase.php
- Issue #3312883 by smavri, rpayanm, smustgrave: Update variable type PHPDoc in _responsive_image_build_source_attributes function
- Issue #3300957 by smustgrave, catch, jungle, joachim: Potentially speed up LinkFieldTest
- Issue #3077646 by danflanagan8, kkalashnikov, kaszarobert, priyanka.sahni, Sam152: Increase the delta of the "weight" field to support reordering more than 20 blocks in a section
- Issue #3283351 by Sweetchuck: PHP 8.1 Return type of DeprecatedArray::unserialize() and ::serialize()
- Issue #3209468 by joaopauloc.dev, pooja saraah, joachim: DrupalKernelInterface methods & DrupalKernel::sitePath should document the format of a site path
- Issue #3209468 by joaopauloc.dev, pooja saraah, joachim: DrupalKernelInterface methods & DrupalKernel::sitePath should document the format of a site path
- Issue #2985165 by Liam Morland, ayushmishra206, nbaosullivan, AkashKumar07, valthebald, mathieso, Sutharsan: Improve documentation for BookManagerInterface::saveBookLink()
- Issue #3281193 by neclimdul: Improve GenerateThemeTest
- Issue #3103240 by oknate, smustgrave, quietone, jungle: MultiFormTest not executing
- Issue #3255895 by jrb, murilohp, harshitthakore, lauriii, xjm: HTML entities in Tour tip labels get double-escaped
- Issue #3261347 by noorulshameera, pflora, Johnny Santos, neclimdul, alexpott: Incorrect EntityType::$label_count type documentation
- Issue #3326493 by Patrick R., webflo: Fix inaccurate return types in user module
- Issue #3154084 by amateescu, mheip, smustgrave: Warning when building an empty workspace tree
- Issue #3339251 by MegaKeegMan, mlncn, wolcen: Fix descriptive text in Depth view filter
- Issue #3332630 by mxr576, smustgrave: Correct return typehint on BlockPluginTrait::blockAccess()
- Issue #3333664 by joelpittet, lauriii: Claro: Undefined array key "expose_button"
- Issue #3231184 by mglaman, smustgrave, longwave: ResourceTestBase::setUpAuthorization references wrong permission grant methods
- Issue #3228531 by joachim: document run-tests.sh as not intended for public consumption
- Issue #3324574 by Prem Suthar, andypost, seanhellwig, _pratik_, trickfun, longwave: Deprecated function: strpos() in layout_builder_entity_view_alter
- Issue #3335343 by Chris64: Error Phpunit test 9.5.x: PHP 8.1 & pgsql-14.1 : Passing an escaped locator to the named selector is deprecated as of 1.7
- Issue #3132334 by mstrelan, quietone: Add documentation for path_processing option to URLGeneratorInterface
- Issue #3181439 by tstoeckler, Gauravvv, Tomefa, Sam152, smustgrave, larowlan: Content Moderation fatals when a moderated entity is re-saved on hook_insert()
- Issue #3339400 by gxleano, royalpinto007, VladimirAus, fjgarlin, longwave: Incorrect use of FormattableMarkup in logger messages
- Issue #3247553 by alexpott, realityloop: $install_state['settings_verified'] incorrectly set when config_sync_directory is missing
- Issue #3328711 by mtift: Remove mtift from MAINTAINERS.txt
- Issue #3219967 by gxleano, bernardm28, benjifisher, joachim: Allow authors and editors to edit page layouts in Umami
- Issue #3339854 by alexpott, larowlan: Add conflict on PHPUnit ^9.6 to Drupal 9
- Issue #3099085 by krystalcode: EntityDefinitionUpdateManagerInterface docblock improvement
- Issue #2822575 by martin107, lucassc, pooja saraah, Shubham Chandra, rodrigoaguilera, smustgrave, larowlan: LibraryDiscoveryParser::buildByExtension() is missing @throws tags
- Issue #3152943 by bbombachini, rocketeerbkw, huzooka, chandrashekhar_srijan, ayushmishra206, nikitagupta, abhisekmazumdar, Wim Leers, mikelutz, larowlan: Remove migration of shortcuts from menu_link migration