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 repository checking for OpenEmbedded rosdep rules #40021

Merged
merged 1 commit into from
Mar 4, 2024

Conversation

cottsay
Copy link
Member

@cottsay cottsay commented Feb 28, 2024

This change adds repository checking capabilities to OpenEmbedded rules. Though many other platforms target a specific release, it was easy to simply point this check at the master branch.

If any OpenEmbedded users have feedback on which branch to target or any other part of this checking logic, please feel free to comment here.

Inspired by: #40012 (comment)

At present, the checker found 56 invalid rules in rosdep:

$ PYTHONPATH=$PWD python3 -m rosdep_repo_check
Verify all rosdep keys in 'rosdep/base.yaml'
Reading OpenEmbedded layers from http://layers.openembedded.org/layerindex/api/layerItems
Reading OpenEmbedded layer branches from http://layers.openembedded.org/layerindex/api/layerBranches?filter=branch__name:master
Reading OpenEmbedded recipe metadata from http://layers.openembedded.org/layerindex/api/recipes?filter=layerbranch__branch__name:master
Verify all rosdep keys in 'rosdep/python.yaml'
* The following 56 packages were not found for openembedded master on :
- Package alsa-oss@meta-oe for rosdep key alsa-oss
- Package assimp@openembedded-core for rosdep key assimp
- Package assimp@openembedded-core for rosdep key assimp-dev
- Package clang-native@meta-clang for rosdep key clang
- Package glfw@meta-intel-realsense for rosdep key libglfw3-dev
- Package graphviz@meta-ros-common for rosdep key graphviz
- Package grpc@meta-networking for rosdep key libgrpc
- Package gtk+@openembedded-core for rosdep key gtk2
- Package joystick@meta-ros-common for rosdep key joystick
- Package libmicrohttpd@meta-oe for rosdep key libmicrohttpd
- Package libsdl@openembedded-core for rosdep key sdl
- Package lua@meta-oe for rosdep key lua5.2-dev
- Package openblas@meta-ros-common for rosdep key libblas-dev
- Package openblas@meta-ros-common for rosdep key libopenblas-dev
- Package python-pyassimp@meta-ros-python2 for rosdep key python-pyassimp
- Package python-tornado45@meta-ros-python2 for rosdep key python-tornado
- Package python3-backports-ssl@meta-python for rosdep key python-backports.ssl-match-hostname
- Package python3-click@meta-python for rosdep key python-click
- Package python3-click@meta-python for rosdep key python3-click
- Package python3-cryptography@meta-python for rosdep key python3-cryptography
- Package python3-enum34@meta-python for rosdep key python-enum34
- Package python3-gnupg@meta-ros-common for rosdep key python-gnupg
- Package python3-lxml@meta-python for rosdep key python-lxml
- Package python3-lxml@meta-python for rosdep key python3-lxml
- Package python3-msgpack@meta-python2 for rosdep key python-msgpack
- Package python3-mypy@meta-ros-common for rosdep key python3-mypy
- Package python3-nose@openembedded-core for rosdep key python-nose
- Package python3-nose@openembedded-core for rosdep key python3-nose
- Package python3-paramiko@meta-ros-common for rosdep key paramiko
- Package python3-paramiko@meta-ros-common for rosdep key python-paramiko
- Package python3-paramiko@meta-ros-common for rosdep key python3-paramiko
- Package python3-pip@meta-python for rosdep key python-pip
- Package python3-psutil@meta-python for rosdep key python-psutil
- Package python3-psutil@meta-python for rosdep key python3-psutil
- Package python3-pycrypto@meta-python for rosdep key python-crypto
- Package python3-pycryptodomex@meta-python for rosdep key python3-pycryptodome
- Package python3-pyparsing@meta-python for rosdep key python3-pyparsing
- Package python3-pyproj@meta-ros-common for rosdep key python-pyproj
- Package python3-pyproj@meta-ros-common for rosdep key python3-pyproj
- Package python3-pytest@meta-python for rosdep key python3-pytest
- Package python3-pyyaml@meta-python for rosdep key python-yaml
- Package python3-pyyaml@meta-python for rosdep key python3-yaml
- Package python3-requests@meta-python for rosdep key python3-requests
- Package python3-ruamel-yaml@meta-python for rosdep key python3-ruamel.yaml
- Package python3-simplejson@openembedded-core for rosdep key python-simplejson
- Package python3-termcolor@openembedded-core for rosdep key python-termcolor
- Package python3-tkinter@openembedded-core for rosdep key python-tk
- Package python3-tkinter@openembedded-core for rosdep key python3-tk
- Package python3-twisted-core@meta-python for rosdep key python-twisted-core
- Package python3-whichcraft@meta-ros-common for rosdep key python3-whichcraft
- Package uncrustify@meta-ros-common for rosdep key uncrustify
- Package wxpython@meta-ros-python2 for rosdep key python-wxtools
- Package wxpython@meta-ros-python2 for rosdep key wxpython
- Package wxwidgets@meta-ros-common for rosdep key wx-common
- Package wxwidgets@meta-ros-common for rosdep key wxwidgets
- Package zstd@meta-oe for rosdep key libzstd-dev

This is not a remotely alarming number - we carry far more invalid rules on other platforms. There is no particular urgency to address the invalid rules as only new rules will be run through the checker automatically during pull requests.

RFC: @ros/meta-ros-maintainers

@cottsay cottsay self-assigned this Feb 28, 2024
@cottsay
Copy link
Member Author

cottsay commented Feb 28, 2024

Side note: a section should be added to the CONTRIBUTING.md describing what sources are "acceptable" for OpenEmbedded: https://github.com/ros/rosdistro/blob/master/CONTRIBUTING.md#expected-rosdep-sources

@nuclearsandwich
Copy link
Member

If any OpenEmbedded users have feedback on which branch to target or any other part of this checking logic, please feel free to comment here.

cc @robwoolley since we were recently discussing OpenEmbedded

@robwoolley
Copy link

(Adding @moto-timo who is the maintainer of the OE Layer Index)

Thanks @cottsay, this was a happy surprise to see that you had already implemented this.

Yocto / OE still uses master for the main development branch. We do use branches for each Yocto release, however given my understanding of the rosdep tool I don't think we need to differentiate between releases/branches and can just list a superset of packages. (I'm thinking specifically of projects that get added or removed between releases)

I am in the process of setting up a CI system for meta-ros, I look forward to running the script as part of it.

@mjcarroll
Copy link
Member

I'm going to go ahead and merge this so that we can have checks enabled for future rosdep keys. If @robwoolley or others want to come back and fix the currently broken keys, we can do that in a follow-up.

Thanks for getting this out so quick @cottsay

@mjcarroll mjcarroll closed this Mar 4, 2024
@mjcarroll mjcarroll reopened this Mar 4, 2024
@mjcarroll mjcarroll merged commit 3e7e074 into ros:master Mar 4, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants