UT Drupal Kit 3.12.0 release notes

Release date - June 5, 2023

Contents

Release summary

The 3.12.0 release is part of the UT Drupal Kit’s normal, bi-monthly maintenance release schedule.

This release is notable in that it includes a major version update from Drupal 9 to Drupal 10. Campus developers should carefully read the release notes below before updating. Site managers and content editors, on the other hand, should not expect any noteworthy changes: site display, behavior, and editing experience are not changing in any substantive way.

Major version update: Drupal 9 to 10

Note

The 3.12.0 release increments the version of Drupal core from 9.5.8 to 10.0.9.

Action is required by developers maintaining Drupal Kit sites. We encourage developers to reach out to drupal-kit-support@utlists.utexas.edu with any questions or concerns after reading the contents below.

The update from Drupal 9 to Drupal 10 is a major version update. Most notably, it:

  • removes Drupal APIs deprecated during the Drupal 9 development cycle

  • requires a minimum PHP version of 8.1

  • includes a major version update of CKEditor (v4 to v5)

  • includes a major version update for the Symfony framework (v4 to v6)

To reduce the surface area of code change included the 3.12.0 release, many changes related to the Drupal major version update were introduced in previous releases, as noted in the table below. Depending on the version of the Drupal Kit sites are currently running, developers may or may not need to address the items below:

Changes involved for the update from Drupal 9 to Drupal 10

Change

Update actions

Bartik, Seven, and Stable themes are removed

The 3.11.0 release uninstalled Bartik and Stable, and Drupal Kit sites should already be using the Claro administrative theme. Any code dependencies on Bartik, Seven, or Stable will need to be refactored. Developers using an administrative theme other than Claro will need to check if it is compatible with Drupal 10 and potentially switch or update their administrative theme.

The minimum PHP version is 8.1

The 3.11.0 release of the Drupal Kit set the default PHP version for sites hosted on Pantheon to 8.1. Developers with sites hosted elsewhere than Pantheon, or who have set a Pantheon-hosted site to a lower PHP version in the pantheon.yml file, will need to change that version and ensure that custom or contributed code is compatible with PHP 8.1. See PHP 8 update.

CKEditor version 4 is removed

The 3.11.0 release of the Drupal Kit converted existing text formats using CKEditor 4 to CKEditor 5. Sites that have already successfully updated to 3.11.0 should not require additional work for CKEditor. Site that have not updated should read CKEditor 5 update.

All contributed code must be Drupal 10-compatible

Developers who have added contributed modules or themes beyond those included with the Drupal Kit will need to audit them for Drupal 10 compatibility and potentially update or find a replacement. The Drupal Kit team is available for consultation.

Drupal 9 API deprecations must be replaced

Developers who have added custom modules or themes are responsible for making them Drupal 10 compatible. The Drupal Kit team is available for consultation.

Symfony 4 API deprecations must be replaced

Developers who have added custom modules or themes are responsible for making them Symfony 6 compatible. The Drupal Kit team is available for consultation.

New major version for Enterprise Authentication integration on Pantheon

Developers who have integrated Enterprise Authentication on existing Pantheon sites will need to make sure their codebase can use version 4 of the pantheon_saml_integration plugin. See Add the “Pantheon SAML Integration” plugin

Twig templates must be compatible with version 3

Developers who have added custom Twig templates should audit them for compatibility with Twig 3. The Drupal Kit team is available for consultation.

Bootstrap dropdown library removed from Forty Acres

Previous releases of the Forty Acres theme included a Bootstrap framework library for inserting dropdown menus through HTML snippets. The latest version of CKEditor (the rich text editor that Drupal uses) does not accept the HTML format prescribed for these dropdowns. We therefore designated the dropdown capability as no longer supported within rich text editing and removed the dropdown library from Forty Acres.

Developers wanting to use the dropdown functionality directly in HTML code (e.g., Twig templates) may do so by adding the Bootstrap library to their codebase. See https://getbootstrap.com/docs/4.0/components/dropdowns/ .

Contributed module updates

The following contributed modules are updated in this release.

Modules included with the UT Drupal Kit installation profile

Modules included with the News add-on

Modules included with the Event add-on

Modules included with the Profile add-on

All changes since 3.11.3

