Hi patrickd, I'm trying to get a module I maintain to install its libraries using a drush make file. I think this used to work fine but I haven't touched the module for some time and coming back to test it in simplytestme it looks like the files are no longer downloaded. The module I'm testing is responsive_menu module, version 8.x-2.x (dev version).

I've pushed an update to remove the old drush make file in favour of one which uses the yml syntax. I've tested the file works locally by running the following from the module directory: drush @none make --no-core ./responsive_menu.make.yml ../../../

It should install three libraries in the /libraries directory in the webroot. The libraries should be named mmenu, superfish and hammerjs.

Can you help me debug the issue?

Comments

tanc created an issue. See original summary.

tanc’s picture

Is there any chance of some help with this problem? I'd really like to be able to easily demonstrate my module working on simplytest.me but this is a blocker.

tanc’s picture

Title: Libraries appear not to install for responsive_menu module » Clarity on drush make support in 2020
Version: 8.x-3.x-dev » 8.x-4.x-dev

I'm going to update the title of this issue to ask for clarity around installing libraries as dependencies of contrib modules as the linked blog post about this (from the questions and answers page) is 10 years old(!) and I'm guessing out of date.

What I'd like clarity on is the following:

  1. What drush make file formats are supported? Just the old ini format or the slightly newer yml format?
  2. What should the drush make file be named so it gets picked up by simplytestme? If yml format is supported does the file still need to have the .make extension or will .make.yml work?

Is there a contrib project that installs 3rd party libraries in both D7 and D8/9 versions that I can take a look at as an example. Everything written about this seems to be really old so its hard to know what works and what doesn't.

tanc’s picture

Any chance of some clarity on this? Only been waiting 3 years ;)

nerdstein’s picture

@tanc - sorry, we are woefully behind on cleaning up the issue queue.

Simplytest D7 distributions do have some drush make support that follow specific conventions. This year, we switched over to the new Tugboat backend, which allowed us to clean up a lot of the legacy scripts tied to the infrastructure. Drush Make support is one of the last things to be ported, as seen here: https://www.drupal.org/project/simplytest/issues/3054180

I'd love to get a patch for this in the Drupal 7 YML file for when users select a distribution. It's basically a series of checks for various make files followed by drush make commands.

RE: format -- I believe we are on Drush 8 for Drupal 7, so we can support whatever file. The check for the existence of the files would need to look for .make and .yml. I am unfamiliar with .ini file support

RE: make files supported -- please see the issue above that shows the existing script. It looks for specific make files that are very common for Drupal 7 distributions.

tanc’s picture

Thank you for the response! You mention there is some D7 support using Drush 8.x, what about D8/9 support? It also sounds like you're only supporting make files for distributions rather than modules, is that the case?

I'm wondering how, as a module developer, I can install module dependencies (JavaScript libraries) when someone wants to use simplytestme to try out my module.

rachel_norfolk’s picture

Status: Active » Postponed (maintainer needs more info)

Hi Tanc.

Whilst it may seem cheeky after so many years, I wanted to check whether this issue is still required?

I want to get the queue I to a more manageable state so contributions can be more responsive.

Please either set back to Active if still required or Closed (outdated) if not.

Thanks

tanc’s picture

Status: Postponed (maintainer needs more info) » Active

Hi Rachel, the question is still valid, it would still be nice to be able to install dependencies of a module in some way so that it is possible to provide a demonstration in simplytestme of that module.

But it's not something I can't live without (I've managed without for the last 6 years lol!)

rachel_norfolk’s picture

So, for D8 and beyond, that is achieved through dependencies declared in the module’s composer.json file and we know that is working in stm.

Are you specifically needing drush make dependency support for D7 or something?

tanc’s picture

Status: Active » Postponed

No, definitely just D8 and beyond. I guess I'll need to try again to see whether things are working after all this time. I'll put this back to postponed until I have a chance.

Just to be clear, the dependencies are JavaScript libraries. I don't suppose you have an example of a module where this is working so I can follow along?

rachel_norfolk’s picture

The most basic answer to that question is if it is listed in Packagist, then you can simply reference it. Even if it is a js library

If not, it get more complicated.