-
Notifications
You must be signed in to change notification settings - Fork 177
Feature: Apt install command to install all packages at once #953
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
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 |
130s
left a comment
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.
|
this seems nice. can it be taken out of draft now? |
|
@aaron-riact Sry for the half-assed and abandoned pr.
There's one thing that I haven't decided though - what should the option's alias be? What do you all say? |
Given this seems most useful for shaving off those precious CI seconds, probably we can afford an awkward long option. How about |
|
@krisl afaik, it's only apt that has this behavior, due to lacking lacking proper "continue on error" support. Which I am glad with, because imo it shouldn't even exist. So basically:
|
|
@SubaruArai cool. Will you make the changes needed to add the optional behaviour? |

See: #940
This should make the installation faster.
If this is successful, we might need to think about other package managers as well.