Problem/Motivation
Varbase FAQ declares a dependency on the contrib FAQ project (faq:faq) in varbase_faqs.info.yml, but it already bundles its own faq submodule (modules/faq, machine name faq, package Varbase). It also still installs via the legacy Vardot\Installer\ModuleInstallerFactory in hook_install().
We want Varbase FAQ to:
- Use its own bundled
varbase_faqs:faqsubmodule instead of the contribfaq:faqproject. - Move to Drupal Recipes for the default install, matching the direction set by Varbase Workflow (#3608641) and Varbase Hero Slider (#3609140).
Steps to reproduce
- Inspect
varbase_faqs.info.yml: it listsdependencies: - faq:faq. - Inspect
modules/faqinside Varbase FAQ: a bundled submodule namedfaq, package "Varbase", providing the same functionality as the contrib FAQ project. - Inspect
varbase_faqs.install:hook_install()callsVardot\Installer\ModuleInstallerFactoryto install the dependency stack, instead of a recipe.
Proposed resolution
- Empty the
dependencies:invarbase_faqs.info.ymland move the whole install into the default recipe (heroslider-style: the module has no dependencies and installs nothing itself;hook_install()only applies the recipe). recipes/default/recipe.ymlinstalls the full stack — the bundledfaqsubmodule,rabbit_hole,menu_ui,length_indicator,advanced_text_formatter,maxlength,varbase_layout_builder,vlplb— applies thefaq.settings(hide_answer,show_expand_all,disable_node_links,category_display=none), and grants the FAQ permissions per role (authenticated/editor/content_admin/site_admin/seo_admin).hook_install()applies the default recipe viaRecipe::createFromDirectory+RecipeRunner::processRecipe, then runs the entity-definition update safety pass. AllModuleInstallerFactorycalls are removed from install (the historicalincludes/updates/*.incupdate hooks keep theirs untouched).- Remove the dead duplicate
config/optionalbase files (node.type.faq+ its fields/storage/displays) — the bundledfaqsubmodule owns the base FAQ config; keep the 3 Varbase-layering configs (rabbit_hole behavior, language content settings, title base-field override) inconfig/optional.
This change will ship to both the 9.2.x and 10.1.x branches (one MR per branch).
Remaining tasks
- ✅ File an issue about this project
- ✅ Addition/Change/Update/Fix to this project
- ❌ Testing to ensure no regression
- ➖ Automated unit/functional testing coverage
- ➖ Developer Documentation support on feature change/addition
- ➖ User Guide Documentation support on feature change/addition
- ➖ 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 varbase_faqs-9.2.1, varbase_faqs-10.1.1
User interface changes
- N/A
API changes
- N/A
Data model changes
- No new content model — same
faqcontent type + fields, now owned by the bundled submodule.
Release notes snippet
- Varbase FAQ now uses its own bundled
varbase_faqs:faqsubmodule instead of the contrib FAQ project, and installs via a Drupal Recipe instead of ModuleInstallerFactory.
Issue fork varbase_faqs-3611666
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 #6
rajab natshahComment #7
rajab natshah✅ Released varbase_faqs-9.2.1
✅ Released varbase_faqs-10.1.1
Comment #8
rajab natshah