Skip to content
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

add script to check duplicates keys #520

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

k-okada
Copy link
Contributor

@k-okada k-okada commented Jun 16, 2017

we have noticed that some rosdep keys are multiply defined and that causes un-exepected behavior, for example a few month ago, if you have package with

<run_depends>pocketsphinx</run_depends>

then ros-indigo-pocketsphinx ros package is installed, but now rosdep install installs libsphinxbase system library, https://github.com/ros/rosdistro/pull/14126/files

the result of this script is as follows

python-nose is multiply defined in
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml and 
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

python-sphinx is multiply defined in
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml and 
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

python-tornado is multiply defined in
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml and 
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

python-pygraphviz is multiply defined in
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml and 
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

python-pyaudio is multiply defined in
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml and 
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

python-vtk is multiply defined in
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml and 
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

python-pydot is multiply defined in
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml and 
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

python-cairo is multiply defined in
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml and 
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

python-opencv is multiply defined in
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml and 
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

pocketsphinx is multiply defined in
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml and 
	https://raw.githubusercontent.com/ros/rosdistro/master/indigo/distribution.yaml

xdot is multiply defined in
	https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml and 
	https://raw.githubusercontent.com/ros/rosdistro/master/indigo/distribution.yaml

@@ -0,0 +1,55 @@
# Copyright (c) 2012, Willow Garage, Inc.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please update the year. And if you'd like contribute it to OSRF instead of Willow Garage.

Copy link
Member

@tfoote tfoote left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you could add arguments to allow it to take local files that would be much more useful.

That way we and anyone else maintaining rosdep keys can add it to their CI for the repo with rosdep keys.

I was originally going to suggest moving it to the rosdistro repo, but I think it makes more sense here so anyone with rosdep can test keys. But it also doesn't really make sense to have this registered in this repository as a unit test. Since it's not a failure of this repository that there are duplicate keys. So I'd suggest moving this over into the source section instead of the tests. Though it could continue to behave as a unit test for easy report generating in downstream CI.

@wjwwood
Copy link
Contributor

wjwwood commented Jul 27, 2017

For everyone's info (and my book keeping), this is waiting on requested changes from @tfoote to make this a script rather than a test, and optionally to make it operate on local files.

@k-okada
Copy link
Contributor Author

k-okada commented Aug 6, 2017

sorry for late, I have copied the https://github.com/ros/rosdistro/blob/3a6a34f7cb99c198f4e009d0943ccd9f765b59ab/scripts/check_duplicates.py, which can add arguments to allow it to take local files to script/ directory.
Any suggestions, such as put code into src/rosdep2 section, better way to find codename/distroname pairs, https://github.com/ros-infrastructure/rosdep/pull/520/files#diff-a94b0612803ffa839ca45c960b320cf9R127

+    for tag in [['indigo', 'ubuntu', 'trusty'],
 +                ['jade', 'ubuntu', 'trusty'],
 +                ['kinetic', 'ubuntu', 'xenial'],
 +                ['lunar', 'ubuntu', 'xenial']]:

are welcome

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants