0️⃣ Who is here today? Comment in the thread below with your drupal.org username to introduce yourself and share a recipe you've made!

benjifisher Hi! I am benjifisher on d.o.
bryan :wave: b_sharpe on d.o
bsnodgrass (he/him) bsnodgrass on D.O. back from vacation refreshed!
alexpott :wave: alexpott and I’ve made spaghetti carbonara… (cream is for heathens)
thejimbirch Ah, you all are no fun.  I want to see moar recipes =}Here's one I made last night playing with the AI CKEditor module.https://github.com/kanopi/saplings-ai-ckeditor-experience
bryan Mine are all non-public unfortunately
leslieg leslieg on d.o.  Have not created any Drupal recipes yet
benjifisher Can we open threads in the main channel, or is there a thread to add discussion topics?
thejimbirch Ah, I missed making that thread to add topics @benjifisher .  Feel free to add the next number, I am done for now.
Bob McDonald (ultrabob) ultrabob.  I’ve made a few internally, and we’ll be ramping up in the coming weeks, and hopefully engaging more to contribute back to the initiative.
mandclu mandclu... Events recipe :calendar: (edited)
guptahemant guptahemant, internally we have been working on converting our setup profile to recipes
hestenet (he/him) Tim from the DA - just following along!
markie markie here.. I am still working on a hockey league recipe
sonfd sonfd, in a former life with recipes jr. (i.e. about 18 months ago) I created a whole proprietary install profile built with dozens of recipe ingredients, dishes, and meals.I haven't touched recipes in about 12 months which is a shame because soooo much has happened in that time :heart_eyes: :tada: (edited)
RobLoach robloach here! Been looking through some of the AI-based Recipes :fire:
raubin r.aubin here, creating some recipes to test things out and our team's working on the contact form recipe
bircher bircher :wave:
ltrain Sorry I’m late to the party… @ltrain here. We’ve added paragraphs and layout builder recipes to our starter kit at Four Kitchens (choose your own adventure). They have our default components that integrate with our front-end component library and Emulsify theme (also comes with the starter kit). I need to add them to the recipe book. I’ll do that this week!
thejimbirch Cleverly named also. :chefkiss:
jnicola I wasn’t here yesterday, but here meow!I’ve not made Recipes yet. Working to get RecipeDiscovery in place as a few of us spent some time on it at DrupalCon. We (PDX Drupalcon folks) also made a bare bones “RecipeUI” that worked similar to to the Module UI and did install recipes, as nothing existed at the time and folks were really excited and intersted. That is tabled currently pending RecipeDiscovery and if ProjectBroswer is just straight up superior to it now.

1️⃣ :tada::tada::tada: Recipes can opt out of strict comparisons with existing config :tada::tada::tada:This change will be in 10.4 and 11.

