Gábor Hojtsy wrote:
Frankly I have no cool idea to go about this, but it should be done for sure. A new .info file key might be in order to mark base modules or required modules. Or we can go in and compute a dependency tree with the requirements and identify the root module ourselfs. This obviously only works if the dependencies are properly marked, and is definitely not how it works with Drupal itself, where modules just does not depend on system module.
There are two pieces of information in the .info file you can use: 1) The 'package' keyword which is not reliable at the moment because enough module authors misuse it that the update_status project has had at least 2 'feature' requests to set its package to 'Administration' even though there are clearly defined rules for that; both of these requests have pointed to other modules that do this incorrectly. 2) The 'project' keyword which is how update_status knows what modules are together. Now, this isn't 100% reliable either because it is placed there by the packaging system; and it doesn't tell you what the root module of the project is, but it can tell you what modules are, at least, all together. update_status does some guessing based upon directory location if the 'project' keyword is missing and it's 99.5% reliable (had a case where it's not reliable in the "best practice" scenario of placing a group of modules under 'contrib' and another group under 'custom'.)