The common denominator for all Drupal modules/profiles/themes that integrate with external libraries.
This module introduces a common repository for libraries in
sites/<domain>/libraries for contributed modules.
- External libraries
- Denotes libraries ("plugins") that are neither shipped nor packaged with a project on drupal.org. We do not want to host third-party libraries on drupal.org for a multitude of reasons, starting with licensing, proceeding to different release cycles, and not necessarily ending with fatal errors due to conflicts of having the same library installed in multiple versions.
Drupal 7 only has built-in support for non-external libraries via hook_library(). But it is only suitable for drupal.org projects that bundle their own library; i.e., the module author is the creator and vendor of the library. Libraries API should be used for externally developed and distributed libraries. A simple example would be a third-party jQuery plugin.
- The same library can be shared by more than one module.
- The same library can be shared by more than one site.
- Ease the process of upgrading a module that requires an external library. Just replace the module folder with the new one. No need to move the contained library out and back in.
- Prevent incompatibilities due to having the same library installed more than once in different versions.
- Central installation instructions (widget) to help users figure out how to install.
- Library classification.
- Dependency handling.
- Library version detection.
- Runtime control of library availability.
The 1.x branch has very basic support for placing libraries in the
sites/all/libraries folder, while more advanced features (including the above list) are currently being fleshed out in the 2.x branch (D7 only at the moment).
- WYSIWYG API issue giving birth to the idea of a dedicated Libraries API. :
- : Core patch (D7) introducing rudimentary library handling in core and containing in-depth discussion why hook_library() is not suitable for external libraries.
- hook_libraries_info(), libraries_load(), and friends. : Initial patch of the 2.x branch containing in-depth discussion on
- To participate in architectural design decisions, subscribe to "all issues" on http://drupal.org/project/issues/subscribe-mail/libraries
- All issues tagged with "Libraries" on drupal.org