-
Notifications
You must be signed in to change notification settings - Fork 171
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
doc_depend resolution + unit testing #646
doc_depend resolution + unit testing #646
Conversation
The unit testing is broken due to the bug presented in the PR #647 . Once merged, the unit testing has to be run again in the PR. |
Codecov Report
@@ Coverage Diff @@
## master #646 +/- ##
=======================================
Coverage 75.46% 75.46%
=======================================
Files 32 32
Lines 2967 2967
=======================================
Hits 2239 2239
Misses 728 728
Continue to review full report at Codecov.
|
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 merged this with the recent changes so it's now passing CI. However, we will need to audit where this will take effect.
@nuclearsandwich probably has a better idea of where this will effect.
I believe that bloom and the packaging pipeline will collect the dependencies directly not through this code path.
Since we have the different dependency types probably the best way to move forward on this would be to improve/extend the command line to be able to select the types of dependencies that you want for your use case. Otherwise we'll break some people's use cases while fixing others as some people will want doc depends and some will not.
IMHO if a person is using rosdep to resolve dependencies is because they need to work with the source code and as such, building documentation is as important as the rest of the dependencies. Thus, I don't think we should discriminate in rosdep the "target dependency type". If we don't agree in the frist point, I guess you are proposing to have a multipurpose flag rather than a "--with-docs". If so, what about: --dependency-type (-d) <type> Types:
For expressing the type I can think of:
Default option should be "exec, build and test" as of today, maybe we can discuss also the "docs". |
Hooboy this turned into a bit of a dive.
That's everywhere this function turned up via regexp of the common tools or everywhere I've had contact with rosdep recently.
I understand your reasoning but I think that installing only build-time dependencies (with or without tests), when you want to build your own artifacts for deployment and don't need to build docs in the same process is a valid use-case. As is installing just exec-time dependencies or doc=time dependencies. The way our tools and tutorials do this currently is either by aggregating dependencies directly from the manifest and resolving just the individual packages with rosdep, or in the case of the ROS 2 Linux archive instructions, accepting the fact that you'll end up installing build dependencies along with exec dependencies even if you don't need them. With the above in mind I think it's worth iterating toward flexibility rather than assumed use-cases. Your proposal for flags is a good step in this direction that I'm in favor of.
Of the proposed options a comma or space separated list is the one I'm most in favor of. There's no justification for having folks memorize a numeric encoding and initialisms already have conflicts between build, build_export, buildtool, buildtool_export.
|
We agree then in an extension of the cli to support these use cases. I will use this PR so that, even though the name of the branch is not very appropriate, the conversation remains. Discussion points:
Once those points are closed I will start working on it 😃 |
Since continued work will not change the default here, I agree. I'd give other collaborators some time to weigh in but that plan seems fine to me. |
The proposed approach from @veimox sounds good to me. |
Good! I will prioritize this :) |
…into feature/resolve-doc-depends
@veimox are you still working on the updates to the command line interface? There's a good discussion here but the current state and title of the PR don't reflect the conclusions and I think the scope of the changes probably warrants multiple pull requests. Would you want to open a tracking issue that summarizes your plan and close this PR in favor of it? |
Late update: I've just come across #727 which adds a command line option similar to the one discussed here. I'm going to link to the relevant parts of this discussion but review the approach there. |
Sorry for lack of progress. I dont think I will continue this work so I propose to go with #727 |
No worries. I appreciate the effort you put into formulating this PR and proposing the feature! |
Tackles #498 .
I have added a unit for it.
I am not an expert in all ROS infrastructure so i don't know the consequences of this change in other parts of the system. I have run manually
bloom-generate rosdebian
in a package and the <doc_depend> are not being injected as dependencies but I think this change has to be well reviewed because it might start creating dependencies where not desired 😕