Problem/Motivation
Drupal recipes allow the automation of Drupal module install and configuration via the user interface and via the Drupal recipe composer plugin.
A Drupal recipe is a tool for Site Builders and Developers to add functionality to a Drupal site. It is like a recipe that provides a series of steps to add functionality. These steps could be taken manually to arrive at the same point. For example, I might want to provide a blog recipe that configures modules to provide a great blogging experience and creates a few sample posts. Or it can include a number of other starter templates and modules to build a full site experience. Ideally Drupal recipes would not configure an entire site themselves but would break out their functionality into smaller starter templates that can be reused by other Drupal recipes.
Drupal recipes are:
- Applied to Drupal sites, they are not installed.
- Easy to share
- Do not lock sites in
- Composible from other Drupal recipes
Proposed resolution
Maybe "Drupal recipe" is not the best name. In Dries's recent keynote they were called Starter templates. Starter template as a name has been dropped because It potentially clashes with starterkit themes. To some people "starter" suggests something that can only be used during install. Template is a word that clashes with HTML and twig templates.
Drupal recipe has some current usages: Lando, DrupalRecipes project (the Fox Valley Drupal group has no issues with core's usage).
Other potential suggestions have been:
- Starter template
- Feature template or Feature builder
- Component template or Component builder
- Drupal build recipe
- Site Recipes
- Feature starter templates
Comments
Comment #2
alexpottPersonally I'm +1 for the name Drupal recipes. I don't think this name needs to be plastered all over the UI but it is analogous to very similar concepts in Drush, Symfony and Lando and other communities.
I've created this issue so we can move with the recipe name in existing and new issues so with can start work without having to use the label starter templates which have a few downsides but not completely close down the discussion.
Comment #3
alexpottTagging so we can have a single list of all issues in the initiative.
Comment #4
alexpottComment #5
cilefen commented“Recipes” are the things Symfony Flex uses and overlap a little, conceptually. The similarity could be a good reason to use the same name.
Comment #6
dwwThanks for opening this issue, but moving ahead with better terminology than “starter kit”. As I wrote on one of the monster Slack threads on this topic:
1. Naming is hard. 😉
2. Blueprints are exact. There’s no flexibility, you have to build precisely what is drawn / written or you’re in trouble. And it’s usually a big effort to get 2 or more separate blueprints to play nicely together. You generally need 1 big blueprint for your whole project or you’ll regret it. Blueprints tend to be expensive and hard to get.
3. Most recipes give you tons of leeway to make substitutions and modifications. It’s normal to combine many dishes in the same meal. Generally much more flexible. Easy to find / share. Usually free.
4. Agree with a ton of what’s already been said I don’t want to repeat.
5. Given what we’re building, and the options / proposals so far, I think “recipe” most accurately maps to what we mean and invokes the right imagery.
The big drawback of “recipe”, as @mandclu points out, is that you generally have to follow them yourself and assemble the dish manually. These are magical, automated recipes. So in that sense, it’s more like ordering take out, or selecting toppings for a pizza or something. The site builder just wants to assemble the buffet for their users, they don’t want to have to do all the cooking themselves.
- -
I still think “recipe” is good, and we can make it clear these are recipes that come with a robot that can prepare them for you. 😉
Comment #7
alexpottOther naming considerations from the Symfony world as I learn more about Flex (thanks @grekas).
Comment #8
anoopjohn commented"Drupal recipe" sounds good. We can bring the 'automatic' install vs 'manual instructions' aspect clear by making the command look automatic.
php core/scripts/drupal recipe PATH/TO/RECIPESo instead of 'recipe' we can use something like 'install' or 'apply' or 'cook' maybe :)
php core/scripts/drupal cook PATH/TO/RECIPEOr maybe
drush cook PATH/TO/RECIPEComment #9
chrisfromredfinActually love the idea of recipe, and building on the ideas from anoopjohn, I love the marketability of "drush cook " - not to mention things have many layers of composability. Recipe -> Course -> Meal - Cook it all.
Comment #10
leslieg commentedBased on the previous comments and research from other communities, I agree that "Drupal recipe" is a good name for this initiative.
Comment #11
alexpottAnd a collection of recipes can be a cook book or a recipe book.
Comment #12
anoopjohn commentedOn a lighter note, people who can cook recipes will be called "Drupal cooks" while those who can prepare recipes will be called "Drupal chefs" :)
Comment #13
Manoj Raj.R commented"Drupal site recipe" sounds good for me.
Where I agree that "Drupal Recipe" looks fine and good for me from the previous comments and community members.
Comment #14
kclarkson commented+1 for Drupal Recipes. We have used the world “template” a bunch of times and as someone who lives in twig why confuse things at all.
For beginners using common terms is a good idea. A recipe is a set of steps you do to build something and when cooking you can mix multiple recipes together to make a new recipe or use them together to make a meal.
Thank you to everyone working on this. IMHO this initiative has the potential to really increase Drupal adoption by letting islets install different recipes to give Drupal a try.
Comment #15
alexpottI'm going to mark this as reviewed and tested by the community. At Drupalcon Prague there was quite a bit of talk about recipes including the Initiative keynote, Dries's keynote, my session and the sprint on Friday. The name fits. People immediately understand that it is a list of instructions to perform on your site.
Comment #16
alexpottThis has been rtbc for a week and was talked out in the initiative meeting. Given there have been no more comments going to mark as fixed.
Comment #17
alexpottLet's credit everyone for the discussion :)
Comment #19
bhogue commentedHow about Experience Builder?
Comment #20
Mangalesh.KR commentedHello Everyone,
I tried the recipe concept, but when I executed the below PHP command
"php core/scripts/drupal recipe recipes/contrib/[recipe-name]" in my inside of Drupal web/ directory using in CLI,
it showed the error such as " Command recipe is not defined."
anyone, please help us, why i am getting the "recipe is not defined"?
Does it need to add "recipe" keyword anywhere in the files?
Thank you in advance.