Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Plugin with third party libraries: Difference between revisions

From MoodleDocs
(Created page with "This page describes the correct way to include third party libraries with your plugin. A third party library refers to any library where the latest version of the code is no...")
 
No edit summary
Line 7: Line 7:
The process for including a third party library is the same for core code as it is for a plugin - there are a number of steps to follow.  
The process for including a third party library is the same for core code as it is for a plugin - there are a number of steps to follow.  


1. Check the license. Moodle can only use libraries that use a GPL compatible license. https://en.wikipedia.org/wiki/License_compatibility#GPL_compatibility
# Check the license. Moodle can only use libraries that use a GPL compatible license. https://en.wikipedia.org/wiki/License_compatibility#GPL_compatibility
2. Check the library is not already shipped by core - we don't want multiple versions of the same library.
# Check the library is not already shipped by core - we don't want multiple versions of the same library.
3. Download the latest stable release of the code.
# Download the latest stable release of the code.
4. Perform any build steps required to get a distributable version of the library. This will vary depending on the library - but an example is running less to generate minified css files.  
# Perform any build steps required to get a distributable version of the library. This will vary depending on the library - but an example is running less to generate minified css files.  
5. Put that library into a sub folder in your plugin. It is best to NOT use version numbers in the foldername ("jquery" not "jquery-1.7.3").
# Put that library into a sub folder in your plugin. It is best to NOT use version numbers in the foldername ("jquery" not "jquery-1.7.3").
6. Create or update the "lib/thirdpartylibs.xml" file for your plugin. https://docs.moodle.org/dev/NEWMODULE_Documentation#thirdpartylibs.xml describes this file.
# Create or update the "lib/thirdpartylibs.xml" file for your plugin. https://docs.moodle.org/dev/NEWMODULE_Documentation#thirdpartylibs.xml describes this file.
7. Create a readme_moodle.txt file in the new third party library folder containing detailed instructions on how to complete steps 3-6 above. This should list download urls, build instructions etc.
# Create a readme_moodle.txt file in the new third party library folder containing detailed instructions on how to complete steps 3-6 above. This should list download urls, build instructions etc.
8. Note any creation, update or deletion of third party libraries in your plugins upgrade.txt
# Note any creation, update or deletion of third party libraries in your plugins upgrade.txt





Revision as of 03:42, 29 September 2015

This page describes the correct way to include third party libraries with your plugin.

A third party library refers to any library where the latest version of the code is not maintained and hosted by Moodle. An example is "Mustache.php".

Instructions

The process for including a third party library is the same for core code as it is for a plugin - there are a number of steps to follow.

  1. Check the license. Moodle can only use libraries that use a GPL compatible license. https://en.wikipedia.org/wiki/License_compatibility#GPL_compatibility
  2. Check the library is not already shipped by core - we don't want multiple versions of the same library.
  3. Download the latest stable release of the code.
  4. Perform any build steps required to get a distributable version of the library. This will vary depending on the library - but an example is running less to generate minified css files.
  5. Put that library into a sub folder in your plugin. It is best to NOT use version numbers in the foldername ("jquery" not "jquery-1.7.3").
  6. Create or update the "lib/thirdpartylibs.xml" file for your plugin. https://docs.moodle.org/dev/NEWMODULE_Documentation#thirdpartylibs.xml describes this file.
  7. Create a readme_moodle.txt file in the new third party library folder containing detailed instructions on how to complete steps 3-6 above. This should list download urls, build instructions etc.
  8. Note any creation, update or deletion of third party libraries in your plugins upgrade.txt


Exceptions:

Javascript AMD modules

Javascript AMD modules cannot exist in a sub-folder - they must exist in a single .js file in the amd/src folder for your plugin. So - the process for AMD files is the same as above, except that the license and readme_moodle.txt file contents must be added as a javascript comment to the top of the libraries .js file.