Problem/Motivation
While the concept of Project (downloadable group of modules) is used in a number of places in Drupal, it is sometimes confused with 'module' and there's currently no API for modules to use 'projects'.
Modules using 'projects' atm in Drupal core are Update and Locale, the Locale module having some not very clean dependencies on Update module. Other module that could use project list is System module for filtering the module list (See issue linked below).
Proposed resolution
Create a minimal API and maybe some wrapper classes to be reused by modules using 'Projects'.
Remaining tasks
1) Create a common API to provide project list and information and to be used by Update and Locale. #1832946: Runtime translation download fallback works different from installer translation download fallback
2) Unify project lists and caching systems for Update and Locale, clean up dependencies between these two.
3) Create some Project class that can be used to wrap the huge amount of information project arrays contain.
4) Redefine how project information is retrieved from modules (I.e. is there always a main module named like the project?)
5) Explore other possible uses of project lists like filtering modules by project in the administration pages.
Related issues
This is a list of issues that could benefit from these improvements:
#1191488: META: Integrate l10n_update functionality in core
#1774024: Create helper function to find release info for a project (follow-up issue to locale collect project information)
#1547008: Replace Update's cache system with the (expirable) key value store
#1712102: Enable Alternate Project URLs
#857090: D8 Modules' page: Add links to module help, project page + merge operations links to one cell.
#602528: Filter module page on project name
#1355292: Come up with better alternatives for groupings on the modules page
#986616: Update Manager fails when the primary module/theme for a project lives in a subdirectory
#1777106: Make check for out of date project update information more robust for sites that are not running cron regularly (follow-up)
Comments
Comment #0.0
jose reyero commentedAdded link to other issue
Comment #14
smustgrave commentedThank you for creating this issue to improve Drupal.
We are working to decide if this task is still relevant to a currently supported version of Drupal. There hasn't been any discussion here for 8+ years which suggests that this has either been implemented or is no longer relevant. Your thoughts on this will allow a decision to be made.
Since we need more information to move forward with this issue, the status is now Postponed (maintainer needs more info). If we don't receive additional information to help with the issue, it may be closed after three months.
Thanks!
Comment #15
dwwHate to say it, but I think this might still be valid. From what I understand, locale still has some dependencies on update module. There are also issues to OOP-ify Update module, which this is related to as well. Eg a class to represent project info, not the monster arrays we pass around now.
Comment #16
catchYeah this comes up with #3500346: [meta] composer require / install module discrepancy issues too.