ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

Ros_comm - request for help


#1

If you have created a pull request against the ROS 1 ros_comm repository in the past you have likely experienced a long wait until you have received feedback - and in several cases your patch might not have received any attention yet. Unfortunately this has become a more frequent problem in the recent past (and I am really sorry for that negative experience). So why is that the case?

I am the assigned maintainer of almost all packages in the ros_comm repository. Beside that I am also the designated maintainer of almost all ROS 1 packages which make up the ros_core metapackage as well as higher level packages like rqt. ros_comm is standing out here due to its prominent content but other “high profile” repositories like rviz are similar in this regard. ros_comm receives by far the most tickets - issues as well as pull requests. In the early ROS days it was often sufficient to file a ticket describing a problem or feature idea and “someone” would just go ahead and fix / implement it for you. That has been much less the case in recent years. At least on the pull request side I was able to review contributions in regular intervals (something around every few weeks). Unfortunately not only has that interval continuously increased also the time I am able to spend on actually reproducing problems, testing patches etc. has decreased significantly. That resulted in both: patches got merged which weren’t sufficiently tested and introduced regressions as well as many patches which haven’t been “accepted” until now.

To understand why that is the case I have to mention a bit about my work time at Open Robotics. As you’ve surely noticed over the past few years, our development focus is on ROS 2. We’re still maintaining ROS 1 on a best-effort basis, but my day-to-day priority is shifting more and more towards ROS 2 development. That priority is the result of both our decision as a company on where to focus our energy and the reality of what type and scope of work can be supported by the industry partners and government agencies that supply the bulk of our funding. As a result any time that I do spend on ROS 1 maintenance necessarily takes away from our current projects. And even without targeted funding, the company decides to continuously invest quite some discretionary resources into ROS 1 maintenance (through each of our employees) - consider the effort it takes us every year to prepare a new ROS distribution - beside the continuous work on issues and pull requests, running the buildfarm, etc.

Open Robotics doesn’t have the resources available to allocate to these tasks so we can’t expect any additional time to “magically” become available. Luckily there is already one external ROS developer helping to maintain the ros_comm repo (Thank you, Mike Purvis / Clearpath Robotics!). Without his efforts the current situation would be much worse. But the trend of me having less and less time as well as the load continuously increasing leads to the current unsatisfying situation as well as a not very positive outlook for the future.

So what can we do about it? Ultimately we need more people to volunteer to help with the effort of maintaining these packages. These contributions can come in many forms: review pending patches (which includes reproducing the problem, applying the proposed patch, reporting that the problem is fixed, additional testing to check for potential regressions), review incoming issues and provide users with help to fix them, help with other maintainer tasks like creating and testing patch releases, considering patches for backporting into “older” ROS distributions which are still being supported, investigating flaky tests, etc. A good way to start is to browse through the existing tickets and subscribe to the notifications on the repo so you will get emailed when new issues / pull requests are coming in, and some may pique your interest. While any kind of help is highly appreciated we are looking for people which want to help for a longer time period and on a regular base with these tasks. If you would like to “commit” to that kind of support please let us know and we are happy to get you more actively involved.


#2

I am interesting at maintaining the old package in ROS1 how to involve the great process ?


#3

I can volunteer some time to help out with some of these tasks. Plus I always wanted to learn more about ROS packaging and the build farm process.


#4

I’d like to help support this.


#5

You left out the part where OSRF decided to make all of ROS2 independent and incompatible to ROS1, causing a split in the community, and duplicating all maintenance efforts. Don’t you think that this is part of the reason?

You do not mention the possibility of migrating the ROS1 community as a whole to ROS2. But maybe even OSRF has given up hope of achieving that anytime soon after making the migration path so difficult.

You really mean OSRF is looking to hand over ROS1 to some other organisation, like an actual open-source robotics foundation?

So will OSRF make a presentation at next ROSCon about how ROS1 is dead, given ros_comm is unmaintained? Might go nicely along with other presentations showing new ROS1 packages.


#6

Hi Dirk,

I would like to help, but I cannot really justify it to my employers at this point, when we are focusing on ROS2.

Also, I think QA on ROS1 has always been a problem and I don’t see a good solution.

So, how about trying the idea of a library shim, either instead of or in addition to adding maintainers to ros_comm?

I mean a ROS1 API on top of rcl. We could transition everybody much more quickly that way.

I know this has been talked about before, but not realized so far. Not sure why, but if it’s about the effort, a shim would be something I and probably many others could get involved in, because it’s about helping with the future ROS.

Cheers,

Ingo


#7

I like Ingo’s proposal of a Shim. I’d be interested in helping on the Python part.


#8

@lisuwang @maximest-pierre @TheFlyingZephyr

Thank you for offering your support. Please see https://github.com/ros/ros_comm/issues/1496 where I tried to give a high level overview how to help. Please feel free to ask questions on that ticket.

@Ingo_Lutkebohle @awesomebytes

If you would like to contribute towards an API shim that would be great. We have had discussions about the topic in the past about how viable / complicated it would be, what to cover, what to do when the existing ROS 1 API can’t be mapped to ROS 2 etc. I would suggest to start a discussion in the “Next Generation ROS” category. I could also create repositories for this effort (e.g. ros2/ros1_shim) if you think that would be helpful to get things rolling?


ROS1 shim library development proposal
#9

@dirk-thomas lets start a discussion, indeed. You may have a better insight of how much work and how doable it is.