Closed marc-hanheide closed 9 years ago
Having thought about this a little more. I suggest to have disjunct (that's different to what we have now) deployment configurations as follows:
strands-base
: This is the base system that compiles and runs on its own, based only on free code that can be released to the public. It allows to create a basic STRANDS ROS system based on Morse. Effectively mostly corresponds to the desktop-full
configuration, but without the private repositories and without very specific repositories like twitter-stuff etc. This goes into strands-extras
. Stuff in strands-base
is not specific to our robots, hence everybody in the community can compile and run this code. This should be our biggest deployment unit containing almost everything we release. We shall maintain a stable and an unstable version of this (with the stable version containing fixed versions of repositories).strands-scitos
: Everything that actually needs MIRA and its dependent modules, still free code, but dependent on MIRA and hence not useful for everybody. Also requires strands-base
to build. This should be fairly small and only contain repositories that really need MIRA and nothing else.strands-restricted
: referencing repositories that are privatestrands-extras
: All the rather specific repositories. Probably not many, but we might try to keep the strands-base
configuration as clean as possible. So very specific things can go in here.Here's a sketch of the expected dependencies (edit the figure here):
As unfortunately wstool
doesn't support nesting or including of its config files yet, in order to have a full monty STRANDS system, all the deployment configs need to be merged into one workspace, but I think that's a price worth paying as it can be automated anyway.
Thoughts, @hawesie, @cburbridge ?
I like this a lot, thanks for driving it.
The main issue I foresee being a problem is getting the dependencies right. As access control works at a repository level, we can't have a package which depends on restricted code in the same repository as a package which is developed for a base release, even during development. With some smart management we should be ok though.
strands-morse is depending on strands_utils/topic_republisher, which is in strands-extras. I guess something should be changed, as it does not follow the dependencies sketch
We should create a rosinstall that only contains all the free repositories, i.e. have a system that we make available for other to download and test. Special care needs to be taken for dependencies. This is important for our dissemination (and also helps to collaborate with people outside the consortium). Or are there any other issues with this, @hawesie ?