This is a fascinating read, thank you. As a newcomer to the community it really resonates with my experience so far.
Packages developed by organizations or individuals other than those [provided by foundational working groups (FWGs)] are rarely successful in convincing others to rely on their packages. When these other packages do gain reverse dependencies, they are almost always from other packages within the same organization. Explaining the reasons behind such behavior is beyond the scope of this study, however, releasing packages with very specific functionality, low reliability, and limited documentation could be among the reasons.
For me, the biggest impediment to finding and using packages from the community has been the poor UX and slow performance of the ROS package index compared with some other ecosystems e.g. PyPi, Crates, NPM, VS Code, Sublime, etc…
For example, I tried to find whether there were any generalized implementations of extended kalman filters in ROS2:
Some immediate questions I’m left with:
- What are the descriptions?
- How do I sort by the number of dependents, number of contributors, frequency of updates, github stars/forks or other indicators of quality or popularity?
- How do I filter by compatibility?
- How do I show more than 10 results per page?
I quickly gave up on searching using the package index, and instead just googled, which didn’t turn up much either. This experience to me explains the discrepancy between these two charts:
The user flow which I imagine leads to this is:
- An organization likes the ROS infrastructure and wants to use it
- The FWG packages are easy to find and seem official, therefore trusted, and become a de facto standard library
- Everything else gets built in-house because it’s hard to find community packages
Recently I left a related comment on the RFC for package documentation requirements. This also dovetails somewhat with a recent thread I saw about migrating Answers to Stack Exchange rather than maintaining an in-house platform.
My general sense is that the ROS ecosystem might benefit from relying more on Github and other third-party services for measuring popularity of packages, viewing documentation, tracking issues, etc.