Skip to content

META: Considerations to support multiple module ecosystems #135

Open
@andrewbelcher

Description

@andrewbelcher

Is there an existing issue for this?

  • I have searched the existing issues

Is your feature request related to a problem?

AI module is currently exploring how to support development for the wider AI ecosystem (see #3532795), which involves being able to collect a number of separate projects into a single development project with consistency.

I think ddev-drupal-contrib configured in the AI module (the core project) would be a great way to do this, as it already handles a huge amount and gives great consistency with Drupal CI etc.

There are, however, a couple bits that might need some consideration... It may also be that upon consideration it's too much complexity to be worth supporting.

Describe your solution

Assuming default config for paths etc, but should work with alternative supported config.

  • You probably want all the "ecosystem" modules in web/modules/custom. #3536151 gives a potential solution for that using require-dev and installer-paths.
  • Whilst you may want to develop with a wide set of other ecosystem modules, you may not want them all to be downloaded in Drupal CI, in which case using require-dev (as above) may not be desirable, and perhaps we'd want to be able to specify a different set of dependencies. Perhaps that pushes towards keeping a separate project for the ecosystem (which may have other benefits).
  • You will likely want to be able to run the commands against individual modules. For example, phpcs already specifies the web/modules/custom path, which means you can't narrow it. I expect other commands will have similar considerations.
  • In a similar vein, you probably want to be testing each individual module with it's respective configuration (where present). Currently the config file will use the root project (downloading phpcs.xml.dist if not present). I expect other commands will have similar considerations.
  • Possibly other things I haven't considered yet...

Describe alternatives

I think the alternative would be to recreate 90+% of what's here with compatibility for multiple modules 😭 It would probably end up being AI specific and not benefit the wider community 😭 😭

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions