Skip to content
This repository was archived by the owner on Jun 25, 2020. It is now read-only.
This repository was archived by the owner on Jun 25, 2020. It is now read-only.

use extend when sourcing devel or install setup.bash with rosws  #96

@e1000i

Description

@e1000i

This is a suggestion based on my experience. Do you think will be useful to use rosws to setup easily workspace hierarchies and overlays?

I have a common workspace where all default packages from ros-distro that I need to modify for some reason rest. In order to avoid overwrite the default install i would like to overlay them over opt/ros ones, and on top of that put my current workspace.

Say I have: ws1, ws2 ws3 in such a way that ws2 and ws3 depends on packages from w1.

Manually I can source ws1/devel/setup.bash and after the current one I want to work, using for example, ws2/devel/setup.bash --extend

I found out that catkin_make automatically generates a .rosinstall file for the devel or install space. So I can use rosws to merge these spaces. But the only one remaining in ROS_PACKAGE_PATH is the last i have added to my ws .rosinstall. So there is no access to ws1 from ws2 or ws3

I have a kick fix that patches all my setup.sh to make them include any devel/sebup.bash using --extend option. That does the trick, but it is permanent.

If the maintainers / authors / users of this set of tools think this use case fit the design requirements of rosinstall and rosws I will gladly contribute a patch to allow using --extend for rosws generated setup.bash in oder to enable extension instead of overwrite when required.

An other consideration could be that wherever a install or devel space is merged, it seems to me that we do so because we want to extend our ws with the packages contained there. If this is true, the default behavior of rosws setup.sh should be using --extend right?

My idea is to share the full project development environment. This will allow students using it to easily setup everything and focus only on the area they are developing/working/studing, while being able to test it against the whole platform and merge quickly improvments in the other modules with rosws update powers.

Any other thought or consideration?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions