From ae9f8e0f905bd07210324e7d5ebaff75a629bcf2 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Tue, 13 Jan 2026 20:10:54 +1100 Subject: [PATCH 01/16] D11 # Conflicts: # composer.dev.json # composer.json --- composer.dev.json | 31 +++++------ composer.json | 130 ++++++++++++++------------------------------- docker-compose.yml | 4 +- 3 files changed, 56 insertions(+), 109 deletions(-) diff --git a/composer.dev.json b/composer.dev.json index 89ddea028..e03985f0c 100644 --- a/composer.dev.json +++ b/composer.dev.json @@ -6,8 +6,8 @@ "composer/installers": "^1.9", "cweagans/composer-patches": "^1.6.0", "drupal/core-composer-scaffold": "^11.0", - "drupal/core": "10.5.2", - "drupal/core-recommended": "10.5.2", + "drupal/core": "11.x", + "drupal/core-recommended": "11.x", "drush/drush": "^13", "vlucas/phpdotenv": "^4.1", "webflo/drupal-finder": "^1.0" @@ -17,7 +17,8 @@ "behat/mink": "^1.11", "behat/mink-browserkit-driver": "^2.2", "behat/mink-selenium2-driver": "^1.4", - "chi-teck/drupal-code-generator": "^3.0", + "imbo/behat-api-extension": "^6.0", + "chi-teck/drupal-code-generator": "*", "squizlabs/php_codesniffer": "3.7.1", "dealerdirect/phpcodesniffer-composer-installer": "^0.7", "doctrine/persistence": "^3.3", @@ -26,16 +27,15 @@ "drevops/behat-screenshot": "^1.0", "drevops/behat-steps": "^1.2.0", "phpcompatibility/php-compatibility": "^9.1", - "imbo/behat-api-extension": "^6.0", - "symfony/filesystem": "^6.2", + "symfony/filesystem": "^7.4", "php-http/curl-client": "*", "phpunit/phpunit": "^8.5.14 || ^9", - "drupal/core-dev":"10.5.x", + "drupal/core-dev":"11.x", "phpspec/prophecy-phpunit":"^2", - "weitzman/drupal-test-traits": "^1.5", + "weitzman/drupal-test-traits": "*", "php-http/message": "~1.13", "php-http/message-factory": "^1.1", - "guzzlehttp/psr7": "~2.7.0", + "guzzlehttp/psr7": "^2.8.0", "dpc-sdp/tide_test": "^4.0.0", "drupal/test_helpers": "^1.2" }, @@ -70,7 +70,7 @@ "drupal": { "type": "composer", "url": "https://packages.drupal.org/8", - "exclude": ["drupal/token_conditions", "drupal/ckeditor_templates", "drupal/create_menus_permission"] + "exclude": ["drupal/token_conditions"] }, "asset-packagist": { "type": "composer", @@ -81,11 +81,6 @@ "no-api": true, "url": "https://github.com/dpc-sdp/tide.git" }, - "drupal/create_menus_permission": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/create_menus_permission.git" - }, "dpc-sdp/tide_alert": { "type": "vcs", "no-api": true, @@ -407,15 +402,15 @@ } } }, - "drupal/token_conditions": { + "ubirak/rest-api-behat-extension": { "type": "vcs", "no-api": true, - "url": "https://github.com/dpc-sdp/token_conditions.git" + "url": "https://github.com/dpc-sdp/rest-api-behat-extension.git" }, - "drupal/ckeditor_templates": { + "drupal/token_conditions": { "type": "vcs", "no-api": true, - "url": "https://github.com/dpc-sdp/ckeditor_templates.git" + "url": "https://github.com/dpc-sdp/token_conditions.git" } }, "scripts": { diff --git a/composer.json b/composer.json index e0cfba293..d6c106e94 100644 --- a/composer.json +++ b/composer.json @@ -9,18 +9,19 @@ "jquery/timepicker": "1.14.0", "jquery/textcounter": "0.9.1", "drupal/address": "^2.0", - "drupal/allowed_formats": "^2.0", - "drupal/better_exposed_filters": "^6.0", - "drupal/clamav": "2.0.2-rc1", - "drupal/config_ignore": "^2.4", + "drupal/allowed_formats": "^3.0.1", + "drupal/better_exposed_filters": "^7.1.1", + "drupal/clamav": "^2.1.0", + "drupal/config_ignore": "^3.3", "drupal/config_perms": "2.x-dev@dev", "drupal/config_split": "^2.0", "drupal/config_update": "^2.0@alpha", - "drupal/core": "10.5.2", - "drupal/core-recommended": "10.5.2", + "drupal/core": "11.x", + "drupal/upgrade_status": "^4.3", + "drupal/core-recommended": "11.x", "drupal/monitoring": "^1.13", - "drupal/ckeditor_templates": "dev-feature/d10-compatible-with-ck5-support", - "drupal/ctools": "^3.14", + "drupal/ckeditor_templates": "^1.4", + "drupal/ctools": "^4.1.0", "drupal/diff": "^1.1", "drupal/editor_advanced_link": "2.3.1", "drupal/entity_browser": "^2.9", @@ -30,12 +31,12 @@ "drupal/fast_404": "^3.0", "drupal/field_group": "^3.6", "drupal/google_analytics": "^4.0", - "drupal/hotjar": "^3.1", + "drupal/hotjar": "^4.0.2", "drupal/linkit": "^7.0", "drupal/login_redirect_per_role": "^1.9", - "drupal/m4032404": "^1.0-alpha4", - "drupal/maxlength": "^2.1", - "drupal/entity_hierarchy": "4.x", + "drupal/m4032404": "^2.0.3", + "drupal/maxlength": "^3.1.3", + "drupal/entity_hierarchy": "^3.3.14", "drupal/elasticsearch_connector": "^7.0", "drupal/search_api": "^1.36", "drupal/data_pipelines": "^2.2", @@ -44,27 +45,27 @@ "drupal/media_entity_audio": "^3.1", "drupal/metatag": "^2.0", "drupal/override_node_options": "^2.7", - "drupal/paragraphs": "1.19", + "drupal/paragraphs": "^1.15", "drupal/password_policy": "^4.0", "drupal/password_strength": "^2.0@beta", "drupal/pathauto": "^1.11", - "drupal/prlp": "^1.10", + "drupal/prlp": "^2.0.1", "drupal/redirect": "^1.8", "drupal/real_aes": "^2.5", "drupal/role_delegation": "^1.2", "drupal/seckit": "^2.0", - "drupal/simple_oauth": "^5.2", + "drupal/simple_oauth": "^6.1.0", "drupal/simple_sitemap": "^4.1", "drupal/smart_trim": "^2.0", "drupal/smtp": "^1.2", - "drupal/stage_file_proxy": "^2.0", - "drupal/tablefield": "2.4", + "drupal/stage_file_proxy": "^3.1.6", + "drupal/tablefield": "^3.0", "drupal/tfa": "1.9", "drupal/tfa_email_otp": "^1.0@beta", "drupal/token_conditions": "dev-compatible-with-d10", "drupal/token_filter": "^2.0", "drupal/twig_field_value": "^2.0", - "drupal/views_data_export": "1.3", + "drupal/views_data_export": "^1.8", "drupal/views_menu_children_filter": "^3.0@RC", "drupal/viewsreference": "^2.0@beta", "drupal/workbench": "^1.4", @@ -72,12 +73,12 @@ "drupal/scheduled_transitions": "2.5", "drupal/link_field_autocomplete_filter": "^2.0", "drupal/queue_mail": "^1.5", - "drupal/token": "1.16", - "drupal/user_created_by_field": "^1.1", + "drupal/token": "^1.15", + "drupal/user_created_by_field": "dev-project-update-bot-only as 1.1.3", "drupal/username_enumeration_prevention": "^1.3", "drupal/quick_node_clone": "^1.16", - "drupal/content_lock": "^2.3", - "drupal/inline_entity_form": "^1.0@RC", + "drupal/content_lock": "^3.0", + "drupal/inline_entity_form": "^3.0", "drupal/private_files_download_permission": "^3.1", "drupal/jquery_ui_touch_punch": "^1.1", "drupal/admin_audit_trail": "^1.0", @@ -86,14 +87,13 @@ "drupal/field_permissions": "^1.2", "lesstif/php-jira-rest-client": "2.6.0", "drupal/jira_rest": "^4.0@beta", - "drupal/yaml_content": "^1.0@alpha", - "drupal/ckeditor5_embedded_content": "1.0.1", + "drupal/yaml_content": "dev-3435777-automated-drupal-11 as 1.0.0-alpha9", "respect/validation": "2.3.1", "giggsey/libphonenumber-for-php": "^8.13", "drupal/site_alert": "^1.3", "drupal/migrate_source_ui": "^1.0", - "drupal/migrate_file": "^2.0", - "drupal/select2": "^1.7", + "drupal/migrate_file": "^3.0", + "drupal/select2": "^2.0", "oomphinc/composer-installers-extender": "^2.0", "select2/select2": "^4.0", "npm-asset/select2": "^4.0", @@ -103,7 +103,7 @@ "drupal/embed": "^1.6", "drupal/focal_point": "^2.0", "drupal/svg_image": "^3.0", - "drupal/video_embed_field": "2.5", + "drupal/video_embed_field": "^3.0", "drupal/entity_usage": "^2.0@beta", "drupal/crop": "^2.3", "drupal/migrate_plus": "6.0.2", @@ -113,7 +113,7 @@ "drupal/jsonapi_menu_items": "^1.2", "drupal/jsonapi_resources": "^1.0.0-beta5@beta", "drupal/schemata": "^1.0@beta", - "drupal/create_menus_permission": "dev-drupal_10_compatibility", + "drupal/create_menus_permission": "^1.1", "drupal/key_value_field": "^1.3", "drupal/webform": "^6.3@beta", "choices/choices": "9.0.1", @@ -130,7 +130,7 @@ "drupal": { "type": "composer", "url": "https://packages.drupal.org/8", - "exclude": ["drupal/token_conditions", "drupal/ckeditor_templates", "drupal/create_menus_permission"] + "exclude": ["drupal/token_conditions", "drupal/user_created_by_field", "drupal/yaml_content"] }, "choices": { "_webform": true, @@ -231,11 +231,6 @@ "type": "composer", "url": "https://asset-packagist.org" }, - "drupal/create_menus_permission": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/create_menus_permission.git" - }, "ckeditor.autogrow": { "_webform": true, "type": "package", @@ -347,33 +342,21 @@ "1.x-dev" ] }, - "drupal/ckeditor_templates": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/ckeditor_templates.git" - } + "drupal/user_created_by_field": { + "type": "vcs", + "no-api": true, + "url": "https://git.drupalcode.org/issue/user_created_by_field-3435263.git" + }, + "drupal/yaml_content": { + "type": "vcs", + "no-api": true, + "url": "https://git.drupalcode.org/issue/yaml_content-3435777.git" + } }, "extra": { "patches": { "drupal/admin_audit_trail": { - "Add an option to allow logging in CLI - https://www.drupal.org/project/admin_audit_trail/issues/3263615#comment-16412890": "https://www.drupal.org/files/issues/2026-01-15/3263615-admin_audit_trail-option-for-cli-10.patch" - }, - "drupal/core": { - "Refactor Xss::attributes() to allow filtering of style attribute values - https://www.drupal.org/project/drupal/issues/3109650#comment-16166063": "https://www.drupal.org/files/issues/2025-06-26/xss-refactor-filter-attributes-10.5.x-3109650-85.patch", - "PathBasedBreadcrumbBuilder needs to be able to exclude pointless paths - https://www.drupal.org/project/drupal/issues/3344200": "https://www.drupal.org/files/issues/2024-06-26/3344200-17.patch", - "Add a 'machine_name' widget for string field types with a UniqueField constraint - https://www.drupal.org/project/drupal/issues/2685749#comment-15361693": "https://www.drupal.org/files/issues/2024-06-21/machine-name-widget-2685749-140.patch", - "Paragraphs fields cause overflow of content forms in Claro-https://www.drupal.org/project/drupal/issues/3145188": "https://www.drupal.org/files/issues/2023-01-25/3145188-37_0.patch", - "Form Required Class Missing from Claro - https://www.drupal.org/project/drupal/issues/3160987#comment-14609681": "https://www.drupal.org/files/issues/2022-07-17/3160987-10.patch", - "DateTimeComputed tries to compute from an empty value - https://www.drupal.org/project/drupal/issues/3052608#comment-14666671": "https://www.drupal.org/files/issues/2022-08-25/DateTimeComputed-tries-to-compute-from-an-empty-value-3052608-16.patch", - "Querying with NULL values results in warning mb_strtolower() - https://www.drupal.org/project/drupal/issues/3302838": "https://www.drupal.org/files/issues/2022-08-23/3302838-13.patch", - "ModuleHandler skips all hook implementations when invoked before the module files have been loaded - https://www.drupal.org/project/drupal/issues/3207813": "https://www.drupal.org/files/issues/2022-06-21/3207813-15.patch", - "Add filter by input field to Menu UI - https://www.drupal.org/project/drupal/issues/3170906#comment-16107432": "https://www.drupal.org/files/issues/2025-05-14/menu-filter.patch", - "Issue with HTML ` ` not being correctly filtered out from URLs - https://www.drupal.org/project/drupal/issues/3445910#comment-15586313": "https://www.drupal.org/files/issues/2024-08-06/drupal_core_non-breaking_space_issue_3445910_27_0.patch", - "Menu content is not accessible via jsonapi - https://www.drupal.org/node/2915792": "https://www.drupal.org/files/issues/menu_link_content-view-permissions-2915792.patch", - "Revisions on relations are not loaded correctly resulting in wrong data in includes - https://www.drupal.org/project/drupal/issues/3088239#comment-15519702": "https://www.drupal.org/files/issues/2024-03-25/3088239-50.patch" - }, - "drupal/video_embed_field": { - "Add support for Ckeditor 5 - https://www.drupal.org/project/video_embed_field/issues/3311063": "./patches/video_embed_field/video_embed_field_6.patch" + "Add an option to allow logging in CLI - https://www.drupal.org/project/admin_audit_trail/issues/3263615#comment-16351387": "https://www.drupal.org/files/issues/2025-11-19/3263615-admin_audit_trail-option-for-cli-8.patch" }, "drupal/migrate_plus": { "Simple XML broken with UTF-16LE - https://www.drupal.org/project/migrate_plus/issues/3051858#comment-15138496": "https://www.drupal.org/files/issues/2023-07-06/3051858-migrate_plus-simplexml_remove_trim-5.patch" @@ -382,9 +365,6 @@ "Alter parsed values before nodes created. - https://www.drupal.org/project/yaml_content/issues/3261689#comment-15167530": "https://www.drupal.org/files/issues/2023-07-27/yaml_content-3261689_4.patch", "Warnings when importing menus using module. - https://www.drupal.org/project/yaml_content/issues/3340448": "https://www.drupal.org/files/issues/2023-07-28/warnings-when-importing_3340448_7.patch" }, - "drupal/token": { - "Summary token not fully handled in fields - https://www.drupal.org/project/token/issues/2924873#comment-15704936": "https://www.drupal.org/files/issues/2024-07-30/tokens_body_with_summary-2924873-18.patch" - }, "drupal/field_group": { "Nested groups render on other entity forms (or when fields are inaccessible) when they shouldn't: https://www.drupal.org/project/field_group/issues/3098550#comment-15712652": "https://www.drupal.org/files/issues/2024-08-05/3098550-19.patch", "Tabs with invalid input are not focused - https://www.drupal.org/project/field_group/issues/2894351#comment-15712685": "https://www.drupal.org/files/issues/2024-08-05/2894351-32.patch" @@ -398,13 +378,6 @@ "drupal/password_policy": { "Add password validation to the user entity as a constraint - https://www.drupal.org/project/password_policy/issues/2941526#comment-14938934": "https://www.drupal.org/files/issues/2023-02-24/password_policy-move-password-validation-to-user-entity-2941526-10.patch" }, - "drupal/simple_oauth": { - "access:false even though permission is checked for the role - https://www.drupal.org/project/simple_oauth/issues/2958159#comment-13847450": "https://www.drupal.org/files/issues/2020-10-05/simple_oauth-refresh_token_authenticated_missing_scope-2958159-4.patch", - "Allow to add multiple redirect uri for a single client - https://www.drupal.org/project/simple_oauth/issues/3331436": "https://git.drupalcode.org/project/simple_oauth/-/merge_requests/87.patch" - }, - "drupal/tablefield": { - "[UX] Add the ability to hide or disable the import CSV option - https://www.drupal.org/project/tablefield/issues/2337743": "https://www.drupal.org/files/issues/2020-11-11/tablefield-allowed_data_sources-2337743-16.patch" - }, "drupal/search_api": { "Provide drush support to index a specific entity - https://www.drupal.org/project/search_api/issues/3016809": "https://www.drupal.org/files/issues/2024-11-25/search_api-index-specific-items-3016809-10.patch" }, @@ -422,20 +395,11 @@ }, "drupal/paragraphs": { "Add default paragraph count setting - https://www.drupal.org/project/paragraphs/issues/3089423#comment-14517270": "https://www.drupal.org/files/issues/2022-05-17/paragraphs-default-quantity-3089423-18.patch", - "Nested paragraphs title gets cut off - https://www.drupal.org/project/paragraphs/issues/3246140#comment-14698713": "https://www.drupal.org/files/issues/2022-09-20/3246140-11-fix_paragraph_title_cutoff.patch", - "Paragraph with long label name gets cut off -https://www.drupal.org/project/paragraphs/issues/3350521#comment-14984824": "https://www.drupal.org/files/issues/2023-03-27/paragraph-long-label-cut-off-3350521-2.patch", "Dropbutton RHS highlight covers adjacent text - https://www.drupal.org/project/paragraphs/issues/3350747#comment-14986371": "https://www.drupal.org/files/issues/2023-03-28/paragraph-dropdown-button-obscure-text-2.patch" }, - "drupal/content_lock": { - "Altering timeout message - https://www.drupal.org/project/content_lock/issues/3214877#comment-14108752": "https://www.drupal.org/files/issues/2021-05-20/content_lock_3214877_3.patch" - }, "drupal/site_alert": { "Use HTTP GET to allow caching of AJAX request-3160200/Add ability to dismiss alert-3156557": "https://git.drupalcode.org/project/site_alert/-/merge_requests/3.patch" }, - "drupal/views_data_export": { - "Batch mode does not allow other modules to alter query - https://www.drupal.org/project/views_data_export/issues/3173296#comment-14930767": "https://www.drupal.org/files/issues/2023-02-20/views_data_export-3173296-25.patch", - "Support views data export using drush - https://www.drupal.org/project/views_data_export/issues/2887450#comment-15199879": "https://www.drupal.org/files/issues/2023-11-29/vde-drush-with-output-location-2887450-91.patch" - }, "drupal/jsonapi_extras": { "Make max value of page[limit] configurable per entity/bundle - https://www.drupal.org/project/jsonapi_extras/issues/2884292#comment-14794882": "https://www.drupal.org/files/issues/2022-11-21/max_page_limit_configuration-2884292-33.patch" }, @@ -474,19 +438,7 @@ "oomphinc/composer-installers-extender": true }, "audit": { - "ignore": { - "SA-CORE-2025-007": "ignore", - "SA-CORE-2025-008": "ignore", - "SA-CORE-2025-005": "ignore", - "SA-CORE-2025-006": "ignore", - "PKSA-d8tb-wwz2-ctxk": "ignore", - "PKSA-dh1f-zjm5-qg8y": "ignore", - "PKSA-bn52-vyzy-rmnm": "ignore", - "PKSA-xj83-g6g8-41vf": "ignore", - "SA-CONTRIB-2025-023": "ignore", - "SA-CONTRIB-2025-085": "ignore", - "PKSA-zwxm-wbtt-zjr5": "ignore" - } + "block-insecure": false } } } diff --git a/docker-compose.yml b/docker-compose.yml index 5ea841ded..bf09ccf4c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -110,7 +110,7 @@ services: lagoon.name: nginx-php mariadb: - image: "ghcr.io/dpc-sdp/bay/mariadb:${BAY_IMAGE_VERSION:-6.x}" + image: "mariadb:10.6" environment: << : *default-environment ports: @@ -119,7 +119,7 @@ services: lagoon.type: mariadb-shared redis: - image: amazeeio/redis + image: uselagoon/redis-5:latest labels: lagoon.type: redis From ca5455b0f607b700ce547ce1616b830bbb3ee673 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Wed, 14 Jan 2026 12:20:17 +1100 Subject: [PATCH 02/16] update custom modules to work with D11 --- composer.json | 10 +++------- docker-compose.yml | 4 ++-- modules/tide_alert/tide_alert.info.yml | 2 +- .../tide_content_collection_test.info.yml | 2 +- .../tide_content_collection.info.yml | 2 +- .../modules/tide_share_link/tide_share_link.info.yml | 2 +- modules/tide_api/tide_api.info.yml | 2 +- .../tide_block_inactive_users.info.yml | 2 +- .../ckeditor_tablecol_resize.info.yml | 2 +- modules/tide_ckeditor/tide_ckeditor.info.yml | 2 +- modules/tide_cms_support/tide_cms_support.info.yml | 2 +- modules/tide_dashboard/tide_dashboard.info.yml | 2 +- .../tide_data_driven_component.info.yml | 2 +- modules/tide_demo_content/tide_demo_content.info.yml | 2 +- .../tide_edit_protection/tide_edit_protection.info.yml | 2 +- modules/tide_event/tide_event.info.yml | 2 +- modules/tide_grant/tide_grant.info.yml | 2 +- modules/tide_jira/tide_jira.info.yml | 2 +- modules/tide_landing_page/tide_landing_page.info.yml | 2 +- .../tide_media_file_overwrite.info.yml | 2 +- .../tide_media_secure_files.info.yml | 2 +- modules/tide_media/tide_media.info.yml | 2 +- modules/tide_migration/tide_migration.info.yml | 2 +- modules/tide_news/tide_news.info.yml | 2 +- modules/tide_oauth/tide_oauth.info.yml | 2 +- .../tide_paragraphs_enhanced_modal.info.yml | 2 +- modules/tide_profile/tide_profile.info.yml | 2 +- modules/tide_publication/tide_publication.info.yml | 2 +- .../tide_data_pipelines_test.info.yml | 2 +- .../tide_data_pipeline/tide_data_pipeline.info.yml | 2 +- modules/tide_search/tide_search.info.yml | 2 +- .../tide_site_preview/tide_site_preview.info.yml | 2 +- .../tide_site_simple_sitemap.info.yml | 2 +- .../tide_site_theming/tide_site_theming.info.yml | 2 +- modules/tide_site/tide_site.info.yml | 2 +- modules/tide_site_alert/tide_site_alert.info.yml | 2 +- .../tide_site_restriction.info.yml | 2 +- modules/tide_test/tide_test.info.yml | 2 +- modules/tide_tfa/tide_tfa.info.yml | 2 +- .../tide_ui_restriction/tide_ui_restriction.info.yml | 2 +- modules/tide_user_expire/tide_user_expire.info.yml | 2 +- modules/tide_webform/tide_webform.info.yml | 2 +- .../tide_workflow_notification.info.yml | 2 +- scripts/composer/DrupalSettings.php | 6 +++++- tide_core.info.yml | 4 +--- 45 files changed, 52 insertions(+), 54 deletions(-) diff --git a/composer.json b/composer.json index d6c106e94..05499c9f8 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "drupal/upgrade_status": "^4.3", "drupal/core-recommended": "11.x", "drupal/monitoring": "^1.13", - "drupal/ckeditor_templates": "^1.4", + "drupal/ckeditor_templates": "^2.0", "drupal/ctools": "^4.1.0", "drupal/diff": "^1.1", "drupal/editor_advanced_link": "2.3.1", @@ -62,7 +62,7 @@ "drupal/tablefield": "^3.0", "drupal/tfa": "1.9", "drupal/tfa_email_otp": "^1.0@beta", - "drupal/token_conditions": "dev-compatible-with-d10", + "drupal/token_conditions": "^11.0", "drupal/token_filter": "^2.0", "drupal/twig_field_value": "^2.0", "drupal/views_data_export": "^1.8", @@ -336,11 +336,7 @@ "drupal/token_conditions": { "type": "vcs", "no-api": true, - "url": "https://github.com/dpc-sdp/token_conditions.git", - "exclude": [ - "dev-1.x", - "1.x-dev" - ] + "url": "https://github.com/dpc-sdp/token_conditions.git" }, "drupal/user_created_by_field": { "type": "vcs", diff --git a/docker-compose.yml b/docker-compose.yml index bf09ccf4c..f22084c82 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -110,11 +110,11 @@ services: lagoon.name: nginx-php mariadb: - image: "mariadb:10.6" + image: "uselagoon/mariadb-10.6-drupal:latest" environment: << : *default-environment ports: - - "3306" # Find port on host with `ahoy info` or `docker-compose port mariadb 3306` + - "3306" # Find port on host with `ahoy info` or `docker-compose port mariadb 3306` labels: lagoon.type: mariadb-shared diff --git a/modules/tide_alert/tide_alert.info.yml b/modules/tide_alert/tide_alert.info.yml index 843ef0641..a15c020c1 100644 --- a/modules/tide_alert/tide_alert.info.yml +++ b/modules/tide_alert/tide_alert.info.yml @@ -2,7 +2,7 @@ name: Tide Alert type: module description: 'Provides Alert content type and related configuration. ' package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - drupal:menu_ui - tide_core:tide_core diff --git a/modules/tide_api/modules/tide_content_collection/tests/modules/tide_content_collection_test/tide_content_collection_test.info.yml b/modules/tide_api/modules/tide_content_collection/tests/modules/tide_content_collection_test/tide_content_collection_test.info.yml index e34c3967d..faf51d97d 100644 --- a/modules/tide_api/modules/tide_content_collection/tests/modules/tide_content_collection_test/tide_content_collection_test.info.yml +++ b/modules/tide_api/modules/tide_content_collection/tests/modules/tide_content_collection_test/tide_content_collection_test.info.yml @@ -5,5 +5,5 @@ package: Testing dependencies: - tide_content_collection:tide_content_collection - tide_test:tide_test -core_version_requirement: ^8.8 || ^9 +core_version_requirement: ^10.5 || ^11 hidden: true diff --git a/modules/tide_api/modules/tide_content_collection/tide_content_collection.info.yml b/modules/tide_api/modules/tide_content_collection/tide_content_collection.info.yml index 5ed2a172c..f70a007a2 100644 --- a/modules/tide_api/modules/tide_content_collection/tide_content_collection.info.yml +++ b/modules/tide_api/modules/tide_content_collection/tide_content_collection.info.yml @@ -2,7 +2,7 @@ name: Tide Content Collection type: module description: 'Provides automated content collection component for Tide Drupal 10 distribution.' package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - dpc-sdp:tide_core - dpc-sdp:tide_api diff --git a/modules/tide_api/modules/tide_share_link/tide_share_link.info.yml b/modules/tide_api/modules/tide_share_link/tide_share_link.info.yml index e8c693e3b..649155457 100644 --- a/modules/tide_api/modules/tide_share_link/tide_share_link.info.yml +++ b/modules/tide_api/modules/tide_share_link/tide_share_link.info.yml @@ -2,7 +2,7 @@ name: Tide Share Link description: Provides functionality to share non-published content to anyone. type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - drupal:node - entity_reference_revisions:entity_reference_revisions diff --git a/modules/tide_api/tide_api.info.yml b/modules/tide_api/tide_api.info.yml index 4027fafd0..1032ca071 100644 --- a/modules/tide_api/tide_api.info.yml +++ b/modules/tide_api/tide_api.info.yml @@ -2,7 +2,7 @@ name: 'Tide API' description: 'Content API functionality.' type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - drupal:jsonapi_extras (>=8.x-3.8) - drupal:jsonapi_menu_items (^1.2) diff --git a/modules/tide_block_inactive_users/tide_block_inactive_users.info.yml b/modules/tide_block_inactive_users/tide_block_inactive_users.info.yml index d385186a7..5aa3fdeaa 100644 --- a/modules/tide_block_inactive_users/tide_block_inactive_users.info.yml +++ b/modules/tide_block_inactive_users/tide_block_inactive_users.info.yml @@ -2,7 +2,7 @@ name: Tide Block Inactive Users type: module package: Tide description: An extension of block_inactive_users module. -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 configure: tide_block_inactive_users.block_user_settings dependencies: - tide_core:tide_core diff --git a/modules/tide_ckeditor/modules/ckeditor_tablecol_resize/ckeditor_tablecol_resize.info.yml b/modules/tide_ckeditor/modules/ckeditor_tablecol_resize/ckeditor_tablecol_resize.info.yml index 7c02589bf..a8c846a72 100644 --- a/modules/tide_ckeditor/modules/ckeditor_tablecol_resize/ckeditor_tablecol_resize.info.yml +++ b/modules/tide_ckeditor/modules/ckeditor_tablecol_resize/ckeditor_tablecol_resize.info.yml @@ -2,6 +2,6 @@ name: Ckeditor Table Column Resize type: module description: Provides a ckeditor5 plugin that allows resizing of table columns package: Custom -core_version_requirement: ^9.4 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - drupal:tide_ckeditor diff --git a/modules/tide_ckeditor/tide_ckeditor.info.yml b/modules/tide_ckeditor/tide_ckeditor.info.yml index d54d5289d..7d0c25d96 100644 --- a/modules/tide_ckeditor/tide_ckeditor.info.yml +++ b/modules/tide_ckeditor/tide_ckeditor.info.yml @@ -2,7 +2,7 @@ name: Tide CKEDITOR5 Module type: module description: "Tide CKEDITOR5 Module" package: CKEditor 5 -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - drupal:ckeditor5 - ckeditor5_embedded_content:ckeditor5_embedded_content diff --git a/modules/tide_cms_support/tide_cms_support.info.yml b/modules/tide_cms_support/tide_cms_support.info.yml index 8a6756a68..b6c772960 100644 --- a/modules/tide_cms_support/tide_cms_support.info.yml +++ b/modules/tide_cms_support/tide_cms_support.info.yml @@ -2,4 +2,4 @@ name: Tide CMS Support description: Tide CMS Support Related Content. type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 diff --git a/modules/tide_dashboard/tide_dashboard.info.yml b/modules/tide_dashboard/tide_dashboard.info.yml index 84b24d6dd..160292985 100644 --- a/modules/tide_dashboard/tide_dashboard.info.yml +++ b/modules/tide_dashboard/tide_dashboard.info.yml @@ -2,7 +2,7 @@ name: Tide Dashboard description: Provides Dashboard for Tide distro. type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - admin_toolbar:admin_toolbar - admin_toolbar:admin_toolbar_tools diff --git a/modules/tide_data_driven_component/tide_data_driven_component.info.yml b/modules/tide_data_driven_component/tide_data_driven_component.info.yml index d2ba6b867..4c15c80a6 100644 --- a/modules/tide_data_driven_component/tide_data_driven_component.info.yml +++ b/modules/tide_data_driven_component/tide_data_driven_component.info.yml @@ -2,7 +2,7 @@ name: Data Driven Component type: module description: 'Data Driven Component content type and related configuration for Tide Drupal 8 distribution.' package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - dpc-sdp:tide_landing_page - dpc-sdp:tide_api diff --git a/modules/tide_demo_content/tide_demo_content.info.yml b/modules/tide_demo_content/tide_demo_content.info.yml index b788b1450..d086da29b 100644 --- a/modules/tide_demo_content/tide_demo_content.info.yml +++ b/modules/tide_demo_content/tide_demo_content.info.yml @@ -2,7 +2,7 @@ name: Tide Demo Content type: module description: Create demo content for Tide modules. package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - drupal:content_moderation - drupal:yaml_content diff --git a/modules/tide_edit_protection/tide_edit_protection.info.yml b/modules/tide_edit_protection/tide_edit_protection.info.yml index 521e7d3da..b5bfac954 100644 --- a/modules/tide_edit_protection/tide_edit_protection.info.yml +++ b/modules/tide_edit_protection/tide_edit_protection.info.yml @@ -1,7 +1,7 @@ name: Tide edit protection type: module description: Extends Node Edit Protection module to provide custom functions -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 package: tide dependencies: - tide_site:tide_site diff --git a/modules/tide_event/tide_event.info.yml b/modules/tide_event/tide_event.info.yml index 945e93be8..f3d48e39b 100644 --- a/modules/tide_event/tide_event.info.yml +++ b/modules/tide_event/tide_event.info.yml @@ -2,7 +2,7 @@ name: Tide Event description: 'Provides Event content type and related configuration. ' type: module package: Tide -core_version_requirement: ^9.5 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - drupal:datetime_range - drupal:menu_ui diff --git a/modules/tide_grant/tide_grant.info.yml b/modules/tide_grant/tide_grant.info.yml index b7aa4b2c4..87a73d666 100644 --- a/modules/tide_grant/tide_grant.info.yml +++ b/modules/tide_grant/tide_grant.info.yml @@ -2,7 +2,7 @@ name: Tide Grant type: module description: 'Provides Grant content type and related configuration. ' package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - tide_api:tide_api - tide_core:tide_core diff --git a/modules/tide_jira/tide_jira.info.yml b/modules/tide_jira/tide_jira.info.yml index b7c50ecea..ab5e0cb0f 100644 --- a/modules/tide_jira/tide_jira.info.yml +++ b/modules/tide_jira/tide_jira.info.yml @@ -1,7 +1,7 @@ name: Tide Jira type: module description: Tide Jira integration -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 package: tide dependencies: - jira_rest:jira_rest diff --git a/modules/tide_landing_page/tide_landing_page.info.yml b/modules/tide_landing_page/tide_landing_page.info.yml index 7ef9f3ca5..1f03cb9fe 100644 --- a/modules/tide_landing_page/tide_landing_page.info.yml +++ b/modules/tide_landing_page/tide_landing_page.info.yml @@ -2,7 +2,7 @@ name: Tide Landing Page description: 'Provides Landing Page content type and related configuration. ' type: module package: Tide -core_version_requirement: ^9.5 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - drupal:datetime - drupal:datetime_range diff --git a/modules/tide_media/modules/tide_media_file_overwrite/tide_media_file_overwrite.info.yml b/modules/tide_media/modules/tide_media_file_overwrite/tide_media_file_overwrite.info.yml index 40c975d0a..52a30216f 100644 --- a/modules/tide_media/modules/tide_media_file_overwrite/tide_media_file_overwrite.info.yml +++ b/modules/tide_media/modules/tide_media_file_overwrite/tide_media_file_overwrite.info.yml @@ -2,7 +2,7 @@ name: 'Tide Media File Overwrite' description: 'Gives the author option to overwrite file, and keeping the same filename when upload.' type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - dpc-sdp:tide_core - dpc-sdp:tide_media diff --git a/modules/tide_media/modules/tide_media_secure_files/tide_media_secure_files.info.yml b/modules/tide_media/modules/tide_media_secure_files/tide_media_secure_files.info.yml index 2ae618b32..6992b82bb 100644 --- a/modules/tide_media/modules/tide_media_secure_files/tide_media_secure_files.info.yml +++ b/modules/tide_media/modules/tide_media_secure_files/tide_media_secure_files.info.yml @@ -2,7 +2,7 @@ name: 'Tide Media Secure Files' description: 'Gives the author option to create secure files.' type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - dpc-sdp:tide_core - dpc-sdp:tide_media diff --git a/modules/tide_media/tide_media.info.yml b/modules/tide_media/tide_media.info.yml index 264491688..9167112cf 100644 --- a/modules/tide_media/tide_media.info.yml +++ b/modules/tide_media/tide_media.info.yml @@ -2,7 +2,7 @@ name: Tide Media description: 'Provides Media and related configuration. ' type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - crop:crop - drupal:field diff --git a/modules/tide_migration/tide_migration.info.yml b/modules/tide_migration/tide_migration.info.yml index 6aab42a0d..69c6ff977 100644 --- a/modules/tide_migration/tide_migration.info.yml +++ b/modules/tide_migration/tide_migration.info.yml @@ -1,7 +1,7 @@ name: Tide Migrations type: module description: The Tide Migration module provides the functionality to import content from various sources to SDP sites. -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 package: tide_migration dependencies: - migrate_plus:migrate_plus diff --git a/modules/tide_news/tide_news.info.yml b/modules/tide_news/tide_news.info.yml index 9bc706747..b0e169c71 100644 --- a/modules/tide_news/tide_news.info.yml +++ b/modules/tide_news/tide_news.info.yml @@ -2,7 +2,7 @@ name: Tide News description: 'Provides News content type and related configuration. ' type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - drupal:field - drupal:menu_ui diff --git a/modules/tide_oauth/tide_oauth.info.yml b/modules/tide_oauth/tide_oauth.info.yml index d1ac9804f..e48f52606 100644 --- a/modules/tide_oauth/tide_oauth.info.yml +++ b/modules/tide_oauth/tide_oauth.info.yml @@ -2,7 +2,7 @@ name: Tide Simple OAuth description: Provides Simple OAuth for Tide. type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - consumers:consumers - simple_oauth:simple_oauth diff --git a/modules/tide_paragraphs_enhanced_modal/tide_paragraphs_enhanced_modal.info.yml b/modules/tide_paragraphs_enhanced_modal/tide_paragraphs_enhanced_modal.info.yml index 7a026fe6c..68e76bf1c 100644 --- a/modules/tide_paragraphs_enhanced_modal/tide_paragraphs_enhanced_modal.info.yml +++ b/modules/tide_paragraphs_enhanced_modal/tide_paragraphs_enhanced_modal.info.yml @@ -2,7 +2,7 @@ name: Tide Paragraphs Enhanced Modal description: Provides enhancements for modal dialog of paragraph widget. type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - paragraphs:paragraphs config_devel: diff --git a/modules/tide_profile/tide_profile.info.yml b/modules/tide_profile/tide_profile.info.yml index 00d85af35..7ac1c9716 100644 --- a/modules/tide_profile/tide_profile.info.yml +++ b/modules/tide_profile/tide_profile.info.yml @@ -2,7 +2,7 @@ name: Tide Profile type: module description: 'Provides Profile content type and related configuration. ' package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - tide_core:tide_core - tide_landing_page:tide_landing_page diff --git a/modules/tide_publication/tide_publication.info.yml b/modules/tide_publication/tide_publication.info.yml index 5835c84c6..d86ee6e5e 100644 --- a/modules/tide_publication/tide_publication.info.yml +++ b/modules/tide_publication/tide_publication.info.yml @@ -2,7 +2,7 @@ name: Tide Publication type: module description: 'Provides Publication content type and related configuration. ' package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - tide_core:tide_landing_page - tide_core:tide_media diff --git a/modules/tide_search/modules/tide_data_pipeline/tests/modules/tide_data_pipelines_test/tide_data_pipelines_test.info.yml b/modules/tide_search/modules/tide_data_pipeline/tests/modules/tide_data_pipelines_test/tide_data_pipelines_test.info.yml index f7e218bd0..a8987a7ea 100644 --- a/modules/tide_search/modules/tide_data_pipeline/tests/modules/tide_data_pipelines_test/tide_data_pipelines_test.info.yml +++ b/modules/tide_search/modules/tide_data_pipeline/tests/modules/tide_data_pipelines_test/tide_data_pipelines_test.info.yml @@ -1,7 +1,7 @@ name: Data Pipelines - Test Pipelines package: Testing description: 'Provides tests data set plugins' -core_version_requirement: ^10.1 +core_version_requirement: ^10.5 || ^11 php: 8.0 type: module dependencies: diff --git a/modules/tide_search/modules/tide_data_pipeline/tide_data_pipeline.info.yml b/modules/tide_search/modules/tide_data_pipeline/tide_data_pipeline.info.yml index 09a4aeafe..5fc40cb26 100644 --- a/modules/tide_search/modules/tide_data_pipeline/tide_data_pipeline.info.yml +++ b/modules/tide_search/modules/tide_data_pipeline/tide_data_pipeline.info.yml @@ -1,7 +1,7 @@ name: Tide Data Pipeline type: module description: Data pipeline for SDP -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 package: data_pipelines dependencies: - data_pipelines:data_pipelines diff --git a/modules/tide_search/tide_search.info.yml b/modules/tide_search/tide_search.info.yml index 8b6492193..157e863e3 100644 --- a/modules/tide_search/tide_search.info.yml +++ b/modules/tide_search/tide_search.info.yml @@ -2,7 +2,7 @@ name: Tide Search description: 'Provides Search and related configuration.' type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - elasticsearch_connector:elasticsearch_connector - tide_core:tide_core diff --git a/modules/tide_site/modules/tide_site_preview/tide_site_preview.info.yml b/modules/tide_site/modules/tide_site_preview/tide_site_preview.info.yml index 030094a5a..1729f83c2 100644 --- a/modules/tide_site/modules/tide_site_preview/tide_site_preview.info.yml +++ b/modules/tide_site/modules/tide_site_preview/tide_site_preview.info.yml @@ -2,7 +2,7 @@ name: 'Tide Site - Preview links' description: Provides frontend preview links for content managed with Tide Site. type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - dpc-sdp:tide_site - dpc-sdp:tide_api diff --git a/modules/tide_site/modules/tide_site_simple_sitemap/tide_site_simple_sitemap.info.yml b/modules/tide_site/modules/tide_site_simple_sitemap/tide_site_simple_sitemap.info.yml index 30115b77b..aad2aa7d5 100644 --- a/modules/tide_site/modules/tide_site_simple_sitemap/tide_site_simple_sitemap.info.yml +++ b/modules/tide_site/modules/tide_site_simple_sitemap/tide_site_simple_sitemap.info.yml @@ -2,7 +2,7 @@ name: 'Tide Site - Simple Sitemap' description: 'Functionality to extend Simple Sitemap with support of multiple sites.' type: module package: Tide -core_version_requirement: ^9.4 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - dpc-sdp:tide_site - simple_sitemap:simple_sitemap diff --git a/modules/tide_site/modules/tide_site_theming/tide_site_theming.info.yml b/modules/tide_site/modules/tide_site_theming/tide_site_theming.info.yml index aa5eda36f..aa32a0a1f 100644 --- a/modules/tide_site/modules/tide_site_theming/tide_site_theming.info.yml +++ b/modules/tide_site/modules/tide_site_theming/tide_site_theming.info.yml @@ -2,7 +2,7 @@ name: 'Tide Site Theming' description: 'Functionality to apply theming to ripple front end.' type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - dpc-sdp:tide_site - key_value_field:key_value_field diff --git a/modules/tide_site/tide_site.info.yml b/modules/tide_site/tide_site.info.yml index 8bd64888a..aa3889188 100644 --- a/modules/tide_site/tide_site.info.yml +++ b/modules/tide_site/tide_site.info.yml @@ -2,7 +2,7 @@ name: 'Tide site' description: 'Functionality to allow post content to multiple sites and sections.' type: module package: Tide -core_version_requirement: ^9.5 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - drupal:field - drupal:field_ui diff --git a/modules/tide_site_alert/tide_site_alert.info.yml b/modules/tide_site_alert/tide_site_alert.info.yml index 47dec39c8..1a294050d 100644 --- a/modules/tide_site_alert/tide_site_alert.info.yml +++ b/modules/tide_site_alert/tide_site_alert.info.yml @@ -1,7 +1,7 @@ name: 'Tide site alert' type: module description: 'The extension of Site alert module.' -core_version_requirement: ^9.4 || ^10 +core_version_requirement: ^10.5 || ^11 package: Tide dependencies: - site_alert:site_alert diff --git a/modules/tide_site_restriction/tide_site_restriction.info.yml b/modules/tide_site_restriction/tide_site_restriction.info.yml index f958b4094..fba60c0be 100644 --- a/modules/tide_site_restriction/tide_site_restriction.info.yml +++ b/modules/tide_site_restriction/tide_site_restriction.info.yml @@ -2,7 +2,7 @@ name: Tide Site Restriction type: module description: 'Provides user restriction by Sites.' package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - tide_core:tide_core - tide_core:tide_site diff --git a/modules/tide_test/tide_test.info.yml b/modules/tide_test/tide_test.info.yml index 6b3d3e92c..3e0cb14f9 100644 --- a/modules/tide_test/tide_test.info.yml +++ b/modules/tide_test/tide_test.info.yml @@ -2,7 +2,7 @@ name: Tide Test description: 'Provides Test content type and related configuration. ' type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - drupal:field - drupal:media diff --git a/modules/tide_tfa/tide_tfa.info.yml b/modules/tide_tfa/tide_tfa.info.yml index ad80f1210..9d1a12f16 100644 --- a/modules/tide_tfa/tide_tfa.info.yml +++ b/modules/tide_tfa/tide_tfa.info.yml @@ -1,7 +1,7 @@ name: 'Tide TFA' type: module description: 'The extension of TFA module.' -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 package: Tide dependencies: - drupal:real_aes diff --git a/modules/tide_ui_restriction/tide_ui_restriction.info.yml b/modules/tide_ui_restriction/tide_ui_restriction.info.yml index 2f0435c16..9572a36f3 100644 --- a/modules/tide_ui_restriction/tide_ui_restriction.info.yml +++ b/modules/tide_ui_restriction/tide_ui_restriction.info.yml @@ -1,7 +1,7 @@ name: Tide UI restriction type: module description: Admin UI restriction -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 package: tide dependencies: - config_perms:config_perms diff --git a/modules/tide_user_expire/tide_user_expire.info.yml b/modules/tide_user_expire/tide_user_expire.info.yml index f2b54778a..e5da25f76 100644 --- a/modules/tide_user_expire/tide_user_expire.info.yml +++ b/modules/tide_user_expire/tide_user_expire.info.yml @@ -2,7 +2,7 @@ name: Tide User Expire type: module package: Tide description: An extension of user_expire module. -core_version_requirement: ^8.9 || ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - dpc-sdp:tide_core - user_expire:user_expire diff --git a/modules/tide_webform/tide_webform.info.yml b/modules/tide_webform/tide_webform.info.yml index bf42d1b5d..d88d682cd 100644 --- a/modules/tide_webform/tide_webform.info.yml +++ b/modules/tide_webform/tide_webform.info.yml @@ -2,7 +2,7 @@ name: Tide Webform description: 'Provides Webform and related configuration.' type: module package: Tide -core_version_requirement: ^9.5 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - config_filter:config_filter - config_ignore:config_ignore diff --git a/modules/tide_workflow_notification/tide_workflow_notification.info.yml b/modules/tide_workflow_notification/tide_workflow_notification.info.yml index 3bea37e04..0718a2e9e 100644 --- a/modules/tide_workflow_notification/tide_workflow_notification.info.yml +++ b/modules/tide_workflow_notification/tide_workflow_notification.info.yml @@ -2,7 +2,7 @@ name: Tide Workflow Notification description: Functionality to send notifications upon workflow state changes. type: module package: Tide -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - queue_mail:queue_mail config_devel: diff --git a/scripts/composer/DrupalSettings.php b/scripts/composer/DrupalSettings.php index 433230376..5ed87663e 100644 --- a/scripts/composer/DrupalSettings.php +++ b/scripts/composer/DrupalSettings.php @@ -96,6 +96,7 @@ public static function delete(Event $event) { * Return content for default Drupal settings file. */ protected static function getDefaultDrupalSettingsContent($options) { + $db_port = $options['mysql_port'] ?: 3306; return << '${options['mysql_user']}', 'password' => '${options['mysql_password']}', 'host' => '${options['mysql_host']}', - 'port' => '${options['mysql_port']}', + 'port' => '$db_port', 'driver' => 'mysql', 'prefix' => '${options['mysql_prefix']}', ], @@ -126,6 +127,9 @@ protected static function getDefaultDrupalSettingsContent($options) { // Allow installing extensions under tests directory. \$settings['extension_discovery_scan_tests'] = TRUE; +// Hash Salt. +\$settings['hash_salt'] = hash('sha256', getenv('LAGOON_PROJECT')); + FILE; } diff --git a/tide_core.info.yml b/tide_core.info.yml index 416ea46e4..4841bb5cc 100644 --- a/tide_core.info.yml +++ b/tide_core.info.yml @@ -2,12 +2,11 @@ name: 'Tide Core' description: 'Provides core components required by other features.' type: module package: Tide -core_version_requirement: ^10 +core_version_requirement: ^10.5 || ^11 dependencies: - address:address - allowed_formats:allowed_formats - better_exposed_filters:better_exposed_filters - - ckeditor5_embedded_content:ckeditor5_embedded_content - clamav:clamav - config_split:config_split - config_update:config_update @@ -16,7 +15,6 @@ dependencies: - drupal:block - drupal:block_content - drupal:content_moderation - - drupal:ckeditor5 - drupal:datetime_range - drupal:dynamic_page_cache - drupal:entity_embed From 4da92fbd30663ba0632affb823f328b47a1a5700 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Mon, 19 Jan 2026 18:45:02 +1100 Subject: [PATCH 03/16] update --- composer.json | 13 ++++++++++--- config/install/editor.editor.admin_text.yml | 5 +++-- config/install/editor.editor.rich_text.yml | 5 +++-- config/install/editor.editor.summary_text.yml | 5 +++-- .../field.storage.block_content.body.yml | 18 ++++++++++++++++++ config/install/field.storage.node.body.yml | 18 ++++++++++++++++++ .../tide_data_driven_component.install | 2 +- .../tide_landing_page.install | 4 ++-- modules/tide_search/tide_search.install | 2 +- .../tide_user_expire/tide_user_expire.install | 2 +- .../views/field/SortedRolesViewsField.php | 3 ++- src/TideCoreOperation.php | 2 +- tide_core.install | 2 +- 13 files changed, 64 insertions(+), 17 deletions(-) create mode 100644 config/install/field.storage.block_content.body.yml create mode 100644 config/install/field.storage.node.body.yml diff --git a/composer.json b/composer.json index 05499c9f8..5eaeb925d 100644 --- a/composer.json +++ b/composer.json @@ -66,8 +66,9 @@ "drupal/token_filter": "^2.0", "drupal/twig_field_value": "^2.0", "drupal/views_data_export": "^1.8", - "drupal/views_menu_children_filter": "^3.0@RC", + "drupal/views_menu_children_filter": "^4.2", "drupal/viewsreference": "^2.0@beta", + "drupal/config_filter": "^2.7", "drupal/workbench": "^1.4", "drupal/dynamic_entity_reference": "^3.0", "drupal/scheduled_transitions": "2.5", @@ -75,6 +76,7 @@ "drupal/queue_mail": "^1.5", "drupal/token": "^1.15", "drupal/user_created_by_field": "dev-project-update-bot-only as 1.1.3", + "drupal/ckeditor5_embedded_content": "dev-3567622-upgrade-for-d11 as 2.0.2", "drupal/username_enumeration_prevention": "^1.3", "drupal/quick_node_clone": "^1.16", "drupal/content_lock": "^3.0", @@ -130,7 +132,7 @@ "drupal": { "type": "composer", "url": "https://packages.drupal.org/8", - "exclude": ["drupal/token_conditions", "drupal/user_created_by_field", "drupal/yaml_content"] + "exclude": ["drupal/token_conditions", "drupal/user_created_by_field", "drupal/yaml_content","drupal/ckeditor5_embedded_content"] }, "choices": { "_webform": true, @@ -347,6 +349,11 @@ "type": "vcs", "no-api": true, "url": "https://git.drupalcode.org/issue/yaml_content-3435777.git" + }, + "drupal/ckeditor5_embedded_content": { + "type": "vcs", + "no-api": true, + "url": "https://git.drupalcode.org/issue/ckeditor5_embedded_content-3567622.git" } }, "extra": { @@ -372,7 +379,7 @@ "Exporting webform submission as batch does not allowed for extended field due to static method - https://www.drupal.org/project/webform/issues/3348336#comment-16202432": "https://www.drupal.org/files/issues/2025-07-23/exporting-webform-submission-static-batch-process-3348336-9.patch" }, "drupal/password_policy": { - "Add password validation to the user entity as a constraint - https://www.drupal.org/project/password_policy/issues/2941526#comment-14938934": "https://www.drupal.org/files/issues/2023-02-24/password_policy-move-password-validation-to-user-entity-2941526-10.patch" + "Add password validation to the user entity as a constraint - https://www.drupal.org/project/password_policy/issues/2941526#comment-16412969": "https://www.drupal.org/files/issues/2026-01-15/password_policy-move-password-validation-to-user-entity-2941526-12.patch" }, "drupal/search_api": { "Provide drush support to index a specific entity - https://www.drupal.org/project/search_api/issues/3016809": "https://www.drupal.org/files/issues/2024-11-25/search_api-index-specific-items-3016809-10.patch" diff --git a/config/install/editor.editor.admin_text.yml b/config/install/editor.editor.admin_text.yml index b5bebc070..37d8f7936 100644 --- a/config/install/editor.editor.admin_text.yml +++ b/config/install/editor.editor.admin_text.yml @@ -80,8 +80,9 @@ settings: - '' - '

