On 15 May 2014, at 08:44, Thomas Bruederli thomas@roundcube.net wrote:
(cc'ing the mailing list as this is an interesting topic for all plugin developers)
I suggest to specify the dependencies in your plugin's composer.json file which is used to register it in our new plugins repository at http://plugins.roundcube.net.
If the external libraries are also available as composer packages, like phpseclib, just add them to the "require" section of your composer.json file and you're done. When installing Roundcube plugins through composer, all the dependencies are downloaded and installed to vendor/xxx. Roundcube also includes composer's autoloader and therefore all classes from the external libraries are automatically available to your plugin without having to require or include anything.
I hope this helps.
Wont this create vendor conflicts?
A quick test seems to suggest that if 1 plugin requires say version 1.*, and another version 2.* this wont work. Looks like only 1 of the 2 gets installed.
Cor