Matlab Projects: how to properly reference dependencies with certain version number
27 views (last 30 days)
we're trying to find out the optimal workflow with Matlab Projects and came to a couple of roadblocks:
- Is there a way to reference a toolbox directly?
- Can its version number be specified?
- Can we specify the path of a toolbox (i.e. having a toolbox/package "storage", where toolboxes are released to)
- Can we reference projects from a GIT/SVN path (+revision obviously)
In fact what we would like to achieve is:
- Moving away from global namespaces (packages) without proper revision information to Matlab Projects, tracked by GIT.
- Share these projects as toolboxes
- Compile a standalone exe from that (Matlab Compiler)
Suppose we have a big application "The App". Right now, The App is part of a global package/namespace hierachy, which is stored on a fileshare everybody has access to. We want to separate The App as a Matlab Project, tracked by Git. Obviously, there are dependencies that do not directly belong to The App (like file helper, generic plotting tools and so on). These tools could be moved into one or several Matlab Projects as well. How do we reference these properly? As far as I've seen, only relative and absolute references to other Matlab Projects are possible. But since every Matlab Project is its own Git repo (which makes sense), the working copies may be "everywhere", i.e. it's very hard to retain a proper directory structure for either relative or absolute paths on all developer machines. How do you solve that?
The next step would be to share these (coupled) Matlab Projects as toolboxes (which shall reference each other again), to ensure not every Matlab user has to open the Matlab Projects first to have all the tools on the path. How can we cross-creference (custom made) toolboxes in a certain version?
You see, we're looking for a "real" package + dependency manager such as nuget (https://www.nuget.org/). There you have packages with a version number that can reference other required packages, again with a certain range of compatible versions. And the best - all dependent packages are automatically installed.
How can we achieve that with Matlab? My coworkers are very surprised that this is not a standard feature in Matlab.