' ckeditor5_list: - reversed: false - startIndex: true + properties: + reversed: false + startIndex: true ckeditor5_alignment: enabled_alignments: - left diff --git a/config/install/editor.editor.rich_text.yml b/config/install/editor.editor.rich_text.yml index 5c83004c8..4811ab916 100644 --- a/config/install/editor.editor.rich_text.yml +++ b/config/install/editor.editor.rich_text.yml @@ -94,8 +94,9 @@ settings: - '' - '

' ckeditor5_list: - reversed: true - startIndex: true + properties: + reversed: true + startIndex: true ckeditor5_alignment: enabled_alignments: - left diff --git a/config/install/editor.editor.summary_text.yml b/config/install/editor.editor.summary_text.yml index 5c141929e..d7cf7efa1 100644 --- a/config/install/editor.editor.summary_text.yml +++ b/config/install/editor.editor.summary_text.yml @@ -56,8 +56,9 @@ settings: - '

' - '

' ckeditor5_list: - reversed: false - startIndex: true + properties: + reversed: false + startIndex: true ckeditor5_alignment: enabled_alignments: - left diff --git a/config/install/field.storage.block_content.body.yml b/config/install/field.storage.block_content.body.yml new file mode 100644 index 000000000..f7c504d04 --- /dev/null +++ b/config/install/field.storage.block_content.body.yml @@ -0,0 +1,18 @@ +langcode: en +status: true +dependencies: + module: + - block_content + - text +id: block_content.body +field_name: body +entity_type: block_content +type: text_with_summary +settings: { } +module: text +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: true +custom_storage: false diff --git a/config/install/field.storage.node.body.yml b/config/install/field.storage.node.body.yml new file mode 100644 index 000000000..73edd1666 --- /dev/null +++ b/config/install/field.storage.node.body.yml @@ -0,0 +1,18 @@ +langcode: en +status: true +dependencies: + module: + - node + - text +id: node.body +field_name: body +entity_type: node +type: text_with_summary +settings: { } +module: text +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: true +custom_storage: false diff --git a/modules/tide_data_driven_component/tide_data_driven_component.install b/modules/tide_data_driven_component/tide_data_driven_component.install index 5939542b6..824eb1918 100644 --- a/modules/tide_data_driven_component/tide_data_driven_component.install +++ b/modules/tide_data_driven_component/tide_data_driven_component.install @@ -9,7 +9,7 @@ * Adds json text area field to data driven component. */ function tide_data_driven_component_update_10001() { - module_load_include('inc', 'tide_core', 'includes/helpers'); + \Drupal::moduleHandler()->loadInclude('tide_core', 'inc', 'includes/helpers'); $config_location = [\Drupal::service('extension.list.module')->getPath('tide_data_driven_component') . '/config/install']; $configs = [ diff --git a/modules/tide_landing_page/tide_landing_page.install b/modules/tide_landing_page/tide_landing_page.install index f045b135e..05ebebda6 100644 --- a/modules/tide_landing_page/tide_landing_page.install +++ b/modules/tide_landing_page/tide_landing_page.install @@ -100,7 +100,7 @@ function tide_landing_page_update_10102() { * Remove style option field from call to action component. */ function tide_landing_page_update_10103() { - module_load_include('inc', 'tide_core', 'includes/helpers'); + \Drupal::moduleHandler()->loadInclude('tide_core', 'inc', 'includes/helpers'); $config_location = [\Drupal::service('extension.list.module')->getPath('tide_landing_page') . '/config/install']; // Delete field configuration manually. $field_names = ['field_paragraph_cta_style']; @@ -133,7 +133,7 @@ function tide_landing_page_update_10103() { * Change weight of paragraph types. */ function tide_landing_page_update_10104() { - module_load_include('inc', 'tide_core', 'includes/helpers'); + \Drupal::moduleHandler()->loadInclude('tide_core', 'inc', 'includes/helpers'); $config_location = [\Drupal::service('extension.list.module')->getPath('tide_landing_page') . '/config/install']; $config = 'field.field.node.landing_page.field_landing_page_component'; // Read only from /config/install. diff --git a/modules/tide_search/tide_search.install b/modules/tide_search/tide_search.install index f3d786840..990069317 100644 --- a/modules/tide_search/tide_search.install +++ b/modules/tide_search/tide_search.install @@ -74,7 +74,7 @@ function tide_search_update_10002() { * Adds field_above_results_content field to search listing. */ function tide_search_update_10003() { - module_load_include('inc', 'tide_core', 'includes/helpers'); + \Drupal::moduleHandler()->loadInclude('tide_core', 'inc', 'includes/helpers'); $config_location = [\Drupal::service('extension.list.module')->getPath('tide_search') . '/config/optional']; $configs = [ diff --git a/modules/tide_user_expire/tide_user_expire.install b/modules/tide_user_expire/tide_user_expire.install index 07e202dcd..d20012724 100644 --- a/modules/tide_user_expire/tide_user_expire.install +++ b/modules/tide_user_expire/tide_user_expire.install @@ -16,7 +16,7 @@ function tide_user_expire_uninstall() { * Import user expire settings. */ function tide_user_expire_update_10001() { - module_load_include('inc', 'tide_core', 'includes/helpers'); + \Drupal::moduleHandler()->loadInclude('tide_core', 'inc', 'includes/helpers'); $config_id = 'user_expire.settings'; $config = \Drupal::configFactory()->getEditable($config_id); $config_location = [\Drupal::service('extension.list.module')->getPath('tide_user_expire') . '/config/optional']; diff --git a/src/Plugin/views/field/SortedRolesViewsField.php b/src/Plugin/views/field/SortedRolesViewsField.php index 8e4ac36bf..2eba13d04 100644 --- a/src/Plugin/views/field/SortedRolesViewsField.php +++ b/src/Plugin/views/field/SortedRolesViewsField.php @@ -3,6 +3,7 @@ namespace Drupal\tide_core\Plugin\views\field; use Drupal\user\Plugin\views\field\Roles; +use Drupal\user\Entity\Role; /** * A handler to provide a list of roles sorted alphabetically. @@ -28,7 +29,7 @@ public function preRender(&$values) { } if ($uids) { - $roles = user_roles(); + $roles = Role::loadMultiple(); asort($roles); $result = $this->database->query( 'SELECT [u].[entity_id] AS [uid], [u].[roles_target_id] AS [rid] diff --git a/src/TideCoreOperation.php b/src/TideCoreOperation.php index fbf7b78f5..16c939c0c 100644 --- a/src/TideCoreOperation.php +++ b/src/TideCoreOperation.php @@ -203,7 +203,7 @@ public function addBusinessFieldsToUserAccountForm() { * Updates files view. */ public function useCustomFilesView() { - module_load_include('inc', 'tide_core', 'includes/helpers'); + \Drupal::moduleHandler()->loadInclude('tide_core', 'inc', 'includes/helpers'); $config_location = [\Drupal::service('extension.list.module')->getPath('tide_core') . '/config/optional']; $config_read = _tide_read_config('views.view.enhanced_files', $config_location, TRUE); $storage = \Drupal::entityTypeManager()->getStorage('view'); diff --git a/tide_core.install b/tide_core.install index a0c0917c6..1d1af49f0 100644 --- a/tide_core.install +++ b/tide_core.install @@ -119,7 +119,7 @@ function tide_core_update_10002() { * Add description field to accordion. */ function tide_core_update_10003() { - module_load_include('inc', 'tide_core', 'includes/helpers'); + \Drupal::moduleHandler()->loadInclude('tide_core', 'inc', 'includes/helpers'); $configs = [ 'field.field.paragraph.accordion.field_paragraph_body' => 'field_config', ]; From fec5ce6fc99004c0d8d34b4016f190d8560765fc Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Wed, 21 Jan 2026 15:23:50 +1100 Subject: [PATCH 04/16] update ckeditor_templates --- composer.json | 3 ++- .../ckeditor_templates.ckeditor_templates.blockquote.yml | 4 +++- .../ckeditor_templates.ckeditor_templates.primary_button.yml | 4 +++- ...ckeditor_templates.ckeditor_templates.secondary_button.yml | 4 +++- tide_core.info.yml | 2 ++ 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 5eaeb925d..73af3a536 100644 --- a/composer.json +++ b/composer.json @@ -77,6 +77,7 @@ "drupal/token": "^1.15", "drupal/user_created_by_field": "dev-project-update-bot-only as 1.1.3", "drupal/ckeditor5_embedded_content": "dev-3567622-upgrade-for-d11 as 2.0.2", + "drupal/embedded_content": "^2.0.3", "drupal/username_enumeration_prevention": "^1.3", "drupal/quick_node_clone": "^1.16", "drupal/content_lock": "^3.0", @@ -359,7 +360,7 @@ "extra": { "patches": { "drupal/admin_audit_trail": { - "Add an option to allow logging in CLI - https://www.drupal.org/project/admin_audit_trail/issues/3263615#comment-16351387": "https://www.drupal.org/files/issues/2025-11-19/3263615-admin_audit_trail-option-for-cli-8.patch" + "Add an option to allow logging in CLI - https://www.drupal.org/project/admin_audit_trail/issues/3263615#comment-16351387": "https://www.drupal.org/files/issues/2026-01-15/3263615-admin_audit_trail-option-for-cli-10.patch" }, "drupal/migrate_plus": { "Simple XML broken with UTF-16LE - https://www.drupal.org/project/migrate_plus/issues/3051858#comment-15138496": "https://www.drupal.org/files/issues/2023-07-06/3051858-migrate_plus-simplexml_remove_trim-5.patch" diff --git a/config/install/ckeditor_templates.ckeditor_templates.blockquote.yml b/config/install/ckeditor_templates.ckeditor_templates.blockquote.yml index 6c4b163e4..04233117c 100644 --- a/config/install/ckeditor_templates.ckeditor_templates.blockquote.yml +++ b/config/install/ckeditor_templates.ckeditor_templates.blockquote.yml @@ -5,7 +5,9 @@ id: blockquote label: Blockquote description: 'Blockquote with 2 lines of caption' thumb: { } -code: "
\r\n

Berios sim destrum facientota nis ex eost aut prae vendis explam aliquis dolorpo rrorem reptaep elenis net.

\r\n\r\n
Her Excellency the Honourable Linda Dessau AC
\r\nGovernor of Victoria
\r\n
\r\n" +code: + value: '

Berios sim destrum facientota nis ex eost aut prae vendis explam aliquis dolorpo rrorem reptaep elenis net.

Her Excellency the Honourable Linda Dessau AC
Governor of Victoria
' + format: rich_text formats: rich_text: rich_text summary_text: summary_text diff --git a/config/install/ckeditor_templates.ckeditor_templates.primary_button.yml b/config/install/ckeditor_templates.ckeditor_templates.primary_button.yml index a8a6671dc..b1ea87d74 100644 --- a/config/install/ckeditor_templates.ckeditor_templates.primary_button.yml +++ b/config/install/ckeditor_templates.ckeditor_templates.primary_button.yml @@ -5,7 +5,9 @@ id: primary_button label: 'Primary Button' description: '' thumb: { } -code: '

Primary button text

' +code: + value: '

Primary button text

' + format: rich_text formats: rich_text: rich_text summary_text: summary_text diff --git a/config/install/ckeditor_templates.ckeditor_templates.secondary_button.yml b/config/install/ckeditor_templates.ckeditor_templates.secondary_button.yml index 77609b6e8..7a7935412 100644 --- a/config/install/ckeditor_templates.ckeditor_templates.secondary_button.yml +++ b/config/install/ckeditor_templates.ckeditor_templates.secondary_button.yml @@ -5,7 +5,9 @@ id: secondary_button label: 'Secondary Button' description: '' thumb: { } -code: '

Secondary button text

' +code: + value: '

Secondary button text

' + format: rich_text formats: rich_text: rich_text summary_text: summary_text diff --git a/tide_core.info.yml b/tide_core.info.yml index 4841bb5cc..be4c1bd70 100644 --- a/tide_core.info.yml +++ b/tide_core.info.yml @@ -41,6 +41,8 @@ dependencies: - entity_browser:entity_browser_entity_form - entity_reference_revisions:entity_reference_revisions - quick_node_clone:quick_node_clone + - ckeditor5_embedded_content:ckeditor5_embedded_content + - embedded_content:embedded_content - admin_audit_trail:admin_audit_trail - admin_audit_trail:admin_audit_trail_auth - admin_audit_trail:admin_audit_trail_node From b4f1f7721510df33379158d18eeea0dcff189674 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Wed, 21 Jan 2026 16:18:40 +1100 Subject: [PATCH 05/16] remove tide_test module from composer.json --- composer.dev.json | 97 +------------------ composer.json | 3 +- ...emplates.ckeditor_templates.blockquote.yml | 1 + ...ates.ckeditor_templates.primary_button.yml | 1 + ...es.ckeditor_templates.secondary_button.yml | 1 + scripts/drupal-init-module.sh | 4 - 6 files changed, 6 insertions(+), 101 deletions(-) diff --git a/composer.dev.json b/composer.dev.json index e03985f0c..579a34ac3 100644 --- a/composer.dev.json +++ b/composer.dev.json @@ -36,7 +36,6 @@ "php-http/message": "~1.13", "php-http/message-factory": "^1.1", "guzzlehttp/psr7": "^2.8.0", - "dpc-sdp/tide_test": "^4.0.0", "drupal/test_helpers": "^1.2" }, "provide": { @@ -81,106 +80,12 @@ "no-api": true, "url": "https://github.com/dpc-sdp/tide.git" }, - "dpc-sdp/tide_alert": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_alert.git" - }, - "dpc-sdp/tide_api": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_api.git" - }, - "dpc-sdp/tide_authenticated_content": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_authenticated_content.git" - }, "dpc-sdp/tide_core": { "type": "vcs", "no-api": true, "url": "https://github.com/dpc-sdp/tide_core.git" }, - "dpc-sdp/tide_data_driven_component": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_data_driven_component.git" - }, - "dpc-sdp/tide_demo_content": { - "url": "https://github.com/dpc-sdp/tide_demo_content.git", - "type": "vcs", - "no-api": true - }, - "dpc-sdp/tide_event": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_event.git" - }, - "dpc-sdp/tide_event_atdw": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_event_atdw.git" - }, - "dpc-sdp/tide_grant": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_grant.git" - }, - "dpc-sdp/tide_landing_page": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_landing_page.git" - }, - "dpc-sdp/tide_media": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_media.git" - }, - "dpc-sdp/tide_monsido": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_monsido.git" - }, - "dpc-sdp/tide_page": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_page.git" - }, - "dpc-sdp/tide_profile": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_profile.git" - }, - "dpc-sdp/tide_publication": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_publication.git" - }, - "dpc-sdp/tide_news": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_news.git" - }, - "dpc-sdp/tide_search": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_search.git" - }, - "dpc-sdp/tide_site": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_site.git" - }, - "dpc-sdp/tide_test": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_test.git" - }, - "dpc-sdp/tide_webform": { - "type": "vcs", - "no-api": true, - "url": "https://github.com/dpc-sdp/tide_webform.git" - }, + "library/dropzone": { "type": "package", "package": { diff --git a/composer.json b/composer.json index 73af3a536..33156a416 100644 --- a/composer.json +++ b/composer.json @@ -439,7 +439,8 @@ "config": { "allow-plugins": { "composer/installers": true, - "oomphinc/composer-installers-extender": true + "oomphinc/composer-installers-extender": true, + "drupal/core-composer-scaffold": true }, "audit": { "block-insecure": false diff --git a/config/install/ckeditor_templates.ckeditor_templates.blockquote.yml b/config/install/ckeditor_templates.ckeditor_templates.blockquote.yml index 04233117c..46691d43c 100644 --- a/config/install/ckeditor_templates.ckeditor_templates.blockquote.yml +++ b/config/install/ckeditor_templates.ckeditor_templates.blockquote.yml @@ -13,3 +13,4 @@ formats: summary_text: summary_text admin_text: admin_text weight: 0 +thumb_alternative: '' diff --git a/config/install/ckeditor_templates.ckeditor_templates.primary_button.yml b/config/install/ckeditor_templates.ckeditor_templates.primary_button.yml index b1ea87d74..c7b6820cf 100644 --- a/config/install/ckeditor_templates.ckeditor_templates.primary_button.yml +++ b/config/install/ckeditor_templates.ckeditor_templates.primary_button.yml @@ -13,3 +13,4 @@ formats: summary_text: summary_text admin_text: admin_text weight: 1 +thumb_alternative: '' diff --git a/config/install/ckeditor_templates.ckeditor_templates.secondary_button.yml b/config/install/ckeditor_templates.ckeditor_templates.secondary_button.yml index 7a7935412..eb9f13dc2 100644 --- a/config/install/ckeditor_templates.ckeditor_templates.secondary_button.yml +++ b/config/install/ckeditor_templates.ckeditor_templates.secondary_button.yml @@ -13,3 +13,4 @@ formats: summary_text: summary_text admin_text: admin_text weight: 2 +thumb_alternative: '' diff --git a/scripts/drupal-init-module.sh b/scripts/drupal-init-module.sh index 8d3f6b0e0..4d4534c74 100755 --- a/scripts/drupal-init-module.sh +++ b/scripts/drupal-init-module.sh @@ -13,7 +13,6 @@ INSTALL_SUGGEST=${INSTALL_SUGGEST:-} COMPOSER=${COMPOSER:-composer.build.json} APP=${APP:-/app} WEBROOT=${WEBROOT:-docroot} -TEST_PACKAGE_NAME=${TEST_PACKAGE_NAME:-tide_test} TEST_PACKAGE_VERSION=${TEST_PACKAGE_VERSION:-^4.0} URI=${LOCALDEV_URL:-dev} @@ -32,9 +31,6 @@ else exit 0 fi -# Require an additional test package. -[ "${PACKAGE_NAME}" != "${TEST_PACKAGE_NAME}" ] && composer require --prefer-source ${PACKAGE_ORG}/${TEST_PACKAGE_NAME}:${TEST_PACKAGE_VERSION} - # Require module from local repository. composer require --prefer-source ${PACKAGE_ORG}/${PACKAGE_NAME}:@dev From 18716ebb809d6244b320ef0367d42fcb45b535c3 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Thu, 22 Jan 2026 10:02:28 +1100 Subject: [PATCH 06/16] fixed media widget --- .../install/views.view.tide_media_browser.yml | 150 ------------------ config/optional/views.view.media.yml | 75 --------- 2 files changed, 225 deletions(-) diff --git a/config/install/views.view.tide_media_browser.yml b/config/install/views.view.tide_media_browser.yml index f1e2c92c9..597bcc9b5 100644 --- a/config/install/views.view.tide_media_browser.yml +++ b/config/install/views.view.tide_media_browser.yml @@ -918,72 +918,6 @@ display: multi_type: separator separator: ', ' field_api_classes: false - filemime_1: - id: filemime_1 - table: file_managed - field: filemime - relationship: field_secure_file_target_id - group_type: group - admin_label: '' - entity_type: file - entity_field: filemime - plugin_id: field - label: 'File MIME type' - exclude: true - alter: - alter_text: false - text: '' - make_link: false - path: '' - absolute: false - external: false - replace_spaces: false - path_case: none - trim_whitespace: false - alt: '' - rel: '' - link_class: '' - prefix: '' - suffix: '' - target: '' - nl2br: false - max_length: 0 - word_boundary: true - ellipsis: true - more_link: false - more_link_text: '' - more_link_path: '' - strip_tags: false - trim: false - preserve_tags: '' - html: false - element_type: '' - element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: true - element_wrapper_type: '' - element_wrapper_class: '' - element_default_classes: true - empty: '' - hide_empty: false - empty_zero: false - hide_alter_empty: true - click_sort_column: value - type: file_filemime - settings: - link_to_file: false - filemime_image: false - group_column: value - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: separator - separator: ', ' - field_api_classes: false thumbnail__target_id: id: thumbnail__target_id table: media_field_data @@ -1455,15 +1389,6 @@ display: admin_label: File plugin_id: standard required: false - field_secure_file_target_id: - id: field_secure_file_target_id - table: media__field_secure_file - field: field_secure_file_target_id - relationship: none - group_type: group - admin_label: 'file from field_secure_file' - plugin_id: standard - required: false display_description: '' display_extenders: { } cache_metadata: @@ -2651,72 +2576,6 @@ display: multi_type: separator separator: ', ' field_api_classes: false - filemime_1: - id: filemime_1 - table: file_managed - field: filemime - relationship: field_secure_file_target_id - group_type: group - admin_label: '' - entity_type: file - entity_field: filemime - plugin_id: field - label: 'File MIME type' - exclude: true - alter: - alter_text: false - text: '' - make_link: false - path: '' - absolute: false - external: false - replace_spaces: false - path_case: none - trim_whitespace: false - alt: '' - rel: '' - link_class: '' - prefix: '' - suffix: '' - target: '' - nl2br: false - max_length: 0 - word_boundary: true - ellipsis: true - more_link: false - more_link_text: '' - more_link_path: '' - strip_tags: false - trim: false - preserve_tags: '' - html: false - element_type: '' - element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: true - element_wrapper_type: '' - element_wrapper_class: '' - element_default_classes: true - empty: '' - hide_empty: false - empty_zero: false - hide_alter_empty: true - click_sort_column: value - type: file_filemime - settings: - link_to_file: false - filemime_image: false - group_column: value - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: separator - separator: ', ' - field_api_classes: false thumbnail__target_id: id: thumbnail__target_id table: media_field_data @@ -3062,15 +2921,6 @@ display: admin_label: File plugin_id: standard required: false - field_secure_file_target_id: - id: field_secure_file_target_id - table: media__field_secure_file - field: field_secure_file_target_id - relationship: none - group_type: group - admin_label: 'file from field_secure_file' - plugin_id: standard - required: false display_description: '' display_extenders: { } cache_metadata: diff --git a/config/optional/views.view.media.yml b/config/optional/views.view.media.yml index dca4d6f0f..81f7b5162 100644 --- a/config/optional/views.view.media.yml +++ b/config/optional/views.view.media.yml @@ -90,72 +90,6 @@ display: multi_type: separator separator: ', ' field_api_classes: false - filemime_1: - id: filemime_1 - table: file_managed - field: filemime - relationship: field_secure_file_target_id - group_type: group - admin_label: '' - entity_type: file - entity_field: filemime - plugin_id: field - label: 'File MIME type' - exclude: true - alter: - alter_text: false - text: '' - make_link: false - path: '' - absolute: false - external: false - replace_spaces: false - path_case: none - trim_whitespace: false - alt: '' - rel: '' - link_class: '' - prefix: '' - suffix: '' - target: '' - nl2br: false - max_length: 0 - word_boundary: true - ellipsis: true - more_link: false - more_link_text: '' - more_link_path: '' - strip_tags: false - trim: false - preserve_tags: '' - html: false - element_type: '' - element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: true - element_wrapper_type: '' - element_wrapper_class: '' - element_default_classes: true - empty: '' - hide_empty: false - empty_zero: false - hide_alter_empty: true - click_sort_column: value - type: file_filemime - settings: - link_to_file: false - filemime_image: false - group_column: value - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: separator - separator: ', ' - field_api_classes: false thumbnail__target_id: id: thumbnail__target_id table: media_field_data @@ -967,15 +901,6 @@ display: admin_label: 'file from field_media_file' plugin_id: standard required: false - field_secure_file_target_id: - id: field_secure_file_target_id - table: media__field_secure_file - field: field_secure_file_target_id - relationship: none - group_type: group - admin_label: 'file from field_secure_file' - plugin_id: standard - required: false header: { } footer: { } display_extenders: { } From 485e16eb30007412082a3caf5dd50c5f24f1b369 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Thu, 22 Jan 2026 15:46:27 +1100 Subject: [PATCH 07/16] update --- config/install/editor.editor.admin_text.yml | 2 +- config/install/editor.editor.rich_text.yml | 4 +--- config/install/editor.editor.summary_text.yml | 2 +- config/install/filter.format.rich_text.yml | 7 ------- docker-compose.yml | 1 - .../src/Plugin/EmbeddedContent/TideIframe.php | 11 +++++++++-- modules/tide_ckeditor/tide_ckeditor.info.yml | 2 +- tide_core.info.yml | 2 -- 8 files changed, 13 insertions(+), 18 deletions(-) diff --git a/config/install/editor.editor.admin_text.yml b/config/install/editor.editor.admin_text.yml index 37d8f7936..b6d6dae39 100644 --- a/config/install/editor.editor.admin_text.yml +++ b/config/install/editor.editor.admin_text.yml @@ -103,7 +103,7 @@ image_upload: status: false scheme: public directory: inline-images - max_size: '' + max_size: '10MB' max_dimensions: width: null height: null diff --git a/config/install/editor.editor.rich_text.yml b/config/install/editor.editor.rich_text.yml index 4811ab916..4c7038ecf 100644 --- a/config/install/editor.editor.rich_text.yml +++ b/config/install/editor.editor.rich_text.yml @@ -15,8 +15,6 @@ settings: - strikethrough - style - superscript - - Callout - - embeddedContent - tide_media - ckeditorTemplates - subscript @@ -109,7 +107,7 @@ image_upload: status: true scheme: public directory: inline-images - max_size: '' + max_size: '10MB' max_dimensions: width: null height: null diff --git a/config/install/editor.editor.summary_text.yml b/config/install/editor.editor.summary_text.yml index d7cf7efa1..8cd200353 100644 --- a/config/install/editor.editor.summary_text.yml +++ b/config/install/editor.editor.summary_text.yml @@ -79,7 +79,7 @@ image_upload: status: true scheme: public directory: inline-images - max_size: '' + max_size: '10MB' max_dimensions: width: null height: null diff --git a/config/install/filter.format.rich_text.yml b/config/install/filter.format.rich_text.yml index 0237b62d1..1f87aa4e6 100644 --- a/config/install/filter.format.rich_text.yml +++ b/config/install/filter.format.rich_text.yml @@ -2,7 +2,6 @@ langcode: en status: true dependencies: module: - - ckeditor5_embedded_content - editor - entity_embed - linkit @@ -90,9 +89,3 @@ filters: weight: -48 settings: title: true - ckeditor5_embedded_content: - id: ckeditor5_embedded_content - provider: ckeditor5_embedded_content - status: true - weight: 100 - settings: { } diff --git a/docker-compose.yml b/docker-compose.yml index f22084c82..3e07d3b04 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,6 @@ # - Using a single file to work in local, CI and production environments. # - Local overrides are possible using docker-composer.override.yml file. # - Use inline comments starting with ### to have the line removed in CI. -version: '2.3' x-bay-image-version: &bay-image-version ${BAY_IMAGE_VERSION:-6.x} diff --git a/modules/tide_ckeditor/src/Plugin/EmbeddedContent/TideIframe.php b/modules/tide_ckeditor/src/Plugin/EmbeddedContent/TideIframe.php index f888c654f..b39ff6436 100644 --- a/modules/tide_ckeditor/src/Plugin/EmbeddedContent/TideIframe.php +++ b/modules/tide_ckeditor/src/Plugin/EmbeddedContent/TideIframe.php @@ -2,10 +2,10 @@ namespace Drupal\tide_ckeditor\Plugin\EmbeddedContent; -use Drupal\ckeditor5_embedded_content\EmbeddedContentInterface; -use Drupal\ckeditor5_embedded_content\EmbeddedContentPluginBase; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; +use Drupal\embedded_content\EmbeddedContentInterface; +use Drupal\embedded_content\EmbeddedContentPluginBase; /** * Plugin iframes. @@ -18,6 +18,13 @@ */ class TideIframe extends EmbeddedContentPluginBase implements EmbeddedContentInterface { + /** + * {@inheritdoc} + */ + public function isInline(): bool { + return FALSE; + } + use StringTranslationTrait; /** diff --git a/modules/tide_ckeditor/tide_ckeditor.info.yml b/modules/tide_ckeditor/tide_ckeditor.info.yml index 7d0c25d96..55a9b34ef 100644 --- a/modules/tide_ckeditor/tide_ckeditor.info.yml +++ b/modules/tide_ckeditor/tide_ckeditor.info.yml @@ -5,4 +5,4 @@ package: CKEditor 5 core_version_requirement: ^10.5 || ^11 dependencies: - drupal:ckeditor5 - - ckeditor5_embedded_content:ckeditor5_embedded_content + - embedded_content:embedded_content diff --git a/tide_core.info.yml b/tide_core.info.yml index be4c1bd70..4841bb5cc 100644 --- a/tide_core.info.yml +++ b/tide_core.info.yml @@ -41,8 +41,6 @@ dependencies: - entity_browser:entity_browser_entity_form - entity_reference_revisions:entity_reference_revisions - quick_node_clone:quick_node_clone - - ckeditor5_embedded_content:ckeditor5_embedded_content - - embedded_content:embedded_content - admin_audit_trail:admin_audit_trail - admin_audit_trail:admin_audit_trail_auth - admin_audit_trail:admin_audit_trail_node From f550cba346552a619e49219eefdc51f5d9165657 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Wed, 4 Feb 2026 18:10:53 +1100 Subject: [PATCH 08/16] add patches back --- composer.dev.json | 5 ++--- composer.json | 29 +++++++++++++++++++---------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/composer.dev.json b/composer.dev.json index 579a34ac3..5a4423ebd 100644 --- a/composer.dev.json +++ b/composer.dev.json @@ -4,10 +4,9 @@ "license": "proprietary", "require": { "composer/installers": "^1.9", - "cweagans/composer-patches": "^1.6.0", "drupal/core-composer-scaffold": "^11.0", - "drupal/core": "11.x", - "drupal/core-recommended": "11.x", + "drupal/core": "11.3.x", + "drupal/core-recommended": "11.3.x", "drush/drush": "^13", "vlucas/phpdotenv": "^4.1", "webflo/drupal-finder": "^1.0" diff --git a/composer.json b/composer.json index 33156a416..64664b9ba 100644 --- a/composer.json +++ b/composer.json @@ -6,6 +6,7 @@ "minimum-stability": "dev", "prefer-stable": true, "require": { + "cweagans/composer-patches": "~2.0.0", "jquery/timepicker": "1.14.0", "jquery/textcounter": "0.9.1", "drupal/address": "^2.0", @@ -45,7 +46,7 @@ "drupal/media_entity_audio": "^3.1", "drupal/metatag": "^2.0", "drupal/override_node_options": "^2.7", - "drupal/paragraphs": "^1.15", + "drupal/paragraphs": "^1.19", "drupal/password_policy": "^4.0", "drupal/password_strength": "^2.0@beta", "drupal/pathauto": "^1.11", @@ -359,6 +360,20 @@ }, "extra": { "patches": { + "drupal/core": { + "Refactor Xss::attributes() to allow filtering of style attribute values - https://www.drupal.org/project/drupal/issues/3109650#comment-16166063": "https://www.drupal.org/files/issues/2025-06-26/xss-refactor-filter-attributes-10.5.x-3109650-85.patch", + "Add a 'machine_name' widget for string field types with a UniqueField constraint - https://www.drupal.org/project/drupal/issues/2685749#comment-15361693": "https://www.drupal.org/files/issues/2025-10-02/machine-name-widget-2685749-149.patch", + "Paragraphs fields cause overflow of content forms in Claro-https://www.drupal.org/project/drupal/issues/3145188": "https://www.drupal.org/files/issues/2023-01-25/3145188-37_0.patch", + "DateTimeComputed tries to compute from an empty value - https://www.drupal.org/project/drupal/issues/3052608#comment-14666671": "https://www.drupal.org/files/issues/2022-08-25/DateTimeComputed-tries-to-compute-from-an-empty-value-3052608-16.patch", + "Querying with NULL values results in warning mb_strtolower() - https://www.drupal.org/project/drupal/issues/3302838": "https://www.drupal.org/files/issues/2022-08-23/3302838-13.patch", + "Add filter by input field to Menu UI - https://www.drupal.org/project/drupal/issues/3170906#comment-16107432": "https://www.drupal.org/files/issues/2025-05-14/menu-filter.patch", + "Issue with HTML ` ` not being correctly filtered out from URLs - https://www.drupal.org/project/drupal/issues/3445910#comment-15586313": "https://www.drupal.org/files/issues/2024-08-06/drupal_core_non-breaking_space_issue_3445910_27_0.patch", + "Menu content is not accessible via jsonapi - https://www.drupal.org/node/2915792": "https://www.drupal.org/files/issues/menu_link_content-view-permissions-2915792.patch", + "Revisions on relations are not loaded correctly resulting in wrong data in includes - https://www.drupal.org/project/drupal/issues/3088239#comment-15519702": "https://git.drupalcode.org/project/drupal/-/merge_requests/6055/diffs.patch" + }, + "drupal/token": { + "Summary token not fully handled in fields - https://www.drupal.org/project/token/issues/2924873#comment-15704936": "https://www.drupal.org/files/issues/2026-01-19/token_body_with_summary-2924873-22.patch" + }, "drupal/admin_audit_trail": { "Add an option to allow logging in CLI - https://www.drupal.org/project/admin_audit_trail/issues/3263615#comment-16351387": "https://www.drupal.org/files/issues/2026-01-15/3263615-admin_audit_trail-option-for-cli-10.patch" }, @@ -398,8 +413,7 @@ "False positive mappings defined at top level error triggered unconditionally in ElasticSearchDatasetPipeline constructor - https://www.drupal.org/project/data_pipelines_elasticsearch/issues/3541059#comment-16226097": "https://www.drupal.org/files/issues/2025-08-13/3541059-fix-elasticsearch-mapping-warning-in-constructor.patch" }, "drupal/paragraphs": { - "Add default paragraph count setting - https://www.drupal.org/project/paragraphs/issues/3089423#comment-14517270": "https://www.drupal.org/files/issues/2022-05-17/paragraphs-default-quantity-3089423-18.patch", - "Dropbutton RHS highlight covers adjacent text - https://www.drupal.org/project/paragraphs/issues/3350747#comment-14986371": "https://www.drupal.org/files/issues/2023-03-28/paragraph-dropdown-button-obscure-text-2.patch" + "Add default paragraph count setting - https://www.drupal.org/project/paragraphs/issues/3089423#comment-14517270": "https://www.drupal.org/files/issues/2022-05-17/paragraphs-default-quantity-3089423-18.patch" }, "drupal/site_alert": { "Use HTTP GET to allow caching of AJAX request-3160200/Add ability to dismiss alert-3156557": "https://git.drupalcode.org/project/site_alert/-/merge_requests/3.patch" @@ -417,12 +431,6 @@ "Force user to setup TFA when required and there are no remaining skips - https://www.drupal.org/project/tfa/issues/3223327#comment-15468410": "https://www.drupal.org/files/issues/2024-02-29/DD-1756-force-tfa-user-setup-3223327-38.patch", "TfaLoginController enforces opaque form expiration - https://www.drupal.org/project/tfa/issues/3390083#comment-15753259": "https://www.drupal.org/files/issues/2024-09-02/3390083-3.patch" }, - "drupal/elasticsearch_connector": { - "Allow dashes in index name": "https://gist.githubusercontent.com/nicksantamaria/95677ffa87a9e1433bfc27c3ebdefd35/raw/68d6eb055150d1e99ad6f0da49d68a6a4c2d6348/elasticsearch_connector-dashed-index.patch" - }, - "drupal/select2": { - "remove Drag to re-order entity_type description": "https://www.drupal.org/files/issues/2023-09-08/select2-remove-drag-to-reorder-description-3178287-11.patch" - }, "drupal/redirect": { "Latest version of Redirect module failed to run updates. - https://www.drupal.org/project/redirect/issues/3543872#comment-16363797": "https://www.drupal.org/files/issues/2025-11-28/redirect-3543872-15.patch" } @@ -440,7 +448,8 @@ "allow-plugins": { "composer/installers": true, "oomphinc/composer-installers-extender": true, - "drupal/core-composer-scaffold": true + "drupal/core-composer-scaffold": true, + "tbachert/spi": true }, "audit": { "block-insecure": false From 4d6019e5116f73e51a402cd158569bb9eee183fd Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Fri, 6 Feb 2026 16:28:24 +1100 Subject: [PATCH 09/16] bump lesstif/php-jira-rest-client --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 64664b9ba..f3952d58b 100644 --- a/composer.json +++ b/composer.json @@ -89,7 +89,7 @@ "drupal/block_inactive_users": "^2.1", "drupal/user_expire": "^2.1", "drupal/field_permissions": "^1.2", - "lesstif/php-jira-rest-client": "2.6.0", + "lesstif/php-jira-rest-client": "^4.0.0", "drupal/jira_rest": "^4.0@beta", "drupal/yaml_content": "dev-3435777-automated-drupal-11 as 1.0.0-alpha9", "respect/validation": "2.3.1", From f79db9324bea184758be24810f0a5bdc4bdaf3be Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Mon, 9 Feb 2026 13:07:27 +1100 Subject: [PATCH 10/16] use cweagans/composer-patches ^1.6 version. --- composer.dev.json | 1 + composer.json | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.dev.json b/composer.dev.json index 5a4423ebd..affc6096d 100644 --- a/composer.dev.json +++ b/composer.dev.json @@ -4,6 +4,7 @@ "license": "proprietary", "require": { "composer/installers": "^1.9", + "cweagans/composer-patches": "^1.6.0", "drupal/core-composer-scaffold": "^11.0", "drupal/core": "11.3.x", "drupal/core-recommended": "11.3.x", diff --git a/composer.json b/composer.json index f3952d58b..f7a848883 100644 --- a/composer.json +++ b/composer.json @@ -6,7 +6,6 @@ "minimum-stability": "dev", "prefer-stable": true, "require": { - "cweagans/composer-patches": "~2.0.0", "jquery/timepicker": "1.14.0", "jquery/textcounter": "0.9.1", "drupal/address": "^2.0", From a024d4ab68227df83f4e880c3c9f6134ad985d46 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Wed, 11 Feb 2026 17:49:12 +1100 Subject: [PATCH 11/16] D11 upgrade. --- .../src/Controller/ShareLinkTokenResource.php | 14 ++++++++++++-- .../tide_edit_protection.module | 2 +- .../PageCache/DisallowXSimpleOauthRequests.php | 2 +- modules/tide_oauth/tide_oauth.services.yml | 8 +++++++- .../src/Controller/PublicationResource.php | 17 +++++++++++++++-- modules/tide_site/src/AliasManager.php | 4 ++-- modules/tide_site/src/AliasStorageHelper.php | 14 ++++++++++++-- .../TideSiteGetRouteSubscriber.php | 15 +++++++++++++-- .../TideSiteRequestEventSubscriber.php | 15 +++++++++++++-- modules/tide_site/src/TideSiteHelper.php | 15 +++++++++++++-- 10 files changed, 89 insertions(+), 17 deletions(-) diff --git a/modules/tide_api/modules/tide_share_link/src/Controller/ShareLinkTokenResource.php b/modules/tide_api/modules/tide_share_link/src/Controller/ShareLinkTokenResource.php index 160375fda..a80fba9da 100644 --- a/modules/tide_api/modules/tide_share_link/src/Controller/ShareLinkTokenResource.php +++ b/modules/tide_api/modules/tide_share_link/src/Controller/ShareLinkTokenResource.php @@ -7,10 +7,10 @@ use Drupal\jsonapi\ResourceType\ResourceType; use Drupal\node\NodeInterface; use Drupal\tide_share_link\Entity\ShareLinkTokenInterface; -use Symfony\Component\DependencyInjection\ContainerAwareTrait; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; +use Psr\Container\ContainerInterface; /** * Resource controller for Share Link Token. @@ -19,7 +19,17 @@ */ class ShareLinkTokenResource extends EntityResource { - use ContainerAwareTrait; + /** + * The service container. + */ + protected ContainerInterface $container; + + /** + * Sets the service container. + */ + public function setContainer(ContainerInterface $container): void { + $this->container = $container; + } /** * Gets the individual Share Link Token. diff --git a/modules/tide_edit_protection/tide_edit_protection.module b/modules/tide_edit_protection/tide_edit_protection.module index 715c377e5..f53abfee9 100644 --- a/modules/tide_edit_protection/tide_edit_protection.module +++ b/modules/tide_edit_protection/tide_edit_protection.module @@ -179,5 +179,5 @@ function tide_edit_protection_preprocess_status_messages(&$variables) { */ function tide_edit_protection_entity_predelete(EntityInterface $entity) { \Drupal::service('content_lock') - ->release($entity->id(), LanguageInterface::LANGCODE_NOT_SPECIFIED); + ->release($entity, LanguageInterface::LANGCODE_NOT_SPECIFIED); } diff --git a/modules/tide_oauth/src/PageCache/DisallowXSimpleOauthRequests.php b/modules/tide_oauth/src/PageCache/DisallowXSimpleOauthRequests.php index eb8b7da69..ebb49a74f 100644 --- a/modules/tide_oauth/src/PageCache/DisallowXSimpleOauthRequests.php +++ b/modules/tide_oauth/src/PageCache/DisallowXSimpleOauthRequests.php @@ -21,7 +21,7 @@ class DisallowXSimpleOauthRequests extends DisallowSimpleOauthRequests { /** * {@inheritdoc} */ - public function isOauth2Request(Request $request) { + public function isOauth2Request(Request $request): bool { $is_oauth2_requests = parent::isOauth2Request($request); if ($is_oauth2_requests) { return TRUE; diff --git a/modules/tide_oauth/tide_oauth.services.yml b/modules/tide_oauth/tide_oauth.services.yml index 3e82b7e8a..7416029e9 100644 --- a/modules/tide_oauth/tide_oauth.services.yml +++ b/modules/tide_oauth/tide_oauth.services.yml @@ -2,9 +2,15 @@ services: tide_oauth.authentication.x_simple_oauth: class: Drupal\tide_oauth\Authentication\Provider\XSimpleOauthAuthenticationProvider arguments: - - '@simple_oauth.server.resource_server' + - '@simple_oauth.server.resource_server.factory' - '@entity_type.manager' - '@tide_oauth.page_cache_request_policy.disallow_x_oauth2_token_requests' + - '@psr7.http_message_factory' + - '@psr7.http_foundation_factory' + - '@path.validator' + - '@router.route_provider' + - '@request_stack' + - '@permission_checker' tags: - { name: authentication_provider, provider_id: tide_oauth2, global: TRUE, priority: 35 } tide_oauth.page_cache_request_policy.disallow_x_oauth2_token_requests: diff --git a/modules/tide_publication/src/Controller/PublicationResource.php b/modules/tide_publication/src/Controller/PublicationResource.php index 609acfe60..3275736aa 100644 --- a/modules/tide_publication/src/Controller/PublicationResource.php +++ b/modules/tide_publication/src/Controller/PublicationResource.php @@ -17,9 +17,9 @@ use Drupal\jsonapi\JsonApiResource\LinkCollection; use Drupal\jsonapi\Routing\Routes; use Drupal\taxonomy\TermInterface; -use Symfony\Component\DependencyInjection\ContainerAwareTrait; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; +use Psr\Container\ContainerInterface; /** * Class PublicationResource Controller. @@ -27,7 +27,20 @@ * @package Drupal\tide_publication\Controller */ class PublicationResource extends EntityResource { - use ContainerAwareTrait; + + + + /** + * The service container. + */ + protected ContainerInterface $container; + + /** + * Sets the service container. + */ + public function setContainer(ContainerInterface $container): void { + $this->container = $container; + } /** * The NestedSetStorageFactory service. diff --git a/modules/tide_site/src/AliasManager.php b/modules/tide_site/src/AliasManager.php index 7bd15d762..a15be9d03 100644 --- a/modules/tide_site/src/AliasManager.php +++ b/modules/tide_site/src/AliasManager.php @@ -7,7 +7,7 @@ use Drupal\Core\Language\LanguageManagerInterface; use Drupal\path_alias\AliasManager as CoreAliasManager; use Drupal\path_alias\AliasRepositoryInterface; -use Drupal\path_alias\AliasWhitelistInterface; +use Drupal\path_alias\AliasPrefixListInterface; /** * Class alias manager. @@ -26,7 +26,7 @@ class AliasManager extends CoreAliasManager { /** * {@inheritdoc} */ - public function __construct(AliasRepositoryInterface $repository, AliasWhitelistInterface $whitelist, LanguageManagerInterface $language_manager, CacheBackendInterface $cache, protected ?TimeInterface $time, AliasStorageHelper $alias_helper) { + public function __construct(AliasRepositoryInterface $repository, AliasPrefixListInterface $whitelist, LanguageManagerInterface $language_manager, CacheBackendInterface $cache, protected TimeInterface $time, AliasStorageHelper $alias_helper) { parent::__construct($repository, $whitelist, $language_manager, $cache, $time); $this->aliasHelper = $alias_helper; } diff --git a/modules/tide_site/src/AliasStorageHelper.php b/modules/tide_site/src/AliasStorageHelper.php index 266495b01..c68a5091c 100644 --- a/modules/tide_site/src/AliasStorageHelper.php +++ b/modules/tide_site/src/AliasStorageHelper.php @@ -7,7 +7,7 @@ use Drupal\Core\Url; use Drupal\node\NodeInterface; use Drupal\path_alias\PathAliasInterface; -use Symfony\Component\DependencyInjection\ContainerAwareTrait; +use Psr\Container\ContainerInterface; /** * Class alias storage helper. @@ -15,8 +15,18 @@ * @package Drupal\tide_site */ class AliasStorageHelper { - use ContainerAwareTrait; + /** + * The service container. + */ + protected ContainerInterface $container; + + /** + * Sets the service container. + */ + public function setContainer(ContainerInterface $container): void { + $this->container = $container; + } const ALIAS_SCHEMA_MAX_LENGTH = 255; /** diff --git a/modules/tide_site/src/EventSubscriber/TideSiteGetRouteSubscriber.php b/modules/tide_site/src/EventSubscriber/TideSiteGetRouteSubscriber.php index e7f39b16f..ba4ddfc2a 100644 --- a/modules/tide_site/src/EventSubscriber/TideSiteGetRouteSubscriber.php +++ b/modules/tide_site/src/EventSubscriber/TideSiteGetRouteSubscriber.php @@ -8,9 +8,9 @@ use Drupal\tide_api\TideApiEvents; use Drupal\tide_api\TideApiHelper; use Drupal\tide_site\TideSiteHelper; -use Symfony\Component\DependencyInjection\ContainerAwareTrait; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpFoundation\Response; +use Psr\Container\ContainerInterface; /** * Class get route subscriber for tide_site. @@ -18,9 +18,20 @@ * @package Drupal\tide_site\EventSubscriber */ class TideSiteGetRouteSubscriber implements EventSubscriberInterface { - use ContainerAwareTrait; use StringTranslationTrait; + /** + * The service container. + */ + protected ContainerInterface $container; + + /** + * Sets the service container. + */ + public function setContainer(ContainerInterface $container): void { + $this->container = $container; + } + /** * Tide Site Helper. * diff --git a/modules/tide_site/src/EventSubscriber/TideSiteRequestEventSubscriber.php b/modules/tide_site/src/EventSubscriber/TideSiteRequestEventSubscriber.php index 5e6e85488..736da05fd 100644 --- a/modules/tide_site/src/EventSubscriber/TideSiteRequestEventSubscriber.php +++ b/modules/tide_site/src/EventSubscriber/TideSiteRequestEventSubscriber.php @@ -12,7 +12,6 @@ use Drupal\jsonapi_extras\ResourceType\ConfigurableResourceType; use Drupal\tide_site\TideSiteFields; use Drupal\tide_site\TideSiteHelper; -use Symfony\Component\DependencyInjection\ContainerAwareTrait; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; @@ -20,6 +19,7 @@ use Symfony\Component\HttpKernel\Event\RequestEvent; use Symfony\Component\HttpKernel\Event\ResponseEvent; use Symfony\Component\HttpKernel\KernelEvents; +use Psr\Container\ContainerInterface; /** * Class TideApiRequestEventSubscriber. @@ -27,9 +27,20 @@ * @package Drupal\tide_api\EventSubscriber */ class TideSiteRequestEventSubscriber implements EventSubscriberInterface { - use ContainerAwareTrait; use StringTranslationTrait; + /** + * The service container. + */ + protected ContainerInterface $container; + + /** + * Sets the service container. + */ + public function setContainer(ContainerInterface $container): void { + $this->container = $container; + } + /** * The module handler. * diff --git a/modules/tide_site/src/TideSiteHelper.php b/modules/tide_site/src/TideSiteHelper.php index 30b682192..94dddda55 100644 --- a/modules/tide_site/src/TideSiteHelper.php +++ b/modules/tide_site/src/TideSiteHelper.php @@ -9,7 +9,7 @@ use Drupal\Core\Entity\RevisionableInterface; use Drupal\node\NodeInterface; use Drupal\taxonomy\TermInterface; -use Symfony\Component\DependencyInjection\ContainerAwareTrait; +use Psr\Container\ContainerInterface; /** * Provides helper functions for tide_site. @@ -17,7 +17,18 @@ * @package Drupal\tide_site */ class TideSiteHelper { - use ContainerAwareTrait; + + /** + * The service container. + */ + protected ContainerInterface $container; + + /** + * Sets the service container. + */ + public function setContainer(ContainerInterface $container): void { + $this->container = $container; + } /** * List of allowed entity types. From 6f677b4fbfac8d26ca96e67bc6b07a0b817d6ed7 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Thu, 12 Feb 2026 13:12:13 +1100 Subject: [PATCH 12/16] fixes simple_oauth update hook issue. --- composer.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index f7a848883..1cc46c37a 100644 --- a/composer.json +++ b/composer.json @@ -432,7 +432,10 @@ }, "drupal/redirect": { "Latest version of Redirect module failed to run updates. - https://www.drupal.org/project/redirect/issues/3543872#comment-16363797": "https://www.drupal.org/files/issues/2025-11-28/redirect-3543872-15.patch" - } + }, + "drupal/simple_oauth": { + "5.2.x -> 6.0.0 upgrade error. - https://www.drupal.org/project/simple_oauth/issues/3512143#comment-16467241": "https://www.drupal.org/files/issues/2026-02-12/simple_oauth-3512143-23.patch" + } }, "installer-paths": { "docroot/libraries/{$name}": [ From f17aa088c7bf1cbe6cd4a2079489de7fe28b5546 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Thu, 12 Feb 2026 14:05:20 +1100 Subject: [PATCH 13/16] Fixes status page error. --- tide_core.post_update.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tide_core.post_update.php b/tide_core.post_update.php index ca291b45d..146505963 100644 --- a/tide_core.post_update.php +++ b/tide_core.post_update.php @@ -36,3 +36,21 @@ function tide_core_post_update_fix_status_page() { } } } + +/** + * Fixes mismatched entity and/or field definitions" error. + */ +function tide_core_post_update_fixes_mismatched_entity_01() { + $entity_type_manager = \Drupal::entityTypeManager(); + $entity_type_manager->clearCachedDefinitions(); + $entity_type_ids = []; + $change_summary = \Drupal::service('entity.definition_update_manager')->getChangeSummary(); + if (!empty($change_summary)) { + foreach ($change_summary as $entity_type_id => $change_list) { + $entity_type = $entity_type_manager->getDefinition($entity_type_id); + \Drupal::entityDefinitionUpdateManager()->installEntityType($entity_type); + $entity_type_ids[] = $entity_type_id; + } + Drush::output()->writeln('Installed/Updated the entity type(s): ' . implode(', ', $entity_type_ids)); + } +} From 072c92440d33b51d96f8c4b353969c753c036500 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Thu, 12 Feb 2026 14:13:08 +1100 Subject: [PATCH 14/16] add missed modules. --- composer.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/composer.json b/composer.json index 1cc46c37a..51f936b44 100644 --- a/composer.json +++ b/composer.json @@ -16,6 +16,8 @@ "drupal/config_perms": "2.x-dev@dev", "drupal/config_split": "^2.0", "drupal/config_update": "^2.0@alpha", + "drupal/jquery_ui_slider": "^2.1.0", + "drupal/jquery_ui_datepicker": "^2.1.1", "drupal/core": "11.x", "drupal/upgrade_status": "^4.3", "drupal/core-recommended": "11.x", From e2472fa286cd3d86320fb2faa5727ddc7af3be88 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Thu, 12 Feb 2026 14:52:15 +1100 Subject: [PATCH 15/16] Updates ckeditor template configs. --- tide_core.install | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tide_core.install b/tide_core.install index 1d1af49f0..742557c09 100644 --- a/tide_core.install +++ b/tide_core.install @@ -1219,3 +1219,35 @@ function tide_core_update_10031() { } $approver_role->save(); } + +/** + * Updates ckeditor template configs. + */ +function tide_core_update_11001() { + $templates = [ + 'ckeditor_templates.ckeditor_templates.blockquote', + 'ckeditor_templates.ckeditor_templates.primary_button', + 'ckeditor_templates.ckeditor_templates.secondary_button', + ]; + $config_factory = \Drupal::configFactory(); + foreach ($templates as $template) { + $config = $config_factory->getEditable($template); + // Update 'code' from a plain string to a structured array with 'value' and 'format'. + $old_code = $config->get('code'); + // dsm($old_code); + if (is_string($old_code)) { + $html = str_replace(["\r\n", "\r", "\n"], '', $old_code); + $html = preg_replace('/>\s+<', $html); + $html = trim($html); + $config->set('code', [ + 'value' => $html, + 'format' => 'rich_text', + ]); + } + // Add thumb_alternative if not set. + if ($config->get('thumb_alternative') === NULL) { + $config->set('thumb_alternative', ''); + } + $config->save(TRUE); + } +} From bed791ce1a5dd8e0adaec39e9c5791e80af749a3 Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Thu, 12 Feb 2026 22:49:24 +1100 Subject: [PATCH 16/16] add content_lock patch --- composer.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/composer.json b/composer.json index 51f936b44..b2e158b29 100644 --- a/composer.json +++ b/composer.json @@ -437,6 +437,9 @@ }, "drupal/simple_oauth": { "5.2.x -> 6.0.0 upgrade error. - https://www.drupal.org/project/simple_oauth/issues/3512143#comment-16467241": "https://www.drupal.org/files/issues/2026-02-12/simple_oauth-3512143-23.patch" + }, + "drupal/content_lock": { + "Fatal error 'Truncated incorrect DOUBLE value' on MySQL 8 when deleting config entities": "https://www.drupal.org/files/issues/2026-02-12/content_lock-3571174-3.patch" } }, "installer-paths": {