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:
| Mechanism | Location | Effect |
|---|---|---|
| Composer requirement | require in composer.json | Makes the module available to the site. ➡️ See composer.json |
| Settings override | web/sites/default/includes/modules/settings.<module>.php | Applies configuration conditioned on the detected environment, reading values from environment variables. ➡️ See Settings |
| Config export exclusion | $settings['config_exclude_modules'] in a settings override | Keeps a module that never reaches production out of the exported configuration, so enabling it locally never dirties the config. ➡️ See Settings |
| Content model | CreateContentModelDeployStep in ys_base | Applies the recipes/page content model in every environment except production. ➡️ See Provision |
| Development provisioning | EnableDevelopmentModulesDeployStep in ys_base | Sets 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 dependency | ys_demo.info.yml | Installs 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