Ask Your Question
1

Bloom with Pip Test Depend

asked 2018-01-25 11:24:12 -0600

David Lu gravatar image

I am trying to bloom a package to indigo with bloom-release 0.6.2

The package has a test_depend on python-gitpython-pip a.k.a. GitPython but it is installed via pip. From rosdep...

python-gitpython-pip:
  ubuntu:
    pip:
      packages: [gitpython]

When I bloom the package, I get the following error.

Pre-verifying Debian dependency keys...
Running 'rosdep update'...
Key 'python-gitpython-pip' resolved to '['gitpython']' with installer 'pip', which does not match the default installer 'apt'.
Failed to resolve python-gitpython-pip on ubuntu:trusty with: Error running generator: The Debian generator does not support dependencies which are installed with the 'pip' installer.
python-gitpython-pip is depended on by these packages: ['ros_introspection']
<== Failed
Some of the dependencies for packages in this repository could not be resolved by rosdep.
You can try to address the issues which appear above and try again if you wish.
Would you like to try again? [Y/n]? n

I feel like I should still be able to generate a Debian since it is only a test_depend. What's the best way around this?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2018-01-25 16:49:31 -0600

tfoote gravatar image

When building packages the test dependencies are encoded into the debian control files to allow running tests using the debian/dpkg tools. (Actually all binary builds also run the tests before packaging) We don't gate the build on the tests passing but they are tested and there's a log of the result. And part of that is that we don't currently install the test dependencies before running the tests at the moment so almost all of them fail.

There's an open ticket on bloom about this: https://github.com/ros-infrastructure...

In the long run I think that we should be following the debian approach and run the unit tests when packaging and only consider it successfully packaged if the unit tests pass. And to do that we will want to have the test dependencies available. So I'd rather not relax the constraint that dependencies need to be available as debian packages for the debian bloom generator.

For your use case I'd suggest that you could simply patch out that dependency in the release repository and then when bloom ran the generator the test dependency would not be encountered.

edit flag offensive delete link more

Comments

Thanks TF!

David Lu gravatar imageDavid Lu ( 2018-01-26 09:12:03 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2018-01-25 11:24:12 -0600

Seen: 81 times

Last updated: Jan 25 '18