Problem/Motivation

The recipe ships Canvas component configuration for the Vartheme BS5 RightUp theme. Eight of those component configs are stale against the current theme: the theme's Single Directory Components declare props that the recipe's shipped active version does not carry. When any Canvas page region, content template or pattern sets one of the newer props, config import rejects the value and the whole site install aborts.

This is invisible to CI, because CI does not install the template from released Composer constraints. It only appears when someone actually installs the site template.

Concrete example, hit while adding an offcanvas header that sets the icon_color prop on the Icon Toggle component:

In JsonSchemaPropsComponentSourceBase.php line 215:
  'icon_color' is not a prop on this version of the Component
  'Single-directory component: Icon Toggle'.

The theme's components/organisms/icon-toggle/icon-toggle.component.yml declares attributes, expand_in_editor, icon, icon_color, label, open_label, placement, while the recipe's shipped config/canvas.component.sdc.vartheme_bs5_rightup.icon-toggle.yml declares active_version: 89c883e11d4f832c whose prop set is only icon, label, open_label, placement.

Steps to reproduce

  1. Build a Varbase 11 project and require the recipe:
    ddev composer create-project "drupal/varbase_project:11.0.x-dev"
    ddev composer require drupal/rightup:1.0.x-dev -W
    
  2. Add any Canvas configuration that sets a prop the theme has but the recipe's component config does not, for example icon_color on sdc.vartheme_bs5_rightup.icon-toggle.
  3. Install the site template:
    drush site:install varbase installer_site_template_form.add_ons=rightup --yes
    
  4. The install aborts with the error above. Exit status 1.

Proposed resolution

Re-export the eight stale component configs against the current canonical theme, so their active prop sets and active_version match what the theme declares.

Component active_version Props gained
divider 62f9294bba931609 to 3351739a2f3f46b5 text, text_size
figure 8fe3be948e0194e1 to 0a31ebc5be5d97a1 align, background_color, description, description_color, description_size, number, number_color, number_size
icon-toggle 89c883e11d4f832c to ab1b678dc1806d89 expand_in_editor, icon_color
section 4171719f53c41b9d to 038d91867e142dd2 column_divider, column_divider_color
share 64add9738be2892f to 24d3cc5800d6bb4f heading_level
tabs ead44d287f956a39 to 2aeb2885f8b90977 active_bg, active_color, border_color, tabs_id
taxonomy b55691286f078649 to 97e8c86a10cc155f color, justify_content, no_padding
text c4ddb22de87220b3 to 34499abda8277068 opacity

No props and no historical versions are removed by the re-export; every previously declared version key is preserved, so existing content pinned to an older version still resolves.

How to count these correctly, because a naive check over-reports. Comparing the theme's SDC prop sets against the recipe's shipped active prop sets flags nineteen components, but eleven of those are fallback components that store no prop_field_definitions at all, so the comparison reports a difference where there is no change to make. Re-exporting all nineteen and then byte-diffing against the branch showed eleven files identical and eight genuinely changed. Confirm with a byte diff before believing a prop-set diff.

Remaining tasks

  • ✅ File an issue
  • ✅ Addition/Change/Update/Fix
  • ✅ Testing to ensure no regression
  • ➖ Automated unit/functional testing coverage
  • ➖ Developer Documentation support
  • ➖ User Guide Documentation support
  • ➖ UX/UI designer responsibilities
  • ➖ Accessibility and Readability
  • ❌ Reviewed by a human
  • ❌ Code review by maintainers
  • ❌ Full testing and approval
  • ❌ Credit contributors
  • ❌ Review with the product owner
  • ❌ Update Release Notes
  • ❌ Release

User interface changes

  • None on its own. The re-export unblocks Canvas configuration that sets the newer props.

API changes

  • N/A

Data model changes

  • The active_version of the eight components changes, and their active prop sets gain the props listed above. Previously declared version keys are preserved.

Release notes snippet

  • Re-exported the Canvas component configuration for divider, figure, icon-toggle, section, share, tabs, taxonomy and text so it matches the props declared by the Vartheme BS5 RightUp theme. Canvas configuration setting the newer props no longer aborts the site install.

Issue fork rightup-3620712

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

rajab natshah created an issue. See original summary.

  • rajab natshah committed 24993b46 on 1.0.x
    fix: #3620712 Re-export the stale Canvas component configs against the...
rajab natshah’s picture

Status: Active » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

rajab natshah’s picture

Issue tags: +rightup-1.0.0-alpha1

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.