Comment 0 for bug 1817595

Revision history for this message
simonschmeisser (s-schmeisser) wrote :

In the effort to reduce boost dependency in urdfdom and urdfdom-headers [2] regressions wrt locale handling were introduced. Parsing of floating point values in URDF (a XML language) was now locale dependent, ie on European systems were the decimal separator is "," instead of "." parsing would now fail due to std::stod expecting "1,23" instead of "1.23" (no, we do not localize xml files, see also [3] for a more technical summary). The regressed versions were released as 1.0. Shortly after the release (some of) the regressions were detected [3] and fixes merged [3][4]. Unfortunately those fixed merges were not released until a long time later, too late for Ubuntu 18.04 by far and potentially even for 20.04. More regressions were noticed and fixed later on (disclaimer: by me) [5].

urdfdom is used mostly if not exclusively in the ROS community (including gazebo) which is a somewhat slow adopter of newer Ubuntu (and ros) releases but more and more people are now seeing these regressions in various places. To save more peoples time I propose to do a patch version update and pull urdfdom_headers version 1.0.3 as well as urdfdom version 1.0.3 (once released into debian). I argue against applying a patch because the diff between 1.0.0 and 1.0.3 is almost identical to a set of patches fixing the regressions. Updating to the upstream patch release will therefore improve tracing of the ubuntu downstream version to the upstream versioning.

Both urdfdom_headers and urdfdom now have an extensive set of unit test which in the case of urdfdom are also run in a European (ie Dutch) locale [6]. Together with the small and homogeneous user base, application mostly in research and the fact that most of the library is (for unknown reasons) almost header-only make me estimate that scope, potential and impact of regressions introduced by this upgrade would be extremely low.

1: https://github.com/ros/urdfdom/commit/3dc7ee812827cc69ffa457ef01fe7b9623096aed
2: https://github.com/ros/urdfdom_headers/commit/9d2b421f3fcbc2a32af40b99ebd9c2cb2d088fb9
3: https://github.com/ros/urdfdom_headers/pull/42
4: https://github.com/ros/urdfdom/pull/105
5: https://github.com/ros/urdfdom_headers/pull/47
6: https://github.com/ros/urdfdom/pull/115

See also the following upstream bug reports:
https://github.com/ros/urdfdom_headers/issues/45
https://github.com/ros/urdfdom/issues/119

and a few downstream bug reports to the ubuntu package:
https://github.com/ros-planning/moveit/issues/1333
https://github.com/ros/urdf/issues/21
https://github.com/ros-visualization/rviz/issues/1249
https://github.com/ros-visualization/rviz/issues/1151
https://github.com/ros-planning/moveit/issues/1050
https://github.com/ros-visualization/rviz/issues/1298