-
Notifications
You must be signed in to change notification settings - Fork 5
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
Support apt dependencies in a file #15
Conversation
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
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.
Personally, I think that the closer it is to the code, the easier it is to maintain. The change of a dependency will often happen together with a change to
find_package
on the source code.
We still need to get a consensous on this one, in the opposite side of the balance you have: how many branches and repositories do you have to change when a new base dependency needs to be included or change its name?
Signed-off-by: Louise Poubel <louise@openrobotics.org>
I would think that you would really only be introducing a new dependency or changing a dependency in a single version of the software. A good recent example would be changing I'm less familiar with the case that a base dependency changes in an already-released distro, that's probably something that you've had to deal with, though. How frequently does that happen? |
I believe that if we have a central location vs per-package locations, with a central location you always have 1 extra repository to update. Keep in mind that the source repository always needs to be updated anyway. The advantage of the per-package location is more evident if we also update Jenkins CI to use Let's say we want to bump
|
Signed-off-by: Louise Poubel <louise@openrobotics.org>
I think we can find use cases where the source repository does not need to be updated. I.e: we lack in all packages support for generating docs and we want to add doxygen to all CI build to enable doc testing.
Don't have any data to make a consistent answer but I would say that are not very frequent. Another possible problems of removing release-tools/dependencies_archive.bash is that it has conditionals on other variables, not only in the major branch: there are conditionals for Ubuntu/Debian release names, conditionals in certain platforms, how are they going to work if we migrate to a flat file with package names? |
Ok, I hadn't considered this case. I think these could be added here directly to
Good point, maybe we'll need to version |
Signed-off-by: Louise Poubel <louise@openrobotics.org>
I think that it can solve the main problems of flexibility based on distribution name. The only problem I can see is that we have no automatic (no action require) path to migration to new distributions if the package set if the same, the symlink must be created. How about looking for a non versioned file with dependencies (like before the last commit) and fallback to use the new distribution filenames if the first one does not exist? This way we can keep ignition packages using the same file unless needed and don't add an extra action unless required (I learnt how convenient this is while maintaining |
Ok, how about always installing all I think this would make it easier to traverse all dependencies, as we're doing now. |
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Done in 1ddf4a6, let me know what you think. |
wow, good solution |
Move apt dependencies to a file. The advantage is that the dependencies can be declared once, and multiple actions / CIs can make use of it.
We had also considered keeping all apt dependencies in a central place. This is still up for discussion. Personally, I think that the closer it is to the code, the easier it is to maintain. The change of a dependency will often happen together with a change to
find_package
on the source code.This keeps support for the old way of specifying dependencies so we can migrate to the new style without breaking many things on the way.