Define a new project type for drupal.org

Created on 25 October 2022, about 2 years ago
Updated 6 May 2024, 8 months ago

Problem/Motivation

For Project Browser integration, we will need a registry of recipes from which to pull.

Proposed resolution

What is most logical is having a new "project type" on Drupal.org called "recipe;" however this could be negotiable if we think there's a better / separate site on which to host these recipes.

Remaining tasks

- decide where to host the registry
- decide the information architecture of the "recipe" entity (probably taking inspiration from existing module_project and/or theme_project)
- build the registry infrastructure

User interface changes

A new browser on Drupal.org to browser recipes, and a new tab in the Project Browser to browse Recipes.

API changes

Existing Drupal 7 rest services would "Just work," but we may only implement this on drupal.org D9 version first, which would be a true JSON:API.

Data model changes

New entity/bundle on d.o, if we go with d.o for the registry.

📌 Task
Status

Active

Version

10.0

Component

Miscellaneous

Created by

🇺🇸United States chrisfromredfin Portland, Maine

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.

  • 🇺🇸United States thejimbirch Cape Cod, Massachusetts

    @drumm stated in Slack:

    I’d like to see the UX ideas for browsing & installing recipes before even thinking about which content type they might be or anything else technical.

  • 🇺🇸United States thejimbirch Cape Cod, Massachusetts
  • Status changed to Postponed 7 months ago
  • 🇺🇸United States thejimbirch Cape Cod, Massachusetts
  • Status changed to Closed: works as designed 2 months ago
  • 🇺🇸United States drumm NY, US

    Since projects are increasingly changing types, and can have different types in different releases, separate project types are becoming problematic. These “project” types are really release types.

    With Add composer release type field Active , we now store the type from a project’s composer.json. So we can query for all projects that have a release with a composer.json containing "type": "drupal-recipe"

    Recipe projects do need to be created as General Projects, that is the only content type with Packagist.org integration. The Packages.Drupal.org integration for modules & themes is specifically for handling Drupalisms, like submodules & .info.yml dependencies. Packages.Drupal.org hard-codes advertising modules as "type": "drupal-module".

    As far as I’m aware, Packagist.org and Packages.Drupal.org can’t share distribution of metadata for a single package, with the module releases coming from packages.drupal.org and usual Composer-compatible releases coming from Packagist.org. So changing the project type of a module will still need to be considered on a case-by-case basis. Creating a new project instead of replacing an existing module’s codebase is much better.

Production build 0.71.5 2024