fix: #3620414 Install smart_date early to avoid a Drupal CMS install deadlock
Issue: https://www.drupal.org/project/varbase_admin_base/issues/3620414
smart_date previously arrived only at the very end of the chain — in Educare, recipe 23 of 24, via varbase_events_base applying events, which installs the module and imports both field.storage.node.field_when and the module's own config (smart_date: "*").
Landing that late makes it fragile. An interruption there leaves smartdate-typed config with no module:
PluginNotFoundException: Unable to determine class for field type 'smartdate'
found in the 'field.storage.node.field_when' configurationand the module can then never be installed, because its own config already exists:
PreExistingConfigException: Configuration objects
(smart_date.smart_date_format.compact, .date_only, .default, .time_only)
provided by smart_date already exist in active configurationInstalling it here puts it at recipe 13 instead of 23.
Note varbase_events_base already lists smart_date and events installs it too — the declaration was never missing, only too late. A recipe cannot install a module before its own sub-recipes run, so moving it earlier in the chain is what makes the ordering safe.
Measured on Drupal CMS 2.x / core 11.4.5 with drupal/educare:1.0.x-dev: before, the browser install stopped at 177 tables with smart_date not enabled; after, smart_date was enabled by 174 tables and the install ran past that point. The PreExistingConfigException dead end can no longer form.
Scope, stated honestly: this removes the smart_date failure. It does not on its own make the Drupal CMS browser install complete — a separate, still-unidentified failure follows it.
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