Install
To start a new Drupal project with version 10.2.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
18.09 MB
MD5: 6898ed643f406513900ad4e182c1f361
SHA-1: b922bffced2290397b6d46f6cacef573c907052a
SHA-256: 5be16c0aed4698222771bf010f2c43be29498e7fe55516b8778fc92d3d2f3cd3
Download zip
29.92 MB
MD5: c5676b8a29b37dadcb8d91423bca76db
SHA-1: 73a3b51e5c2a860f8bb1d0608117439875a46219
SHA-256: e8024c9e2c872c46f5f474e4c83c74efe1cfc394c0efdfee95615f3e90ed25db
Release notes
This is a patch (bugfix) release of Drupal 10 and is ready for use on production sites. Learn more about Drupal 10.
Drupal 10.2.x will receive security coverage until December 2024.
Important update information
-
If you are updating from Drupal 9, refer to Preparing your site to upgrade to a newer major version for tools you can use to check the Drupal 10 compatibility of modules, themes and sites. Then, upgrade from Drupal 9 to 10. You should also check the Drupal 10.0.0 release notes.
All changes in this release
- Issue #3424768 by mfb, OMD, cilefen, smustgrave: Channel description of RSS feeds is double-escaped
- Issue #3222784 by ahsannazir, Gauravvvv, zenimagine, shweta__sharma, mherchel, kostyashupenko: Olivero: 'wide-content' utility class breaks layout when placed in 'Hero' region
- Issue #3412283 by mathilde_dumond, acbramley, Berdir, smustgrave, BramDriesen, larowlan: Editing a block_content entity no longer redirects to the overview
- Issue #3119761 by dww, aleevas, Hardik_Patel_12, quietone, tedbow, _utsavsharma, smustgrave, xjm, longwave: Replace multiple test methods in InfoParserUnitTest with 1 testInfoException and a dataprovider
- Issue #3425304 by Spokje, smustgrave: Resync dictionary.txt
- Issue #3417521 by jayhuskins: Update typing for plugin definition to include object
- Issue #3423384 by govind_giri_goswami, Gauravvvv, dineshkumarbollu, adwivedi008, Pravesh_Poonia, smustgrave, Tanuj., shreyal999, Ruturaj Chaubey, mherchel, andy-blum: Extra Close icon in Messages
- Issue #3421731 by larowlan, byrond: field_field_config_create should check if the config installer is syncing
- Issue #3341438 by DanielVeza, andypost: Add test coverage for layout_builder_entity_view_alter()
- Issue #3409640 by swatidhurandhar, Mithun S, shweta__sharma, Gauravvvv, divya.sejekan, Sandeep_k, Kanchan Bhogade: In workspace-form the text of the modal content is not visible completely below 768px screen
- Issue #2863629 by sleitner, jmaties, armrus, ravi.shankar, yogeshmpawar, smustgrave, Chris64, quietone, alexpott: Only fallback to an existing singular or nth plural form of a translation
- Issue #3184588 by ressa, SKAUGHT, rkoller, Mithun S: Make disabled status more obvious in a View
- Issue #3422603 by b2f, godotislate: Fixing source IDs with spaces in Sql.php
- Issue #3425129 by mondrake, smustgrave: Classloader needs to be registered in Database::convertDbUrlToConnectionInfo()
- Issue #3422546 by mstrelan: Remove extra parameters passed to functions
- Issue #3420802 by kim.pepper, bkline, larowlan: [regression] file_save_upload does not properly handle extensions
- Issue #3421206 by karanpagare, GafgarionMorua, smustgrave, joachim, longwave: incorrect docs for LocaleConfigSubscriberTest::assertTranslation()
- Issue #3420165 by longwave, Spokje: Recreate the "updated deps" job from DrupalCI
- Issue #3153723 by quietone, Hardik_Patel_12: Change the scaffolding documentation link in README.txt
- Issue #3414883 by paul121, acbramley, catch, smustgrave, quietone: [regression] datetime_timestamp widget does not use default field value
- Issue #3416184 by amateescu: Content Moderation should only validate its own workflow type
- Issue #3424751 by acbramley: BlockContentForm::actions is incorrectly overridden as public
- Issue #3419894 by shweta__sharma, Mithun S, Kanchan Bhogade, Charles Belov, Amir Gurung, Wim Leers, smustgrave: [drupalImage] Rename "Text alternative" field label to "Alternative text"
- Issue #3398196 by godotislate, DanielVeza, smustgrave: Field block for empty image field with no default image rendering empty div in Layout Builder
- Issue #2998875 by quietone, juampynr, benjifisher, smustgrave, alison: Map menu ids like main-menu when migrating node types
- Issue #3419107 by Keshav Patel, Chi: FieldConfigEditForm::save should report exceptions using warning or error messages
- Issue #3415118 by ahmad.k, Lendude: Combine fields filter REGEXP causes PostgreSQL syntax error
- Issue #3358581 by pfrenssen, _tarik_, a.dmitriiev, smustgrave, longwave, larowlan: Deprecated function: array_slice(): Passing null to parameter #2 ($offset) of type int is deprecated in Drupal\Core\Configntity\Query\Query->execute()
- Issue #3422485 by mondrake, smustgrave: Change DrupalLogErrorTest::provideFatalExitCodeData to static
- Issue #3422395 by mondrake, smustgrave: Change ErrorTest data providers to static
- Issue #3422495 by mondrake, smustgrave: Change DefaultConfigTest::moduleListDataProvider and helpers to static
- Issue #3422493 by mondrake, smustgrave: Change UrlHelperTest data providers and helpers to static
- Issue #3422481 by mondrake, smustgrave: Change PrimitiveTypeConstraintValidatorTest::provideTestValidate to static
- Issue #3422345 by mondrake, smustgrave: Change DateTest::providerTestFormatDiff and family to static
- Issue #3422222 by gorkagr, mstrelan, smustgrave: Wrong return type in Renderer::ensureMarkupIsSafe()
- Issue #3420042 by fjgarlin, longwave, catch: Bring external template files into core
- Issue #3412658 by benjifisher: Term migrations should set revision IDs
- Issue #3421258 by mstrelan, acbramley: Fix strict type errors in WebAssert calls
- Issue #3127116 by phthlaap, AjitS, cmlara, AmbyH, smustgrave, alexpott, quietone: Image styles - thumbnails are broken in config page when private file system is used
- Issue #3304772 by tstoeckler, kksandr, Murz, smustgrave: Cache tags from Computed fields do not bubble up to Entity render array
- Issue #3417362 by kristiaanvandeneynde, smustgrave, quietone: Call refreshVariables() where needed in various tests
- Issue #3292350 by O'Briat, KlemenDEV, hswong3i, smustgrave, quietone: Update the file size in file_validate_image_resolution after resizing
- Issue #3396741 by recrit, smustgrave: Content Moderation moderation_state_filter cannot join the entity revision table when the filter uses relationship to the entity revision table
- Issue #2613222 by webflo, alexpott, ameymudras, pooja saraah, _utsavsharma, penyaskito, Janvi Dasani: Language module shouldn't alter config in sync mode
- Issue #3423454 by scott_euser, smustgrave: Form Builder does not fully allow Ajax GET requests
- Issue #3405976 by alexpott, jrglasgow, fago, catch, mondrake, solideogloria, mglaman, Driskell, derickr, longwave, Mile23, YesCT, daffie: Transaction autocommit during shutdown relies on unreliable object destruction order (xdebug 3.3+ enabled)
- Issue #2867881 by catch, Wim Leers, smustgrave, dww: Remove @todo and workaround in Cookie ResourceTestTrait
- Issue #3405976 by alexpott, jrglasgow, fago, catch, mondrake, solideogloria, mglaman, Driskell, derickr, longwave, Mile23, YesCT, daffie: Transaction autocommit during shutdown relies on unreliable object destruction order (xdebug 3.3+ enabled)
- Revert "Issue #3414993 by alexpott: Add ConfigImporter to \Drupal\Core\Config\Importer\MissingContentEvent"
- Issue #3277287 by Gauravvvv, Anita Verma, shweta__sharma, smustgrave, akmalfikri: Improve vertical tabs in forced colors mode
- Issue #3420794 by catch, slashrsm: Allow sending headers to the OpenTelemetry collector
- Issue #3385845 by shalini_jha, smustgrave: PrivateFileOnTranslatedEntityTest should use API to set up language
- Issue #3422584 by nod_, Deepak Goyal, mohrerao, quietone, smustgrave: Keep the word dependee and move it to drupal-dictionary.txt
- Issue #3419182 by longwave: Test-only job fails with "couldn't find remote ref refs/heads/11.x" when 11.x branch does not exist in fork
- Issue #3187004 by recrit, a.dmitriiev, mohit_aghera, ranjith_kumar_k_u, larowlan, Matroskeen, smustgrave, Kristen Pol, neclimdul: DrupalDateTime serialization issue
- Issue #3418298 by Akhil Babu, Kanchan Bhogade: Improve the exception message when an entity form class does not exist
- Issue #2609256 by sleitner, rkoller, smustgrave, vegantriathlete, quietone, benjifisher, AaronMcHale, worldlinemine: Add warning message to import translations after enabling Interface Translation
- Issue #3414993 by alexpott: Add ConfigImporter to \Drupal\Core\Config\Importer\MissingContentEvent
- Issue #3420375 by Spokje: Remove cruft from NodeRevisions[All]Test::setUp
- Issue #3417816 by Watergate: Ensure database connection information is cleaned up properly after performing ConnectionTest
- Issue #3387172 by Mingsong, smustgrave, mlncn, Kanchan Bhogade, larowlan: Unpublished forum accessible to public
- Issue #3403198 by simohell, mgifford, itmaybejj: Details do not benefit from aria-pressed
- Issue #2366129 by andypost, stefan.r, smustgrave, vacho: RegisterStreamWrappersPass and other have broken compiler pass for multiple tags
- Issue #3416141 by gorkagr, Jaypan, Wim Leers, alexpott: big_pipe.js' checkMutation() does not check if node exists before using it
- Revert "Issue #3416141 by gorkagr, Jaypan, Wim Leers: big_pipe.js' checkMutation() does not check if node exists before using it"
- Issue #3416141 by gorkagr, Jaypan, Wim Leers: big_pipe.js' checkMutation() does not check if node exists before using it
- Issue #3394048 by godotislate, Sandeep Sanwale, djsagar, rkoller, mark_fullmer, ckrina: [Drupal 10.2 regression] Media Library "widget" View media type tabs have lost styling
- Issue #3421114 by tstoeckler: [regression] Entity::toUrl() without argument is broken for entity types with a URI callback
- Issue #3416798 by GafgarionMorua, arunkumark, larowlan, smustgrave, DamienMcKenna: Refactor the breadcrumb generation "catch" code
- Issue #3421371 by Spokje: Security update composer/composer (CVE-2023-43655)
- Revert "Issue #3420974 by andypost, quietone: Add testing wtih Maria DB 10.6"
- Issue #3420974 by andypost, quietone: Add testing wtih Maria DB 10.6
- Issue #3404508 by mstrelan, smustgrave, larowlan, quietone: Fix strict type errors in Functional tests: Add casts and fix types where needed
- Issue #3418236 by mstrelan, smustgrave: Fix strict type errors: Convert remaining usages of FormattableMarkup to strings in core Functional tests
- Issue #3409895 by acbramley, longwave, smustgrave: [regression] toUrl can incorrectly return edit-form url when another link template shares the canonical url
- Issue #3420013 by longwave, catch: Only run CSS and JS lint jobs if files have changed
- Issue #3364292 by BramDriesen, dww, alison, cilefen, jonathan1055, urvashi_vora: Use 'queueing' spelling instead of 'queuing'
- Issue #3322894 by Akhil Babu, Juanjol, micnap, larowlan, quietone, catch, alexpott: Comment form gives deprecated warnings on PHP 8.1 when comment is empty
- Issue #3419763 by Tom Konda: Replace deprecated String.prototype.substr() with String.prototype.substring()
- Issue #3418332 by Tom Konda: Replace uncommon HTMLDocument with Document in JSDoc
- Issue #3406109 by Drupaler_Kushal, KarimB, Lenenba, smustgrave, quietone: Correct 'milli' in core/form.js
- Issue #3416549 by Wim Leers: ConfigExistsConstraintValidator should ignore NULL values
- Issue #3419824 by catch: Mark some more tests with @group #slow
- Back to dev.