MATLAB Answers

Matlab Projects: how to properly reference dependencies with certain version number

16 views (last 30 days)
Jan Kappen
Jan Kappen on 9 Jul 2020
Commented: Patrick Braun on 27 Jan 2021
Hi all,
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.
Thank you!
  4 Comments
Patrick Braun
Patrick Braun on 27 Jan 2021
@Andy Campbell Hi Andy and Jan,
If I might slide into this topic, since you have mentioned Artifactory in particular:
Do you have good references/further reading on best-practices for managing MATLAB-apps using the artifactory?
Our current obstacle is that we are uploading new versions of our tools "by hand" via the artifactoy-UI.
We have an open question concerning our problems with setting up scripts that do the compiling and uploading via webwrite, especially the proper encoding of mlappinstall-files.
We haven't found to much on MATLAB/artifactory workflows, so furthere reference is very much appreciated!
Thanks

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by