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 checks for openSUSE #29711

Merged
merged 1 commit into from
Jun 5, 2021
Merged

Conversation

cottsay
Copy link
Member

@cottsay cottsay commented May 28, 2021

Building on #28902 to add support for openSUSE.

Specifically, I'd like feedback on this change from @neotinker. I'm particularly interested in whether 15.2 is the right version to target at the moment. I don't have any particular interest in supporting openSUSE myself, but its use of RPM repositories means that supporting it in this automation is relatively trivial.

This will result in formal enforcement of new openSUSE rules by PR automation, and would also add suggestions to new incoming rules if openSUSE might contain a package that satisfies the new rule based on some heuristics. More info about this new automation can be found in the referenced PR as well as the README that @nuclearsandwich was nice enough to put together.

A manual run using this config shows the following errors exist in the current database:

$ time PYTHONPATH=$PWD/test python3 -m rosdep_repo_check
Verify all rosdep keys in 'rosdep/base.yaml'
Reading RPM repository metadata from https://download.opensuse.org/distribution/leap/15.2/repo/oss/repodata/repomd.xml
Reading RPM primary metadata from https://download.opensuse.org/distribution/leap/15.2/repo/oss/repodata/ee17b27ef91d0fb16ac7311f04afe362fe2efeb1a90ff4d97811237ff14e7bec-primary.xml.gz
Reading RPM repository metadata from https://download.opensuse.org/distribution/leap/15.2/repo/non-oss/repodata/repomd.xml
Reading RPM primary metadata from https://download.opensuse.org/distribution/leap/15.2/repo/non-oss/repodata/024773c8cefa59877328aea3abe1841cf160a7443b842f4b47686959b816ed12-primary.xml.gz
Reading RPM repository metadata from https://download.opensuse.org/update/leap/15.2/oss/repodata/repomd.xml
Reading RPM primary metadata from https://download.opensuse.org/update/leap/15.2/oss/repodata/8d1d27973be2c96705dc1bf5bab3a8f48c8665c705502136af192b1f0d69c5d7-primary.xml.gz
Reading RPM repository metadata from https://download.opensuse.org/update/leap/15.2/non-oss/repodata/repomd.xml
Reading RPM primary metadata from https://download.opensuse.org/update/leap/15.2/non-oss/repodata/f2c5c9e9982551ac67144efebce6278e297cd17b4148efbe9f7a8c8c5286ba3c-primary.xml.gz
Verify all rosdep keys in 'rosdep/python.yaml'
* The following 21 packages were not found for opensuse 15.2 on x86_64:
- Package gazebo-devel for rosdep key libgazebo7-dev
- Package gmock-devel for rosdep key libgmock-dev
- Package libconsole_bridge0 for rosdep key libconsole-bridge-dev
- Package libltdl3 for rosdep key libtool
- Package libprotobuf9 for rosdep key protobuf
- Package libstdc++33 for rosdep key libstdc++5
- Package ogre-devel for rosdep key libogre
- Package pcl for rosdep key libpcl-all
- Package pcl for rosdep key libpcl-all-dev
- Package python-catkin_pkg for rosdep key python-catkin-pkg
- Package python-catkin_pkg for rosdep key python-catkin-pkg-modules
- Package python-mlflow for rosdep key python3-mlflow
- Package python-rosdep for rosdep key python-rosdep
- Package python-rosdep for rosdep key python-rosdep-modules
- Package python-rospkg for rosdep key python-rospkg
- Package python-rospkg for rosdep key python-rospkg-modules
- Package python3-pillow for rosdep key python3-pil
- Package python3-rospkg for rosdep key python3-rospkg
- Package python3-rospkg for rosdep key python3-rospkg-modules
- Package urdfdom-devel for rosdep key liburdfdom-dev
- Package urdfdom-headers-devel for rosdep key liburdfdom-headers-dev

real	0m51.187s
user	0m35.181s
sys	0m0.301s

We should address these errors somehow. Either the configuration (and documentation) are missing a repository, or these rules need to be updated or removed.

@cottsay cottsay self-assigned this May 28, 2021
Comment on lines +54 to +55
opensuse:
- '15.2'
Copy link
Member Author

Choose a reason for hiding this comment

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

Note that this needs to be kept up-to-date by someone when the target version changes.

@neotinker
Copy link
Contributor

Specifically, I'd like feedback on this change from @neotinker. I'm particularly interested in whether 15.2 is the right version to target at the moment. I don't have any particular interest in supporting openSUSE myself, but its use of RPM repositories means that supporting it in this automation is relatively trivial.

That is an interesting question. Even though it looks like 15.3 is supposed to be released next week (6/02), I would still recommend going with 15.2 and adding 15.3 later.
https://en.opensuse.org/openSUSE:Roadmap

Minor releases are made yearly and are supported for about 6 months after the release of the next minor release for a total of at least 18 months. This means that 15.2 will be supported until at least Dec of this year.
https://en.opensuse.org/Lifetime

Also, now that openSUSE Leap is more closely tied to SLES, they are expecting to support openSUSE 15 for longer to match up with SLES 15

So once the work to get 15.2 supported is finished, it should be trivial to update the rules for 15.3 and each following minor release.

We should address these errors somehow. Either the configuration (and documentation) are missing a repository, or these rules need to be updated or removed.

I'm in the process of merging in the openSUSE rules. Most of those errors will go away once the changes have been merged. A few of those packages are not a part of openSUSE, like pcl and gazebo. I currently have a "External Dependency" repo that I maintain on the openSUSE build service but its not an official repository.
https://build.opensuse.org/project/show/home:neotinker3:ROS:External_Dependencies

My hope is that I can get some or all of these accepted into openSUSE or setup an official/semi-official repository for them on OBS that is not tied to my personal user.

@cottsay
Copy link
Member Author

cottsay commented Jun 5, 2021

I'm in the process of merging in the openSUSE rules. Most of those errors will go away once the changes have been merged.

Sounds great.

A few of those packages are not a part of openSUSE, like pcl and gazebo. I currently have a "External Dependency" repo that I maintain on the openSUSE build service but its not an official repository.

I'm not sure those rules are appropriate for the official rosdep DB. It's completely reasonable to add a supplemental DB that contains keys for non-system repositories, though.

My hope is that I can get some or all of these accepted into openSUSE

Obviously this would be ideal. For now, however, the rules should follow the guidance here: https://github.com/ros/rosdistro/blob/master/CONTRIBUTING.md#opensuse

If you'd like additional sources to be considered, a PR to update the documentation would be a good place to start that discussion.

Since this automation should help us verify the incoming rules, I'm going to merge it. Thanks for the feedback!

@cottsay cottsay merged commit 5a8d689 into ros:master Jun 5, 2021
@cottsay cottsay deleted the opensuse_repo_check branch June 5, 2021 08:39
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.

3 participants