[ros-users] [Discourse.ros.org] [Packaging and Release Management/Kinetic] Add usb_cam to ROS Kinetic main repository

Maarten de Vries ros.discourse at gmail.com
Sat Mar 11 10:41:48 UTC 2017

You are addressing quite a number of different thing in this post, but to me the interesting bits are the ones regarding forking to take control of the ROS releases away from the current maintainers. Sorry if that means I'm ignoring the practical bits about using USB cameras.

[quote="k-okada, post:2, topic:607"]
I would propose to put fundamental packages such as USB camera driver should hosted on in NOT a personal repository but osrf-related organization repository or repository with several responsible  ownership.

[quote="k-okada, post:2, topic:607"]
Other possibility is force transfer/move usb_cam and usb_cam-release (or libuvc_camera if we can fix the  problem) to ros-driver repository and keep release on kinetic, give maintainer ownership to someone in this list, (if nobody I can). @wjwwood, @dirk-thomas, @tfoote

I don't think this is needed as general policy, and I think it is quite disrespectful to the original authors and harmful for development if done simply for the reason to host everything under control of OSRF. If done because development or maintenance of an important package seems to have stopped (as may be the case now), then I see no problem in forking the project.

Before reaching that conclusion though, enough effort should have been spent trying to raise the issue with the current maintainer(s). In the case of `usb_cam`, this seems to have been done [1].
[1] https://github.com/bosch-ros-pkg/usb_cam/issues/53

It does not seem to me that OSRF necessarily has to be the one to maintain the fork though. Anyone with sufficient motivation and time is free to maintain a fork and try to get his fork released into Kinetic.

[quote="k-okada, post:2, topic:607"]
I know that it is common style to keep repository small and independent as discussed  https://discourse.ros.org/t/joystick-drivers-package/905 and https://github.com/ros-visualization/rqt_common_plugins/pull/442#issuecomment-285243913. But I think one way to keep package maintaind, at the lowest level such as releasing to new distro, is to create repository containing multiple packages, and if someone want to release one package in that repo, then he/she have to release other packages too, eventhough he/she is not interested in that package. Otherwise, each package requires someone with enough resources (skill, time, motivation, responsibility....) .

So based on my theory, we'll make ros-drivers/camera_drivers package that contains all of camera packages (I know this is very dangerous....) or put opencv based image publisher like video_strem_opencv into https://github.com/ros-perception/image_pipeline.

I think this is a very bad idea. Merging issue trackers and coupling version numbers and release cycle (bloom does not allow different version for different packages in one repository) of unrelated packages does not make maintenance or development easier. It just makes things harder.

Besides, if a package goes unmaintained for a long period of time without anybody forking it, then apparently nobody really needs the package. Maybe it should disappear from the ecosystem then.

In short: to me, the correct way to solve a problem with an unmaintained package that you need is to fork it, patch it, and try to get the patch back to upstream. If that fails and the upstream maintainers seem to have abandoned the project, you can try to get your fork released in under the original name in the ROS ecosystem.

[Visit Topic](https://discourse.ros.org/t/add-usb-cam-to-ros-kinetic-main-repository/607/3) or reply to this email to respond.

More information about the ros-users mailing list