Scilab toolboxes management specifications
This page describes what could be a Scilab Toolboxes Management.
Description
One of the main asset of Scilab is the capacity of adding new features through toolboxes. A toolbox is basically a plugin. However, the quality of the toolboxes available varying a lot and the standardization is weak.
The aim of this training period consists in the normalization of toolboxes and then the creation of a packaging & installation system on the model of Linux package systems (Debian/Ubuntu with apt, Mandriva with urpmi,Redhat/Fedora with yum, Gentoo with ebuild, Arch Linux with Pacman ...). R, the stat software, seems to provide this kind of feature. Toolboxes would be available on a web repository and installed remotely via Scilab with a dependency system (ie if a toolbox depends on another, it will install both).
Eclipse and Netbeans are also providing this kind of features for the installation of plugins.
Features
- Compilation procedure of toolboxes into a compilation chain
- Generation of packages - some of them will be architecture dependent when using compiled programs/sources (Linux, windows, Unix)
- Remote download (probably HTTP with a proxy management)
- Management of virtual packages and/or category management (For example, the biology package will install all the biology toolboxes)
- Management of the automatic dependencies with their installations
- Global update system which will update all the toolboxes (equivalent to apt-get update; apt-get dist-upgrade)
- Web (HTTP) repository for packages
- Possibility to add third party repositories (official or not)
Local database of toolboxes (description, location, changelog, deps...)
- Automatic detection and warning of new version
- Step by step assistant for the creation of a new toolbox
- Possibility to download sources of the toolbox and compile it ourself through the same process as the compilation chain (this feature can be disabled for a proprietary toolbox)
- Localization of the toolboxes
- Can offer paying toolboxes
- Feedback about thirdparty dependencies (ex : if a toolbox needs a library or a program to work)
- Plan a mechanism to backport toolboxes to Linux distributions
- ...
Misc
- May need to create a database with the list of functions of each modules in order to avoid two functions with the same name
