fix: #3622085 Remove the 21 noUi component configs shipped in a broken fallback state
What this changes
- Deletes the 21
config/canvas.component.sdc.vartheme_bs5_educare.*.ymlfiles that correspond exactly to the Vartheme BS5 Educare SDCs declarednoUi: true. - Removes the 21 matching
disable: []config actions fromrecipe.yml, which would otherwise target config that no longer exists.
22 files changed, 315 deletions. Nothing else is touched: the diff is Educare's own config/ and recipe.yml only.
The 21 components: details, field, fieldset, form, form-element, form-element-radiocheckbox, links-dropbutton, list, local-tasks, page, page-footer, radios, region, select, social-auth, user, views-view, views-view-grid, views-view-list, views-view-summary, views-view-unformatted.
Why
Canvas never creates a Component config entity for a component that is ineligible or declared noUi: true — ComponentSourceManager::generateComponentsForSource() only disables one that already exists. So the correct state for all 21 is that no config entity exists at all, and shipping them is export noise.
They were also exported in a state Canvas cannot evaluate:
status: false
active_version: fallback
versioned_properties:
active:
settings:
last_active_version: ''Component::sourcePluginCollection() then takes the FALLBACK_VERSION branch and evaluates versioned_properties['']['fallback_metadata']['slot_definitions'] with an empty-string key, producing three PHP warnings per component load.
How it was verified
Two independent DDEV builds, both on Drupal core 11.4.6:
- A Varbase-flavoured Drupal CMS build.
- A clean-room plain
drupal/cmsbuild:ddev composer create-project drupal/cms,ddev composer config minimum-stability dev,ddev composer require drupal/educare:1.0.x-dev.
Measured on both builds:
- Install-time warnings from these components drop from 567 to 0 — 189 x
Undefined array key ""plus 378 xTrying to access array offset on null, raised atcanvas/src/Entity/Component.php(line 231 on one Canvas revision, line 237 on the other).
Additionally, on the clean-room build after the change:
- 0 of 119 Canvas components remain with
active_version: fallback. - The noUi components correctly have no config entity at all —
drush cgetreports "does not exist" for every one sampled.
Scope notes, stated so nothing here is read as more than it is:
- These numbers are the count of warnings raised by these 21 components. They are not a claim that the install command otherwise completes cleanly on plain
drupal/cms; a separate, unrelated upstream problem is outside the scope of this merge request and is untouched by it. - The 232-scenario functional suite has not been run against this exact commit. It went 232/232 green on a working tree that also carried other, unrelated changes, so it is not evidence for this branch.
- This change proposes no patch and changes nothing outside the Educare recipe.
AI-Generated: Yes
Checkpoints
- Testing to ensure no regression
- Automated unit testing coverage
- Automated functional testing coverage
- Readability
- Accessibility
- Performance
- Security
- Developer Documentation
- User Guide Documentation
- Release notes snippet
- UX/UI designer responsibilities
- Reviewed by a human
- Code review by maintainers
- Full testing and approval
- Credit contributors
- Review with the product owner
- Release