2

Does there exist an updated master list of contrib modules in some easily parsed format (csv, json, xml ... whatever) that I can use for quick reference to see active full projects (not sandbox)?

I'm particularly interested in a list of project names and their machine names. I'm working on a custom module that may turn into a contrib module and I'd like to make sure my project name and machine name aren't already in use.

I know I can search here:

https://www.drupal.org/project/project_module

But it'd save time if there was a list I could quickly reference. A quick Google search yielded no usable results in the first few pages.

  • 1
    Don't see why this caught downvotes. It's an interesting, real-world, problem, and I don't think we have had it here before. – mpdonadio Mar 20 at 17:27
  • Maybe it's the root problem behind it which OP tries to solve with that approach why this question caught the downvotes. As one answer below suggests to just check if the URL to the possible new module is taken or not. Why would you need serialized data for that? – leymannx Mar 20 at 20:01
  • 2
    Trying to access the URL doesn't help with searching projects with a similar name or machine name, if I don't want to try all the possible alternatives. Since the OP just talks of being sure the machine name isn't already in use, that could be a solution, but an answer should point out that that method doesn't help me with naming a project View and creating confusion with the Views module. – kiamlaluno Mar 20 at 20:45
6

It will be a pretty big list, you could get all packages known by composer which should contain pretty much everything

composer show drupal/* --all
4

If you just need to know if a project machine name is already used, you can simply try the project URL for that machine name (https://www.drupal.org/project/<project machine name>). If you get a 404 error, it means the project doesn't exist, while a 403 error means the project exists but it's not visible to you.
This method doesn't help much if you want to know if there are projects with a similar machine name, if you don't want to try all the possible machine names that are too similar to the one you though to use.

What the Drupal.org REST API returns in https://www.drupal.org/api-d7/node.json?type=project_module contains much information, even more than you probably need, but it's quite difficult to parse.

There are feeds for:

Unfortunately, they list only the new modules.

There is also a view listing all the projects, but (as far as I can see) it doesn't have a feed associated.

Depending on how you parse that list (Do you have a script extracting the project names and machine names?) you could either use the Drupal.org REST API or the view listing all the projects. The latter allows also to filter between full projects, sandboxes, and core compatibility.

3

Drupal.org has an API that exposes all node data. Among those nodes, are project_module nodes that are contrib module projects. The API is using the RESTful Web Services module so you can request an XML or JSON of the data:

  • https://www.drupal.org/api-d7/node.json?type=project_module
  • https://www.drupal.org/api-d7/node.xml?type=project_module
3

Why do you try to make simple things so complicated? As I understood, you just want to create single project (module), am I right?

So why don't you just put your desired project machine name at the end of this url, to check, whether it is already taken or not: https://www.drupal.org/project/YOUR_COOL_PROJECT_MACHINE_NAME

Also you can reference this page, to see all project's archives (and their names, obviously) - https://ftp.drupal.org/files/projects/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.