Problem/Motivation

The Design tokens island (DesignTokensPanel, modules: ['ui_skins']) gets the service Drupal\ui_skins\CssVariable\CssVariablePluginManagerInterface in create() whenever ui_skins is installed. That service alias only exists in ui_skins 1.2.0 and later. composer.json declares "drupal/ui_skins": "^1.2" only under require-dev (and in suggest), so Composer happily keeps an older ui_skins. With ui_skins 1.1.0-alpha5 every builder page returns HTTP 500:

Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: You have requested a non-existent service "Drupal\ui_skins\CssVariable\CssVariablePluginManagerInterface".

ui_suite_daisyui 5.0.0-alpha6 requires drupal/ui_skins: ^1.1, so sites built on it can end up in this state.

Steps to reproduce

  1. Site with ui_skins 1.1.0-alpha5 and display_builder 1.0.0-beta8 (+ display_builder_ui, display_builder_page_layout).
  2. Open a builder, e.g. /admin/structure/page-layout/{page_layout}/builder.
  3. HTTP 500 with the exception above.

Proposed resolution

Add "conflict": {"drupal/ui_skins": "<1.2"} to composer.json, so Composer refuses an incompatible ui_skins while keeping it optional. Alternatively, check that the service exists before using it in DesignTokensPanel.

Updating ui_skins to 1.2.0 fixes the error.

Remaining tasks

  • MR
  • Review

User interface changes

None.

API changes

None.

Data model changes

None.

CommentFileSizeAuthor
#6 3632149 after.png523.77 KBcsakiistvan
#6 3632149 before.png258.28 KBcsakiistvan
Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

zemike created an issue. See original summary.

pdureau’s picture

Assigned: Unassigned » pdureau
Status: Active » Needs review
Issue tags: +display_builder-1.0.0-beta

The fail comes from #3613169: Add close button to context menu, where an extra commit not related to the ticket scope has been added just before the merge, changing the service ID from plugin.manager.ui_skins.css_variable to Drupal\ui_skins\CssVariable\CssVariablePluginManagerInterface, making the island incompatible with UI Skins 1.1.0.

Compatibility table:

UI Skins 1.1.0 1.2.0 1.2.1
plugin.manager.ui_skins.css_variable ✅ ❌ ✅
Drupal\ui_skins\CssVariable\CssVariablePluginManagerInterface ❌ ✅ ✅
pdureau’s picture

Assigned: pdureau » Unassigned

Michael,

I have rebased and added a commit to allow compatibility with UI skins 1.1.0 (so compatibility with DaisyUI and other themes having such dependencies).

Can you review?

csakiistvan’s picture

Assigned: Unassigned » csakiistvan
csakiistvan’s picture

Assigned: csakiistvan » Unassigned
Status: Needs review » Reviewed & tested by the community
StatusFileSize
new258.28 KB
new523.77 KB

✅ Tested and works — with ui_skins 1.1.0-alpha5, opening a page layout builder returned HTTP 500 with the reported ServiceNotFoundException; after applying the DesignTokensPanel change from MR !499 and rebuilding caches, the builder loads and the Design tokens island instantiates. The compatibility fix resolves the error without upgrading ui_skins.

pdureau’s picture

Assigned: Unassigned » mogtofu33

Great news.