Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can we stack catkin venv workspaces ? #11

Closed
asmodehn opened this issue Feb 7, 2018 · 2 comments
Closed

Can we stack catkin venv workspaces ? #11

asmodehn opened this issue Feb 7, 2018 · 2 comments

Comments

@asmodehn
Copy link

asmodehn commented Feb 7, 2018

Just the question in the title : Can we stack (underlay / overlay) workspaces built with virtualenvs ?

One of the design decision I made early for catkin_pip was to not go the full virtualenv way, because :

  • venvs are not made to stack up ( AFIK it was never considered in the design) on top of each other, from what I could gather,
  • if we can go the python way, we want to be fully dynamic and then get rid of the whole catkin build layer anyway.

But with catkin_pip I am having issues with the recent pip version ( and the changing --target / --prefix options) when I build the "environment" by hand, so maybe the catkin + venv solution is better after all ?

So I am curious if there is any return on experience on your side on this topic, if there is any specific limitation on catkin_venv that catkin_pip could do differently, or if you think catkin_pip should adopt some similar design decision ?
Thanks for any light you can shed on this!

@paulbovbel
Copy link
Contributor

paulbovbel commented Feb 8, 2018

catkin_virtualenv doesn't under/overlay the virtualenvs themselves - each package cmakelists generates a virtualenv containing all python requirements from the entire dependency tree.

So the current implementation is definitely bulky. I tried to avoid getting too deep into python internals, and used the considerably better tested dh_virtualenv as a base for making the package's virtualenv 'relocatable'.

The approach here is sort of orthogonal to catkin_pip - I was motivated primarily to enable pip dependency management (and as a bonus python3) for ros_buildfarm users, and make it transparent with standard tools like roslaunch/rosrun/rostest. I'd welcome any advice on how to do things cleaner - I have a fairly shallow grasp on python internals at this level.

@paulbovbel
Copy link
Contributor

Going to close this as an issue, but I'd be happy to discuss any architecture ideas further

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants