pyros-dev/catkin_pip

catkin_pip_requirements improvements

Opened this issue · 1 comments

Currently catkin_pip requirements does a pip install -r requirements.txt like so : https://github.com/pyros-dev/catkin_pip/blob/devel/cmake/catkin-pip-requirements.cmake.in#L32

However this can be a bad match for CMake since, pip install actually takes care of the equivalent of :

  • creating a workspace (wstool)
  • checking out all your source dependencies at the correct revision (vcstools/git/svn/...)
  • retrieve all binary dependencies at the correct version (> rosdep/deb/rpm/...)
    which is not traditionally related with CMake ( if we except the more recent ExternalProject feature )

This can lead to confusions, like "why do we need to modify the source tree? Everything should be in the build tree to be able to clean up."

Maybe this feature will be better integrated with another ROS tool ?

Note we need to be extra careful with this, since any downloaded source needs to be importable from the original project.

Having it in src is an easy way to ensure that. Putting it somewhere else, we need to be careful to :

  • make sure it is importable when sourcing devel, not importable otherwise (especially not from install)
  • not add more into PYTHONPATH
  • not mix it with site-packages since these should be the (maybe editable) package installs
  • be erased when doing a make clean
  • maybe more...