Support multiple config update paths

Created on 2 June 2022, over 2 years ago
Updated 2 September 2024, 4 months ago

Problem/Motivation

With recipes in the mix, there are (at least) three possible update paths for extension-provided config: two that are currently supported in Drupal and a third that's new with recipes.

1. None. Once a module's configuration is installed, it is never updated. Any configuration added to a module after that module was installed is never installed (barring some edge cases involving optional config). This is the current default behaviour.
2. Full. When a module is updated, all previously-installed configuration that it provides is updated and any newly provided config is installed. Currently this can be achieved with the use of contrib modules: Update Helper or Config Distro + Configuration Synchronizer .
3. Partial. When a module is installed via a recipe, any extension-provided config installed by the recipe is on an update path, but any config added to the module afterwards is never installed.

Directly supporting updates is out of scope for recipes per se and will be addressed via other open issues. But we should ensure at this point that such an update solution has the tools it would need to support update strategies.

Proposed resolution

  • Add a key to the info array returned by ExtensionList::getExtensionInfo(), such as full_config defaulting to 1 (TRUE).
  • On recipe application, set that to TRUE if a wildcard was used for config install, FALSE otherwise.

And/or provide a method to directly determine whether a wildcard was originally used.

This gives an update solution the information it needs to support multiple update strategies.

Feature request
Status

Closed: won't fix

Version

11.0

Component

Documentation

Created by

🇨🇦Canada nedjo

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

Production build 0.71.5 2024