osrf / docker_images

A repository to hold definitions of docker images maintained by OSRF
Apache License 2.0
578 stars 172 forks source link

Remove redundant `-ros-` from image names #602

Closed amacneil closed 2 years ago

amacneil commented 2 years ago

Hello,

I am wondering whether from the ROS Humble release we could consider removing the reundant/stuttering -ros- from the package names. I find the current naming very confusing and hard to remember.

For example:

Duplicate tags could potentially be created for older releases so that both naming schemes are available, but going forward it would be nice to stick to the simplified tag names.

Thoughts?

ruffsl commented 2 years ago

The tags are derived from the meta package name they install from. This was brought up during the initial review as well:

I would favor adding some shorter names as well, like ros:core (that will auto move to jade once it is the "latest" docker image) and dropping the redundant ros in the tag names (ros:indigo-core vs ros:indigo-ros-core) https://github.com/docker-library/official-images/pull/751#issuecomment-106960591

With regard to shorter tag names, I admit I would like to have the short and clean labels, but I think it would deviate from our REP above. So for the sake of consistency over brevity, we should probably stick to prior given labels in the REP. https://github.com/docker-library/official-images/pull/751#issuecomment-107786214

Short of renaming the meta package names with an amendment to the respective REP, it doesn't seem worth renaming the tags.

https://ros.org/reps/rep-0150.html#metapackages

amacneil commented 2 years ago

The "consistency over brevity" decision seems more like "consistency over clarity" imo. I personally can never remember when typing these out where the duplicate -ros- needs to go, so I end up trying to type docker pull ros:ros-galactic-core or docker pull ros:galactic-core-ros.

Every other official docker image provides tags of package:version, package:version-variant, and package:variant (e.g. postgres:14, postgres:14-alpine, postgres:alpine).

By this standard, I naturally expect to find ros:galactic, ros:galactic-base, and ros:base tags available. I don't think a single person is going to be confused by the fact that those tags are missing a redundant -ros- in the tag name?

ruffsl commented 2 years ago

I agree that I find the -ros- quite redundant, and felt it a bit absurd when I first started using ROS; e.g. apt install ros-hydro-ros-base looks quite odd. The ROS community has since established better naming conventions, though legacy names prevail:

http://wiki.ros.org/ROS/Patterns/Conventions#Packages

Although this discussion would have been pertinent in 2015, it's been more than half a decade sense these meta package names were chosen to be the respective image tag name. With countless users, dockerfiles, scripts out in the wild coming to expect the current convention, I think there's just too much inertia to refactor these things now in 2022.

But if you insist, you could petition changing this upstream with the relevant ROS Enhancement Proposal and Variants:

amacneil commented 2 years ago

I guess the problem exists in apt too 😭

I'm still not convinced just because the apt packages have silly names, that the docker tags should also have silly names. Changing the docker tags could be done much easier than changing the apt packages (and the "legacy" silly names could still exist as additional tags).

Maybe I can make a case for changing this upstream as well.