-
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
Feature: Apt install command to install all packages at once #953
base: master
Are you sure you want to change the base?
Feature: Apt install command to install all packages at once #953
Conversation
This should make the installation faster.
The original reason that rosdep behaves in this way is to ensure that packages will still get installed on a best-effort basis despite an issue with one of them. If the install operation attempts to install 101 packages and one of them doesn't actually exist, the other 100 packages should still be installed prior to exiting. Some package managers (like dnf) support this behavior, so rosdep invokes the installation in a single command. At the time when apt support was implemented, there didn't appear to be a way to achieve that behavior. |
Interesting, thanks for the input! Anyways, we should be able to add such a feature with something like this. I guess the real question will be - do we want to preserve this behavior, or speed-up the installation instead (especially in CI/CD systems)? @cottsay What do you say? Keep the best-effort behavior, or ditch it for faster execution? |
I would really like to keep both features if possible. In the package.xml I also define dependencies on custom packages that are not released, for the purpose of colcon building. So when running rosdep, it fails to fetch these custom packages but still continues with the rest. |
@cottsay did you have the chance to think about it? |
I do not believe that changing the existing best-effort behavior is a good idea, and I can't see myself approving a PR that changes that only to improve performance. A change to a single-invocation that preserves the established behavior and keeps |
There is already the flag |
FWIW, that would still change behavior that was established over a decade ago. I don't feel particularly strong one way or the other - maybe you might be able to convince other maintainers though 😅 Have either of you looked at how we might get apt to do what we want? 30 seconds of googling led me to a To be clear, rosdep won't (shouldn't) try to install packages that are already installed. The established behavior mostly revolves around incorrect rules. It's pretty common that we'll have a |
It's been a while and I can't recall what I tried, but I remember that there wasn't a silver bullet - including the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reviewed the code. The current state of this PR would change rosdep
's behavior as already discussed in the review comments section. I +1 for not changing the default behavior, but also personally +1 for adding an optional feature to faster installation.
I'm not a maintainer.
See: #940
This should make the installation faster.
If this is successful, we might need to think about other package managers as well.