Composer is a dependency manager that we've included into core now to support phpunit and behat. (See /composer.json and MDL-36701)
This idea is to consider if this dependency management can be extracted out of moodle (there is /lib/thirdpartylibs.xml , perhaps admin/environment.xml too that stores these dependencies of moodle core).
These core dependencies could then be added onto (by plugins or master branch) and managed as a whole (by composer) when considering added libraries from plugins being installed.
This also paves the way for a reliable and maintained (we've commited to this with phpunit and behat) interface (simple json file editor or more complex stuff?) to manage and display dependencies that are or are not met in the moodle system.
Furthermore, this also allows for tighter integration with plugins directory via composer.json to be able to easily tell which plugins are supported in which moodles accurately. Infact, (perhaps in another era) the moodle API itself will be specified in the composer.json to allow for better plugin mobility across moodle releases.
This also would prevent plugins unnecessarily including libraries (that might be huge) in their zips and js libraries clashing among plugins installed (like yui and jquery).
- has been marked as being related by
-
MDL-49672 Policy: Include third-party libraries using composer
-
- Open
-