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
Comment #2
tancIs 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.
Comment #3
tancI'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:
.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.
Comment #4
tancAny chance of some clarity on this? Only been waiting 3 years ;)
Comment #5
nerdstein@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.
Comment #6
tancThank 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.
Comment #7
rachel_norfolkHi 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
Comment #8
tancHi 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!)
Comment #9
rachel_norfolkSo, 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?
Comment #10
tancNo, 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?
Comment #11
rachel_norfolkThe 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.