Problem/Motivation

Recipes don't yet have a full spec for how they will be handled on Drupal.org, so in the meantime folks are posting them as general projects. This works functionally but there is no way to (relatively easily) search existing recipes.

Proposed resolution

Discussed with @hestenet at DrupalCon taking a minimal approach to this for now, to enable searching but without making many changes. That would be adding a flag to general projects so they can be marked as recipes, and creating a listing page similar to the Modules page where they can be searched.

This is just for finding on drupal.org, no changes are being requested for APIs.

Remaining tasks

  1. Add a flag to general projects to mark them as recipes
  2. Create a listing page showing projects flagged as recipes, similar to https://www.drupal.org/project/project_module, with filters for:
    1. Keyword search
    2. Category

Issue fork drupalorg-3516327

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

pameeela created an issue. See original summary.

drumm’s picture

Title: Add a flag and listing page for recipes » Add a listing page for recipes
Issue summary: View changes
Related issues: +#3476486: Add composer release type field, +#3489066: Add tracking for when recipes from Drupal.org are applied

A flag isn’t needed, we already have data on what’s a recipe since #3476486: Add composer release type field

Any listing will not have a chance to be good until #3489066: Add tracking for when recipes from Drupal.org are applied moves forward. We can only sort by data we have, like alphabetical or last updated date.

pameeela’s picture

Thanks @drumm, FWIW I definitely think there is value in having the listing page before that lands, as most recipes will be brand new for now. But I will try to move that forward as well.

drumm’s picture

@pameeela - Is there any part of #3421666: Decide and update recipe naming and classification standards that could move forward with this? For example, a way for recipe maintainers to select “Site starter” or “Site feature”?

I see categories in the issue summary, does this mean they have the same https://www.drupal.org/docs/develop/managing-a-drupalorg-theme-module-or... categories as modules?

The immediate next step will be adding a hidden field on general projects in D7 which rolls up the project’s releases’ composer types into a multivalued text field in anticipation of conditional field(s) for projects that have releases that are recipes. I initially thought this would be done only for search indexing, but we’ll likely want this data always available on general project nodes without rummaging through all releases.

We’re tentatively planning on taking a little extra time to build the actual browsing pages on new.drupal.org from the start, rather than building it twice.

pameeela’s picture

@drumm great question re: category, I was not even thinking, but of course the field is not on general projects.

I'll try to get consensus on this. I do think the module categories will be applicable, as in many cases recipes are providing an optimised setup for a single module or a few modules.

The separately, we can try to resolve the classification. I wouldn't block this on those tasks, but I think we should be able to decide at least on reusing the categories pretty quickly.

drumm’s picture

I’m thinking the same module categories would be good to have for consistency in browsing projects, whether there is a unified module & recipe search, or switching between the two modes.

pameeela’s picture

Agreed, no objections raised on Slack either.

  • drumm committed 0afabad7 on 7.x-3.x
    Issue #3516327: Add hidden composer types field on general projects for...

  • drumm committed 5a011654 on 7.x-3.x
    Issue #3516327: Populate field_project_composer_types on release update
    

  • drumm committed 9adc2dfa on 7.x-3.x
    Issue #3516327: Add categories for general projects with drupal-recipe...
drumm’s picture

Version: 7.x-3.x-dev » 1.0.x-dev

The work in D7 is done, maintainers with a release that is a recipe can select categories when they edit their project. (We are getting away from “project types” whenever we can, projects change types between releases.)

We are building the recipe listing in new.drupal.org, so that part does not have to be built twice. The next step is #3518595: Migrate new project_general fields for recipe browsing

fjgarlin’s picture

Status: Active » Reviewed & tested by the community

Fields added to the new site (private repo for now):
- Composer types: https://gitlab.com/drupal-infrastructure/sites/drupalorg/-/commit/b19914...
- Project categories: https://gitlab.com/drupal-infrastructure/sites/drupalorg/-/commit/7e7ebd...

The rest will be done in the migration issue.

fjgarlin’s picture

Status: Reviewed & tested by the community » Fixed
drumm’s picture

Status: Fixed » Active

Going to leave this open for building the browsing UI on new.drupal.org. That will need to be backed by search API for full text search, so there might be additional steps to getting all the requirements ready.

drumm’s picture

Assigned: Unassigned » drumm

I’ve started work on the next phase here - configuration updates to get general projects indexed.

thejimbirch’s picture

  • drumm committed ed8f0b10 on 1.0.x
    Issue #3516327: Logo fetching cleanup ensuring general projects get...

  • drumm committed 2228a1e7 on 1.0.x
    Issue #3516327: Add default project logo image
    

  • drumm committed 13a9be59 on 1.0.x
    Issue #3516327: Redirect to www.drupal.org when a node is found, but...
drumm’s picture

Status: Active » Fixed

https://new.drupal.org/browse/recipes is now available. #3489066: Add tracking for when recipes from Drupal.org are applied must be taken on by someone if we want the page to be useful. Until that is done, this will be sorted alphabetically, and might not get much more prioritization.

Status: Fixed » Closed (fixed)

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