Open csweichel opened 6 years ago
We should add support to the Mita CLI (#104 ) to manage the mita.yaml
file, specifically:
mita init - creates a new mita.yaml file
mita add <url> - downloads a mita library and adds it to the mita.yaml file
mita install - collects all mita libraries and puts them in the .mita_lib folder
General Idea
At the moment Mita libraries are tied to the Eclipse IDE. Libraries are packaged as plugins and register extension points which list the
.mita
and.platform
files they contribute. This mechanism works will within an Eclipse-only environment, but fails in a standalone setup.Further, this model assumes that users of Mita receive Mita through some form of distribution provider (e.g. Bosch building the XDK Workbench which ships with the xdk110 platform). However, this model does not always work well and does not reflect what developers have come to know. Most programming languages allow users to load libraries as part of a package configuration (think
package.json
).We could introduce a
mita.yaml
file in a project folder which - among other things - lists the dependencies of a project. For example:The Mita compiler (in Eclipse or standalone) would download/copy all libraries to a
.mita_lib
folder within the project root. From this directory we would then try and load the libraries.Library files
Mita libraries are jar files. The jar can contain
.mita
or.platform
files as well as the generator classes as bytecode. Within a library we would expect aMETA-INF/mita-lib
which just lists the files we ought to load relative to the jar file root.Note: the
mita-lib
file does not list dependencies. This is intentional. At this point we neither support versioning or transitive dependencies.