thejimbirch We should be able to close a lot of the issues in the Recipes Application section of our Roadmap[#3446089]#recipe-application
phenaproxima Let me also state, importantly, that the default behavior is still to do strict comparisons. We might change that, but for now, the status quo is unchanged. And in some cases, you might want strict comparisons. Don’t just opt all your recipes out of it and call it a day. (edited)
phenaproxima This is also not the same thing, to be clear, as force-apply. Force-apply would be “you WILL use this config, no matter what”. We don’t support that yet.
phenaproxima This is more “if you already have config with the same name(s), I’ll just leave those existing ones alone”
alexpott I’ll just leave those existing ones aloneIs not quite correct. It’s “ignore the config files in recipe or modules and get on with running the config actions already”
phenaproxima @alexpott :thinking_face: That makes it sound like it skips import entirely and runs config actions only, which is not the case. It will still import whatever doesn’t exist.
alexpott “ignore the specified config files in recipe or modules if they exist and get on with running the config actions already” …my point being is that we don’t really leave them alone.
phenaproxima Oh, I see. We don’t leave them “alone” in the sense that the config actions ignore them. That’s true.
Rajab Natshah WOW, so nice - I faced issues with that.I had case on this with
Rajab Natshah My Playground testing case was.Recipes to assign permission to active user roles ( on the projects page )https://git.drupalcode.org/project/cucumber_recipes/-/tree/10.0.x/cucumb... to assign permission to active user roles ( on the Products page )https://git.drupalcode.org/project/cucumber_recipes/-/tree/10.0.x/cucumb... to assign permission to active user roles ( on the Components page )https://git.drupalcode.org/project/cucumber_recipes/-/tree/10.0.x/cucumb... user roleshttps://git.drupalcode.org/project/cucumber/-/tree/10.0.x/config/install... user roles on optional caseshttps://git.drupalcode.org/project/cucumber/-/tree/10.0.x/config/optiona... for optional roleshttps://git.drupalcode.org/project/cucumber_user_roles/-/tree/10.0.x/mod...
Rajab Natshah I think strict: false could shrink that in my custom playground profile install_tasks to work well with my selected recipes while installing
phenaproxima Probably. Use it with forethought
guptahemant Let me also state, importantly, that the default behavior is still to do strict comparisonsBut in the change record i noticedThat said, in certain situations, recipes might want the strict behavior. The recipe can set strict: true to keep doing things the old way.So just to confirm what’s the correct and  do we need to update the change record to clarify things correctly
phenaproxima @guptahemant Yes, the CR is accurate. The default is to still do strict, but I would still recommend setting strict: true just to be explicit about your intentions. And, if we change the default, your recipes will keep working as expected.
bircher I think this solves the issue that we discussed with @alexpott in Barcelona (for which I din't open an issue on d.o) with the naïve recipe creation where you just copy the config from the sync directory into the recipes config folder instead of putting it into a "create if not exists" section in the recipe yaml file. I don't have any beef with the default to be strict if it is so easy to set. Time will tell which is the more used option, so I happy that the recommendation is to be explicit (ie set it to TRUE if you actually care about the strict comparison)

2️⃣ Looking to contrib?  Here are som hottt links!Recipes Initiative Tag - RTBCRecipes Initiative Tag - Needs ReviewRecipes Project - Needs Review

bryan on that note, whats the current "Should this be core or distributions_recipes" status? I'm out of the loop on the expectations here
thejimbirch Bug fixes and minor improvements have been going to core.  I appreciate the Recipes Initiative tag so we can track.Things that need more than one issue, or are larger epics can be on the project.  We can always move the issue to core.

3️⃣ Probably the biggest epic we have still Needs Work, but feedback has been provided.Dependencies should be 'unpacked' to the root composer.json and merged/resolved

alexpott I plan to get to this one really soon. It’d be great to land as it is a key piece of the recipe puzzle.
Rajab Natshah Unpacker :star-struck:For sure when this is in Drupal Core, we will need the following.Maybe in Core, or it could be in the Composer Patches ~2.#3452522: "Unpack" patches from a recipes composer.json to the root composer.json

4️⃣ Why are all recipes either separate projects or inside core/recipes/?

benjifisher If someone will point me to where this decision was discussed, then I will not ask anyone to explain it here.
benjifisher OTOH, if the answer is "seemed like a good idea at the time", I will suggest some alternatives.
bryan I'm not sure I follow what you're asking? Are you asking why they aren't in folders specific to their function?
thejimbirch Recipes aren't namespaced.
phenaproxima @benjifisher They are all in separate projects, as far as you need be concerned. Core is special cased because of technical reasons.
phenaproxima Core is the only thing that can ship multiple recipes.
benjifisher Why can't a module include recipes/mymodule_example/recipe.yml or a bare recipe.yml?
phenaproxima A module could include that, @benjifisher, but it would not be able to use any recipes except for core’s.
alexpott And a module’s recipes would not turn up magically in discovery.
thejimbirch If a module had a recipe, there will be no doubt be some conflicts in how the config folder is consumed also. (edited)
benjifisher ... it would not be able to use any recipes except for core’s.Cool.
phenaproxima I like to think of it as a cookbook. If you’re building a cookbook, you put all the recipes in the same binder. You don’t scatter them all over your house. 🙂
benjifisher I am not thinking of the recipes that we want to expose to site builders, like https://www.drupal.org/project/events. I am thinking of the small recipes used as building blocks. So it is OK that they can only use core recipes.
alexpott @benjifisher if they are to be building blocks then don’t you want other more complex recipes to be able to use them?
phenaproxima :this2: If you have any desire for your recipe to be shared with the world, or used to build up other recipes, it needs to be its own package.
benjifisher For example, the content_editor_role might live in the user module.
phenaproxima It would then become unusable by other recipes.
benjifisher ... don’t you want other more complex recipes to be able to use them?Yes.It would then become unusable by other recipes.Is that fundamental or current policy?
phenaproxima Fundamental technical limitation.
alexpott But one that could be discussed.
alexpott I do not want to do recipe magical discovery
phenaproxima Agreed.
benjifisher I have to run in 5 ...
alexpott The ability to place modules inside modules and anywhere has been awful - it is complex and fragile
benjifisher But one that could be discussed.Consider this thread the discussion?
alexpott However, allowing @user/content_editor_role might be okay. And that map to user module directory /recipes/content_editor_role
bryan Isn't a recipe without the building blocks not a broken recipe?
phenaproxima @alexpott “Might” being the key word - that would implicitly make recipe loading dependent on extension discovery.
benjifisher One example: maybe some day the content_moderation module is moved out of core. What happens to the editorial_workflow recipe?Maybe it goes into drupal_cms. I guess the default is that it becomes a separate project. I suggest that it stay with the content_moderation module.'
alexpott recipe loading dependent on extension discovery.That’s already true… it’s Drupal everything is dependent on extension discovery!
benjifisher Another example: the paragraphs_demo module (part of the paragraphs project) could be a recipe instead of a module.Did you say something about modules inside modules? :wink:
phenaproxima @alexpott Yeah, BUT…extension discovery has to contend with modules-in-modules. So, if you have @paragraphs/some_recipe , and there’s more than one paragraphs.info.yml in the code base, which one will it find?
phenaproxima That introduces ambiguity, which is precisely what we wanted to avoid by having all recipes in one place.
alexpott @phenaproxima it’ll find the same one it will use for the code. That’s extension system magic and I agree not lovely but we already cope with that. It’s a solved problem.
phenaproxima Gotcha. But YUCK — we really wanna have to document that?
alexpott Nah - we don’t… and people have lived with and (ab)used this for years…. I think the D7 pressflow shipped with a node module that overrode the core provided module for example.
phenaproxima I could be persuaded, but I’m not certain that the value-to-confusion ratio is favorable here (edited)
phenaproxima All your building blocks go in one place. Simple as that.
phenaproxima All your building blocks go in…various places…I don’t want to have to explain that
alexpott Yeah the current approach is complete and, once understood, a limitation that inspires clarity.
phenaproxima Modules that want to ship little one-off recipes that are not meant to be composed, that’s one thing. But I’m not sure it’s worth officially supporting and expanding that paradigm.
alexpott I think there is another side of this topic that’s worth thinking about. Say you’re building Drupal CMS and someone wants to use the recipes there… to build a similar thing but with a react or vue or whatever frontend. How are they going to do that. Will each track produce a drupal-cms/track_name recipe that’s available separately? How will we encourage the cookbooks to share?
phenaproxima That’s the idea - the components are supposed to eventually be available individually, once we figure out the subtree splitting.

Participants:

benjifisher, b_sharpe, bsnodgrass, alexpott, thejimbirch, leslieg, ultrabob, mandclu, guptahemant, hestenet, markie, sonfd, robloach, r.aubin, bircher, ltrain, jnicola, phenaproxima, rajab natshah

Comments

kristen pol created an issue. See original summary.

kristen pol’s picture

Issue summary: View changes

Added meeting notes and participants.

kristen pol’s picture

Status: Active » Needs review

Needs review and credits

jdleonard’s picture

Issue summary: View changes

Converted participant list to use d.o usernames to ease crediting

thejimbirch’s picture

Status: Needs review » Reviewed & tested by the community

hestenet credited alexpott.

hestenet credited bircher.

hestenet credited b_sharpe.

hestenet credited jnicola.

hestenet credited leslieg.

hestenet credited mandclu.

hestenet credited markie.

hestenet credited r.aubin.

hestenet credited robloach.

hestenet credited sonfd.

hestenet credited ultrabob.

hestenet’s picture

Status: Reviewed & tested by the community » Fixed

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.