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
- Site with ui_skins 1.1.0-alpha5 and display_builder 1.0.0-beta8 (+ display_builder_ui, display_builder_page_layout).
- Open a builder, e.g.
/admin/structure/page-layout/{page_layout}/builder. - 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.
| Comment | File | Size | Author |
|---|---|---|---|
| #6 | 3632149 after.png | 523.77 KB | csakiistvan |
| #6 | 3632149 before.png | 258.28 KB | csakiistvan |
Issue fork display_builder-3632149
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
Comment #3
pdureau commentedThe 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_variabletoDrupal\ui_skins\CssVariable\CssVariablePluginManagerInterface, making the island incompatible with UI Skins 1.1.0.Compatibility table:
plugin.manager.ui_skins.css_variableDrupal\ui_skins\CssVariable\CssVariablePluginManagerInterfaceComment #4
pdureau commentedMichael,
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?
Comment #5
csakiistvanComment #6
csakiistvan✅ Tested and works — with ui_skins 1.1.0-alpha5, opening a page layout builder returned HTTP 500 with the reported
ServiceNotFoundException; after applying theDesignTokensPanelchange 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.Comment #7
pdureau commentedGreat news.