Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-38740

merge moodle/lib/thirdpartylibs.xml and other core dependencies into composer dependency management system

    XMLWordPrintable

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • Future Dev
    • DEV backlog
    • Libraries

    Description

      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).

      Attachments

        Issue Links

          Activity

            People

              moodle.com Moodle HQ
              nebgor Aparup Banerjee
              David Woloszyn, Huong Nguyen, Jake Dallimore, Michael Hawkins, Stevani Andolo
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: