-
Notifications
You must be signed in to change notification settings - Fork 170
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
Undeterministic installation order for rosdep install #877
Comments
Hmm, the nondeterminism certainly isn't intentional. The list of uninstalled rules gets dumped into a Python dict at some point, so there wasn't any effort to retain ordering there. That said, insertion order is retained in a dict with Python 3.7 and newer. What platform are you experiencing this on? |
We ran this in a docker container based on Some output:
|
As a workaround, I run this script to get all the packages rosdep wantsat once, then passes all of them to apt-get, where order doesn't matter. This provides a significant speed improvement as well:
My environment doesn't have any pip dependencies, but a similar script could be used for that as well. |
We are struggeling with versioning of dependencies in our ROS2 system. It seems like
rosdep install
does not install dependencies in a deterministic order.Use case:
Given two dependencies,
apt_pkg
(installed by apt) andpip_pkg
(installed by pip), that both have a python dependency on e.g.mypy
.apt_pkg
has apython3-mypy
dependency tag, and installsmypy
usingapt
.pip_pkg
has themypy
dependency listed in thesetup.py
, andmypy
is installed usingpip
.The resulting version of
mypy
will depend on which of dependencies are handled first since installing it withapt
andpip
yields two different versions.Running
rosdep
in simulated mode multiple times gives the follow output:Is this the intended behavior? I would expect the order to be deterministic.
The text was updated successfully, but these errors were encountered: