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 ROS support #1455

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

Add ROS support #1455

wants to merge 5 commits into from

Conversation

nim65s
Copy link

@nim65s nim65s commented Dec 19, 2024

Hi,

This is a first take at adding distributions from ROS: https://ros.org/

Adding more info (at least authors / maintainers / licenses) would require fetching package.xml from individual packages, but maybe I can automate that in a repository managed by the ROS project, which would provide flat file per distro version for repology to ingest.

Copy link
Member

@AMDmi3 AMDmi3 left a comment

Choose a reason for hiding this comment

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

Note there's only 10% intersection with other repos. Apart from that I don't see any major problems with package versions or names, but dropped packages due to lacking releases are a concern.

2024-12-19-172109_sel

repology/parsers/parsers/ros.py Outdated Show resolved Hide resolved
repology/parsers/parsers/ros.py Outdated Show resolved Hide resolved
repology/parsers/parsers/ros.py Show resolved Hide resolved
repos.d/ros.yaml Outdated Show resolved Hide resolved
repos.d/ros.yaml Outdated Show resolved Hide resolved
repology/parsers/parsers/ros.py Show resolved Hide resolved
groups: [ all, production, ros, ros{{version}} ]
{% endmacro %}

{{ ros(1, 'groovy', minpackages=200, valid_till='2014-07-31') }}
Copy link
Member

Choose a reason for hiding this comment

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

For the note, it may make sense not to add EoLed repos of that would simplify code (e.g. by dropping legacy conditions for them).

Copy link
Author

Choose a reason for hiding this comment

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

I did not have to write anything specific for these old things, and it seem to work so I included them. But I don't really need those.

@nim65s
Copy link
Author

nim65s commented Dec 19, 2024

Note there's only 10% intersection with other repos.

Yes, those repos are mostly specific to robotics applications, and mostly not packaged elsewhere.

They are available on Nix through https://github.com/lopsided98/nix-ros-overlay, on Arch through AUR, and on conda through https://robostack.github.io/, so this might change in the future.

dropped packages due to lacking releases are a concern.

I'm not sure to understand what do you mean here. There are also dropped packages in older versions of other distributions too, right ? Anyways, it would be totally fine for me to just include the latest versions of ROS, if this may help. We currently have only 4 active ones, as Iron support has ended: https://docs.ros.org/

@AMDmi3
Copy link
Member

AMDmi3 commented Dec 19, 2024

I'm not sure to understand what do you mean here. There are also dropped packages in older versions of other distributions too, right?

If you mean that some other parsers may skip packages - AFAIR there may be some, but we strive to either fix or remove these, not add new incomplete parsers. There are 3 branches which skip packages - no release, no version and bitbucket link. Bitbucket case should just skip adding a recipe link, this is tolerable. Other cases, where do these come from, why's there an entry in the yaml, but part of the info is missing? May currently complete packages turn into this state?

@nim65s
Copy link
Author

nim65s commented Dec 19, 2024

Packages without releases are only available from source. This is often the case during the process of indexing a new package before the release repository can be created, eg. ros/rosdistro#43915. Complete packages can turn into this state, for example when some ubuntu dependency is no longer available in new ubuntu version, eg: ros/rosdistro#40091, but only on rolling, as other ones are tied on ubuntu versions.

Packages without version are those which fail to build on platform transition (same as latter case from above), eg. ros/rosdistro#32036. In the same way, complete packages can turn into this state, but only on rolling.

@AMDmi3
Copy link
Member

AMDmi3 commented Dec 20, 2024

We cannot add rolling then, incomplete repository content and flapping packages are show stoppers. I suggest to generate a complete dataset based on recipes and not affected by outside factors.

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.

2 participants