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:faq submodule instead of the contrib faq:faq project.
  • Move to Drupal Recipes for the default install, matching the direction set by Varbase Workflow (#3608641) and Varbase Hero Slider (#3609140).

Steps to reproduce

  1. Inspect varbase_faqs.info.yml: it lists dependencies: - faq:faq.
  2. Inspect modules/faq inside Varbase FAQ: a bundled submodule named faq, package "Varbase", providing the same functionality as the contrib FAQ project.
  3. Inspect varbase_faqs.install: hook_install() calls Vardot\Installer\ModuleInstallerFactory to install the dependency stack, instead of a recipe.

Proposed resolution

  • Empty the dependencies: in varbase_faqs.info.yml and 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.yml installs the full stack — the bundled faq submodule, rabbit_hole, menu_ui, length_indicator, advanced_text_formatter, maxlength, varbase_layout_builder, vlplb — applies the faq.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 via Recipe::createFromDirectory + RecipeRunner::processRecipe, then runs the entity-definition update safety pass. All ModuleInstallerFactory calls are removed from install (the historical includes/updates/*.inc update hooks keep theirs untouched).
  • Remove the dead duplicate config/optional base files (node.type.faq + its fields/storage/displays) — the bundled faq submodule owns the base FAQ config; keep the 3 Varbase-layering configs (rabbit_hole behavior, language content settings, title base-field override) in config/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 faq content type + fields, now owned by the bundled submodule.

Release notes snippet

  • Varbase FAQ now uses its own bundled varbase_faqs:faq submodule instead of the contrib FAQ project, and installs via a Drupal Recipe instead of ModuleInstallerFactory.
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 7a36ea7d on 9.2.x
    feat: #3611666 Switch faq:faq to the bundled varbase_faqs:faq submodule...

  • rajab natshah committed 0ba20831 on 10.1.x
    feat: #3611666 Switch faq:faq to the bundled varbase_faqs:faq submodule...
rajab natshah’s picture

Assigned: Unassigned » josebc
Issue summary: View changes
Status: Active » Needs review
Issue tags: +varbase_faqs-9.2.1, +varbase_faqs-10.1.1
rajab natshah’s picture

Assigned: josebc » mohammed j. razem

✅ Released varbase_faqs-9.2.1
✅ Released varbase_faqs-10.1.1

rajab natshah’s picture

Assigned: mohammed j. razem » Unassigned
Status: Needs review » 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.

Status: Fixed » Closed (fixed)

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