UTexas installation profile (14)

  • Bug: Test expectation for Flex HTML toolbar is out of date with latest revision #2178

  • Task: Remove layout_builder_modal and media_library_theme_reset from codebase (3.12.0) #2122

  • Task: Remove ckeditorheight contributed module #2061

  • Enhancement: Make streaming media embedded in rich text editors easier to remove #2151

  • Task: Drupal 10 Compatibility: Update to Twig 3 syntax #1809

  • Task: Drupal 10 Compatibility: getSubscribedEvents must declare array type hint #2172

  • Task: Drupal 10: MimeTypeGuesser::guess() is deprecated #2182

  • Task: Update core version requirement to Drupal 10.0.7 #2175

  • Task: Use develop version of Forty Acres in automated testing #2186

  • Task: Update to Drupal 10-compatible release of Pathologic #2187

  • Task: Update to Features 5.0.0-alpha1 #2190

  • Task: Update outdated description of UTexas installation profile #2211

  • Task: Update contributed dependencies (automated) #2214

  • Bug: Promo Unit: PHP notice: unserialize(): Passing null to parameter #1 ($data) of type string is deprecated #2218

Forty Acres theme (4)

  • Task: Status messages template references a Classy library removed in Drupal 10 #478

  • Bug: Visited links titles on search results pages are blue, not orange #473

  • Bug: Bootstrap “Dropdown” component does not render correctly with CKEditor 5 #457

  • Bug: Forty Acres references incorrect location of icons used in status messages #485

  • Bug: Warning: Undefined array key “#bundle” in forty_acres_preprocess_field() #487

Profile add-on (3)

  • Task: Drupal 10: RouteSubscriber::getSubscribedEvents() must declare array type hint #347

  • Bug: Drupal 10: MimeTypeGuesser::guess() is deprecated #349

  • Task: Update contributed dependencies (automated) #352

  • Bug: Multiple PHP warnings given when Tab Label is empty #350

News add-on (3)

  • Bug: Drupal 10: MimeTypeGuesser::guess() is deprecated #260

  • Task: Drupal 10: RouteSubscriber::getSubscribedEvents() must declare array type hint #258

  • Task: Update contributed dependencies (automated) #262

Event add-on (6)

  • Task: Require Drupal 10-compatible version of date_augmenter #258

  • Task: Drupal 10 Compatibility: RouteSubscriberBase, MimeTypeGuesser #257

  • Bug: Smart Date 3.6.1 has a Symfony 6 (Drupal 10) incompatibility #259

  • Bug: [META] AddToCal Augment: Multiple import problems in ICS file related to VTIMEZONE #200

  • Task: Update fullcalendar_view to latest compatible release #263

  • Bug: smart_date_recur does not perform accessCheck() required for Drupal 10 #268

Upstream repository (3)

  • Task: Allow Drupal 10 compatible versions for core-composer-scaffold and drupal-integrations #127

  • Task: Remove drush version declaration from pantheon.upstream.yml #126

  • Enhancement: Update to Drush 11 (included via composer instead of pantheon.yml) #96

Documentation (2)

  • Task: Remove documentation about Bootstrap dropdowns #475

  • Task: New SAML integrations should specify compatibility with Drupal 9 or 10 #471

Enterprise Login integration (5)

  • Task: Create a 3.x release that explicitly requires drupal/core ^9 #43

  • Task: Fork the simplesamlphp library as simplesamlphp/simplesaml instead of utexas/simplesamlphp #50

  • Task: Add architecture decision record explaining rationale for forked version of simplesamlphp #49

  • Bug: simplesamlphp does not have an official Drupal 10-compatible release #45

  • Task: Apply team’s commonly-used patches of drupal/simplesamlphp_auth on utexas/simplesamlphp_auth #46

Drupal Kit ‘Managed’ integration (2)

  • Task: Drupal 10 compatibility #128

  • Enhancement: Issue template for new site provisioning #12

Log forwarding service (2)

  • Task: Drupal 10 compatibility (utexas_pantheon_logs_http) #17

  • Task: utexas_pantheon_logs_http requires a new major version release for Drupal 10 compatibility #23

Migration tool (3)

  • Bug: writeData() fails when NULL is passed to $file_uri #318

  • Bug: [PHP 8] Metatags “robots” are incorrectly migrated as an array #319

  • Bug: fin drush ms database connection error #317