[Meta] Recipes Phase 2 Roadmap

Created on 8 May 2024, 5 months ago
Updated 25 August 2024, about 1 month ago

Problem/Motivation

Now that the work of our phase 1 efforts has been added to Drupal core as experimental, it is time to define our goals for phase 2.

Care should be given to the efforts of Project Browser and the Starshot initiatives to see how we can support them.

Main aim: to refine and improve the recipe system to be used in Starshot.

* Starshot blockers
* Add a core/core.recipes.api.php file
* Help end users find recipes on Drupal.org, in Project browser and the installer
* Improve the recipe application process
* Create config check points and allow recipes to be reverted
* Unpack Recipes using Composer
* Make recipes work with composer better
* Add and improve config actions
* Fix bugs
* Validate recipes and configuration
* Add additional core recipes

Proposed resolution

See below.

Remaining tasks

Starshot blockers

#3450487: Recipes should have a logo for findability in Project Browser β†’
#3317618: Create ProjectBrowserSource plugin β†’
✨ Recipes in Drupal core should have a logo for findability in Project Browser/Starshot Active
✨ Create config action which can create an entity for every bundle of another entity type Active
#3303126: Make it possible for recipes to prompt for input values β†’

Link to all issues tagged with Recipes initiative and Starshot blocker. β†’

Add a core/core.recipes.api.php file

#3439918: Add a core/core.recipes.api.php file β†’

Help end users find recipes on Drupal.org, in Project browser and the installer

#3421666: Decide and update recipe naming and classification standards β†’
#3447063: [Meta] Plan for recipe findability on Drupal.org and Project Browser β†’

Improve the recipe application process

#3307646: Merge in config updates when (re)applying a recipe β†’
#3307647: Support option of reverting to config as provided when (re)applying a recipe β†’
#3304910: Compare against a config snapshot when (re)applying a recipe β†’
#3303126: Make it possible for recipes to prompt for input values β†’
#3417012: Apply recipes in multisite architecture β†’
#3446524: Add tests and document how to include translations in recipes β†’
#3401875: Ensure that only one process can be applying a recipe at a time β†’
#3421942: Look for recipes in common locations where site builders might keep them β†’
#3454603: Many core recipes are not idempotent β†’

Extend config checkpoints to allow recipes to be reverted

#3333076: Support reverting a recipe β†’
#3432089: Add a command to allow users to chose to go back to a config check point, thus allowing them to revert recipe application β†’
#3409718: Add CheckpointListInterface::merge() or ::squash() to allow NOT keeping a checkpoint after application β†’
#3408525: Decide how to set the initial checkpoint hash β†’
#2960870: Snapshot configuration as installed and updated from recipes and extensions β†’

Unpack Recipes using Composer

#3355485: Dependencies should be 'unpacked' to the root composer.json and merged/resolved β†’

Make recipes work with composer better

#3447875: [Meta] Update all the composer things for recipes β†’

Add and improve config actions

#3439713: Should \Drupal\Core\Config\Action\Plugin\ConfigAction\SimpleConfigUpdate::apply() error if it processes a config entity β†’
πŸ“Œ Determine which core config entity methods should be config actions Needs review
#3304424: Add config action for StaticMenuLinkOverrides::saveOverride() β†’
#3305859: Add config actions for views β†’
#3446589: Add config action for Config::clear() β†’
#3437637: Create a new config action to robustly configure an entity form or view display β†’
#3365328: Add a config action to add to an array of configuration β†’

Support automated tests of recipes

#3452995: [Meta] Support automated tests of recipes β†’

Fix bugs

#3439918: Add a core/core.recipes.api.php file β†’
#3372078: Themes installed by recipes have incorrect/duplicate block config when applied to a site that has an existing theme β†’
#3311249: Dependencies difference on unchanged configuration throws does not match exception β†’
#3393086: Optional configuration is imported even when module dependencies aren't there. β†’
#3315694: Allow recipe command to write to the container - ensuring that cache does not be cleared after a recipe installs a module β†’
#3304895: Determine recipe pattern for optional config and modules β†’

Validate recipes and configuration

#3405328: [meta] Make recipes safer to use in the real world by supporting config validation and rolling back a broken recipe β†’
#3401925: [PP-2] After a recipe is successfully applied, validate all of the config that was imported or modified by config actions β†’
#3439716: Validate config file name in recipe.yml β†’
#3443603: Validate configuration created by recipes during the installer β†’

Add additional core recipes

#3365453: Model core's minimal install profile as recipes β†’
#3365143: Model core's Umami install profile as recipes β†’

User interface changes

TBD

API changes

TBD

Data model changes

TBD

🌱 Plan
Status

Active

Version

11.0

Component

Code

Created by

πŸ‡ΊπŸ‡ΈUnited States thejimbirch Cape Cod, Massachusetts

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

Merge Requests

Comments & Activities

Production build 0.71.5 2024