Document the relations between packages, projects, extensions, modules, themes, and profiles

Created on 21 April 2023, about 2 years ago
Updated 3 May 2023, about 2 years ago

Problem/Motivation

See #8 and #9, and add that to package_manager.api.php. Each package MAY contain zero or one projects, as well as zero or more Drupal extensions, et cetera.

Steps to reproduce

Proposed resolution

Remaining tasks

User interface changes

API changes

Data model changes

📌 Task
Status

Needs work

Version

3.0

Component

Documentation

Created by

🇮🇳India yash.rode pune

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

Comments & Activities

  • Issue created by @yash.rode
  • First commit to issue fork.
  • 🇧🇪Belgium wim leers Ghent 🇧🇪🇪🇺

    Thanks for creating this! 😊👍

    Crediting @yash.rode.

  • Assigned to yash.rode
  • Status changed to Needs work about 2 years ago
  • Open on Drupal.org →
    Core: 10.1.x + Environment: PHP 8.1 & MySQL 8
    last update about 2 years ago
    Not currently mergeable.
  • @yashrode opened merge request.
  • Open in Jenkins → Open on Drupal.org →
    Core: 10.1.x + Environment: PHP 8.1 & MySQL 8
    last update about 2 years ago
    389 pass, 79 fail
  • Open in Jenkins → Open on Drupal.org →
    Core: 10.1.x + Environment: PHP 8.1 & MySQL 8
    last update about 2 years ago
    389 pass, 79 fail
  • Open in Jenkins → Open on Drupal.org →
    Core: 10.1.x + Environment: PHP 8.1 & MySQL 8
    last update about 2 years ago
    758 pass
  • Issue was unassigned.
  • Status changed to Needs review about 2 years ago
  • Status changed to Needs work about 2 years ago
  • 🇺🇸United States phenaproxima Massachusetts
  • Assigned to wim leers
  • Status changed to Postponed: needs info about 2 years ago
  • 🇺🇸United States phenaproxima Massachusetts

    As I think about this, I realize I'd like some input from Wim before we continue.

    Why? Because project name and extension name are two different things. We can map packages to projects, which sometimes correspond to extensions, but not always. A project can contain multiple extensions. So I'm wondering if we even want to make this change, really.

  • Assigned to phenaproxima
  • Status changed to Needs review about 2 years ago
  • 🇧🇪Belgium wim leers Ghent 🇧🇪🇪🇺

    Because project name and extension name are two different things.

    We can map packages to projects,

    Ah, no, it can't: d.o-served packages are named drupal/PROJECT_NAME and map to https://www.drupal.org/project/PROJECT_NAME 😬

    which sometimes correspond to extensions, but not always. A project can contain multiple extensions. So I'm wondering if we even want to make this change, really.

    You're right.

    Mea culpa. 😢

    Can we then rescope this to add crystal clear documentation to package_manager.api.php to forever document the 1:1, 1:0|1, 1:N and N:1 relations between package, project, extension, module, theme and profile? 🙏

  • 🇺🇸United States phenaproxima Massachusetts
  • Assigned to wim leers
  • Status changed to Needs work about 2 years ago
  • 🇧🇪Belgium wim leers Ghent 🇧🇪🇪🇺

    MR closed, issue summary updated. We need a new MR here. I'll take this on, so @phenaproxima can review 😊

  • Open in Jenkins → Open on Drupal.org →
    Core: 10.1.x + Environment: PHP 8.1 & MySQL 8
    last update about 2 years ago
    758 pass
  • @wim-leers opened merge request.
  • Open in Jenkins → Open on Drupal.org →
    Core: 10.1.x + Environment: PHP 8.1 & MySQL 8
    last update about 2 years ago
    758 pass
  • Issue was unassigned.
  • Status changed to Needs review about 2 years ago
  • 🇧🇪Belgium wim leers Ghent 🇧🇪🇪🇺

    First draft pushed up.

  • 🇺🇸United States phenaproxima Massachusetts

    Reviewed and...well, I have to be very honest: I think the proposed wording is over-explaining it.

    I think that all we really need to say is this: Composer packages are the main thing we're dealing with. They can contain any number of projects (I know, in practice they only contain one, but in theory they could contain more); a "project" is a thing with a page on d.o (and is sometimes colloquially referred to as a "module" or "theme"). Each project, in turn, can contain any number of extensions (meaning modules, profiles, and themes).

    This stuff is already complicated, so IMHO we want to explain the bare minimum to prevent information overload.

  • Status changed to Needs work about 2 years ago
  • 🇺🇸United States tedbow Ithaca, NY, USA

    I don't think the current MR explains it well and I don't think the suggestion in #15 really gives enough info to be helpful.

    To me this really feels like it should be drupal.org documentation page rather than something that is in package_manager.api.php. Because even if you don't use package manager at all these concepts still apply and I don't think they are generally well understood.

    So I would be in favor of documentation page on drupal.org that is not package_manager specific and just linking to that page in package_manager.api.php

  • Assigned to tedbow
  • 🇧🇪Belgium wim leers Ghent 🇧🇪🇪🇺

    I'm fine with moving this out of Package Manager into core.api.php or something else like that that is very general/broad.

    But … this is the very first time that anything in Drupal core truly needs to care about these connections. I personally got very confused while working on 📌 Create a PreApply validator that prevents Drupal projects from being removed if they are enabled Fixed . And I've been in Drupal for >15 years.

    Anything that is so thoroughly confusing should be documented IMHO.

    I like where @phenaproxima was going, but @tedbow thinks it's not helpful enough. So … @tedbow, could you propose an alternative? 🙏

  • 🇧🇪Belgium wim leers Ghent 🇧🇪🇪🇺

    (Discussed in detail during yesterday's meeting, @tedbow is indeed going to update the MR.)

Production build 0.71.5 2024