Skip to main content
Version: v2

Modules

Vortex isn't a Drupal distribution. It ships no installation profile unless you ask the installer for a custom one. The only recipe it carries is the small recipes/page recipe, which creates the demo content model during provisioning.

What it does ship is a set of contributed modules that most projects need, each already wired into the environment-aware settings and the provisioning deploy steps. You add the rest after the initial setup is done.

The installer can remove every module in this section except Search API, which stays required even without the Solr service. Its Modules question lists 19 of them. Deselecting one removes the following in a single pass:

  • Its Composer requirement
  • Its settings override
  • Its entry in the install list of EnableDevelopmentModulesDeployStep
  • Its Behat feature
  • Its assertions in the settings tests

The other modules follow other installer questions:

  • ClamAV, Redis, and Search API Solr follow the Services question.
  • Migrate Plus and Migrate Tools follow the Use a second database for migrations? question.
  • Storybook follows the Storybook component library? question, which the installer asks only when you choose a custom theme.

How modules are configured​

The following table lists the mechanisms that bring a shipped module into a project:

MechanismLocationEffect
Composer requirementrequire in composer.jsonMakes the module available to the site. ➡️ See composer.json
Settings overrideweb/sites/default/includes/modules/settings.<module>.phpApplies configuration conditioned on the detected environment, reading values from environment variables. ➡️ See Settings
Config export exclusion$settings['config_exclude_modules'] in a settings overrideKeeps a module that never reaches production out of the exported configuration, so enabling it locally never dirties the config. ➡️ See Settings
Content modelCreateContentModelDeployStep in ys_baseApplies the recipes/page content model in every environment except production. ➡️ See Provision
Development provisioningEnableDevelopmentModulesDeployStep in ys_baseSets the site name and installs the contrib, service, demo, and development-only modules, including the email rerouting safety net, in every environment except production. ➡️ See Provision
Module dependencyys_demo.info.ymlInstalls Drupal helpers and Testmode as dependencies of the demo module. ➡️ See Demo module

A module can be required without being installed anywhere. Its settings override is then ready for the day the project enables it. seckit is the only module shipped that way on purpose. Fast 404 is never installed either, because its handler runs straight from the settings file. Migrate Plus and Migrate Tools install as dependencies of the ys_migrate module. Every other module on the Contributed modules page is installed by one of the preceding mechanisms, so selecting the module is enough to get it enabled.

To list the modules enabled on your local site, run the following command:

ahoy drush pm:list --type=module --status=enabled