feat: #3614680 Add Varbase Patches to the composer requirements and a Drupal CMS wiring script
Issue: https://www.drupal.org/project/educare/issues/3614680
Adds vardot/varbase-patches to this recipe's own requirements, and a scripts/drupal-cms-wiring.php that prepares a plain drupal/cms codebase for it: dev stability, the allow-plugins and patches allowlist varbase-patches needs to run, the drupal-libraries sync into web/libraries/, and nodeLinker: node-modules for Yarn 4.
The values live in scripts/assets/drupal-cms.composer.json and scripts/assets/drupal-libraries.package.json, so the wiring can change without editing the script. Idempotent, --dry-run supported.
cd PROJECT_DIR_NAME/recipes/educare/scripts
php drupal-cms-wiring.phpThen from the project root:
composer require drupal/educare -W
corepack enable && corepack yarn install-W is required: a partial update keeps the locked symfony/css-selector, which drupal/storybook (via varbase_dev_base) conflicts with. vardot/varbase-patches arrives as a requirement of this recipe, so it needs no separate require — the wiring only has to permit its plugin first.
Same as Varbase Starter, by design
This mirrors Varbase Starter !14 for #3614678. That script is already parameterised, so only three constants and the docblock differ here — SITE_TEMPLATE_NAME, SITE_TEMPLATE_TITLE, SITE_TEMPLATE_PACKAGE. The two asset files are byte-identical to Starter's. Keeping them identical is deliberate: the wiring is a property of "a Site recipe on a plain Drupal CMS base", not of one template.
Nothing changes on a Varbase base.
Testing
gitlab-ci-local, run in a temporary worktree at 1.0.x so the clone's in-flight branch stayed untouched:
📦 Composer validate— PASS📐 YAML lint— PASS🔤 Cspell— PASS🟨 ESLint— PASS🧩 Cucumber dry-run— PASS
php -l clean on the new script, and no starter string survives in it.
🧪 Automated Functional Testing was not run locally — it builds a full site and this machine is short on disk. Since this MR adds a composer requirement, that job is genuinely relevant, so please let the pipeline here confirm it rather than reading the five above as a full green.
Known limit, unchanged by this MR
This produces a working codebase, but on a plain Drupal CMS base the install itself still fails in the recipe config batch for a reason outside this recipe: drupal_cms_search clones every node view display and Drupal CMS installs layout_builder, so dependency calculation hits a null field definition. Varbase 11 remains the supported base today.
AI-Generated: Yes
Checkpoints:
- File an issue
- Addition/Change/Update/Fix
- Testing to ensure no regression
- Automated unit testing coverage
- Automated functional testing coverage
- UX/UI designer responsibilities
- Readability
- Accessibility
- Performance
- Security
- Developer Documentation
- User Guide Documentation
- Reviewed by human
- Code review by maintainers
- Full testing and approval
- Credit contributors
- Review with the product owner
- Release notes snippet
- Release