Restructure documentation
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
74
docs/mercs/0003-using-javascript-libraries.txt
Normal file
74
docs/mercs/0003-using-javascript-libraries.txt
Normal file
@@ -0,0 +1,74 @@
|
||||
==================================
|
||||
MERC 3: Using JavaScript libraries
|
||||
==================================
|
||||
|
||||
:MERC: 3
|
||||
:Author: Eric Riggs
|
||||
:Status: Accepted
|
||||
:Type: Feature
|
||||
:Created: 2018-03-08
|
||||
:Last-Modified: 2018-06-04
|
||||
|
||||
.. contents:: Table of Contents
|
||||
:depth: 3
|
||||
:local:
|
||||
|
||||
|
||||
Abstract
|
||||
========
|
||||
|
||||
This MERC proposes a standard way to use JavaScript libraries.
|
||||
|
||||
Rationale
|
||||
=========
|
||||
|
||||
Mayan EDMS uses several JavaScript libraries for user interface features.
|
||||
Currently, the libraries are not installed using any JavaScript package
|
||||
manager but copied uncompressed. Installing the libraries in this manner
|
||||
carries some disadvantages.
|
||||
|
||||
Motivation
|
||||
==========
|
||||
|
||||
The inclusion of the libraries in source form is required by many licenses
|
||||
if the library is not installed by a package manager in distributable form.
|
||||
There are several disadvantages with the current approach:
|
||||
|
||||
1. Having the library in source form means that the entire weight of the
|
||||
library's size carries over the overall size of the Mayan EDMS distribution files.
|
||||
The justification for not doing this is the same as with the Python libraries
|
||||
which are not copied with the code but downloaded upon installation.
|
||||
2. Upgrading the libraries means manually examining the version of the
|
||||
installed in the project and manually searching, downloading, compressing
|
||||
and adding the files to the repository.
|
||||
3. The source form of the libraries includes normal and minified versions
|
||||
of the code and the accompanying CSS files. There is no define preference
|
||||
and through the project both versions of the libraries are loaded
|
||||
interchangeably. Using a packager manager the minified version would be
|
||||
used of a pipeline to minify the installed libraries should be added.
|
||||
|
||||
Backwards Compatibility
|
||||
=======================
|
||||
|
||||
There are no backwards compatibility issues with this proposal.
|
||||
|
||||
|
||||
Specification
|
||||
=============
|
||||
|
||||
Changes needed:
|
||||
|
||||
1. Python based JavaScript package manager. Alternatively a Python wrapper
|
||||
for a JavaScript package manager could be used.
|
||||
2. Package manifest for the JavaScript libraries used.
|
||||
3. Installation pipeline to install the JavaScript libraries during the
|
||||
installation and setup of the project.
|
||||
|
||||
References:
|
||||
|
||||
- https://github.com/JDeuce/powser
|
||||
- https://github.com/javrasya/version-manager
|
||||
- https://github.com/inveniosoftware-attic/setuptools-bower
|
||||
- https://pypi.python.org/pypi/django-bower-cache/0.5.0
|
||||
- http://django-pipeline.readthedocs.io/en/latest/index.html
|
||||
- https://github.com/nvbn/django-bower
|
||||
Reference in New Issue
Block a user