profile
viewpoint
Dirk Thomas dirk-thomas @osrf Open Source Robotics Foundation Mountain View, CA http://www.dirk-thomas.net

pull request commentcolcon/colcon-core

add setuptools to setup_requires

On Debian, how do we resolve Python versioned dependencies anyway?

A Debian package can only depend on other Debian packages. So the generated python3-colcon-core Debian package must run with the Debian package python3-setuptools available. Therefore the Debian package can't have a minimum version number for setuptools which exceeds the version available from Debian.

Why does the minimum version in install_requires also need to be bumped? I would expect that a newer version is only necessary when invoking the setup.py file of colcon-core but not when the package is later used.

If only setup_requires is added it needs to be checked that this change doesn't affect the generated deb.

rotu

comment created time in 10 hours

PR closed ros/ros_comm

[Kinetic] Backport #2038

Backport of #2038 , resolves #2006

  • Gracefully stop recording upon SIGTERM and SIGINT
  • Add rostopic test dependency
+217 -0

2 comments

9 changed files

dabonnie

pr closed time in 10 hours

pull request commentros/ros_comm

[Kinetic] Backport #2038

Changes are backported together before a new patch release and not on an individual base since with the number of changes and their order that becomes unmanagable. See #1496 which describes the process. In this case the change first needs to land in a Noetic release, then be backported to Melodic and from there to Kinetic.

dabonnie

comment created time in 10 hours

issue commentcolcon/colcon-core

Crash in _create_symlink on Windows

One way to cause a similar crash is to try to create a symlink inside a parent folder without read access to that parent folder.

Can you please post concrete steps I can try to reproduce for this.

rotu

comment created time in 14 hours

push eventros2/buildfarm_perf_tests

Dirk Thomas

commit sha c2c043e01feb2001a512f66d76a00db338921555

reduce the y_axis_maximum for throughput of 1k which is up to 1Mbit (#78) Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>

view details

push time in 15 hours

PR merged ros2/buildfarm_perf_tests

reduce the y_axis_maximum for throughput of 1k bug

The last graph on these two pages shows the throughput for 1000 1k messages in Mbit which is always below 1 Mbit:

  • http://build.ros2.org/view/Rci/job/Rci__nightly-performance_ubuntu_focal_amd64/plot/Performance%20One%20Process%20Test%20Results%20(Array1k)/
  • http://build.ros2.org/view/Rci/job/Rci__nightly-performance_ubuntu_focal_amd64/plot/Performance%20Two%20Processes%20Test%20Results%20(Array1k)/

The current y-axis max of 1000 Mbit makes the lines all render on top of the x-axis without showing any variation. This patch reduced the y-axis max to 1.05 (to leave a bit of head room in case any value goes above 1.0) to render the values in a way that the actual values can be seen.

+2 -2

0 comment

2 changed files

dirk-thomas

pr closed time in 15 hours

push eventros/ros_comm

Devin Bonnie

commit sha 7b5a0beb0bbffc4a9ab2ff2a300776b7f5c5ca40

Gracefully stop recording upon SIGTERM and SIGINT (#2038) * Add SIGTERM and SIGINT handlers to rosbag record Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Add unit test for rosbag record SIGINT handling Add unit test for rosbag record SIGTERM handling Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Address review comments Fix sending SIGINT to main process Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Revert added whitespace Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Revert SIGINT handler addition: use default Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Remove unnecessary wait Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Use BSD License Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Add test improvements Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Move test helper function Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Remove redundant test rosbag launch Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Add Amazon to new python test copyright Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Remove unrelated whitespace Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Split record cleanup unit tests Add record cleanup unit test helper Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * Revert whitespace change Signed-off-by: Devin Bonnie <dbbonnie@amazon.com> * revert white space change Co-authored-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>

view details

push time in 16 hours

PR merged ros/ros_comm

Gracefully stop recording upon SIGTERM and SIGINT bug

Resolves #2006

  • Add handling for SIGTERM in recorder
  • Preserve handling for SIGINT in recorder
+216 -0

11 comments

8 changed files

dabonnie

pr closed time in 16 hours

issue closedros/ros_comm

rosbag leaves an ".active" file dangling when receiving SIGTERM

Currently, rosbag leaves a dangling ".active" file when stopped with SIGTERM.

  1. Can we update rosbag so that the behavior of SIGTERM and SIGINT is the same?
  2. Would it be acceptable to backport this behavior to Kinetic, and Melodic?

closed time in 16 hours

thomas-moulard

pull request commentros/ros_comm

Gracefully stop recording upon SIGTERM and SIGINT

Thanks for the patch and for iterating on it!

dabonnie

comment created time in 16 hours

issue commentosrf/www.ros.org

History timeline's latest item is the Lunar release

It's missing ROSCons >= 2017 and Melodic

... and Noetic as well as all ROS 2 distributions.

chapulina

comment created time in 16 hours

PR opened ros2/buildfarm_perf_tests

reduce the y_axis_maximum for throughput of 1k which is up to 1Mbit bug

The last graph on these two pages shows the throughput for 1000 1k messages in Mbit which is always below 1 Mbit:

  • http://build.ros2.org/view/Rci/job/Rci__nightly-performance_ubuntu_focal_amd64/plot/Performance%20One%20Process%20Test%20Results%20(Array1k)/
  • http://build.ros2.org/view/Rci/job/Rci__nightly-performance_ubuntu_focal_amd64/plot/Performance%20Two%20Processes%20Test%20Results%20(Array1k)/

The current y-axis max of 1000 Mbit makes the lines all render on top of the x-axis without showing any variation. This patch reduced the y-axis max to 1.05 (to leave a bit of head room in case any value goes above 1.0) to render the values in a way that the actual values can be seen.

+2 -2

0 comment

2 changed files

pr created time in 16 hours

pull request commentros/ros_comm

Gracefully stop recording upon SIGTERM and SIGINT

@ros-pull-request-builder retest this please

dabonnie

comment created time in 17 hours

delete branch dirk-thomas/rosdistro

delete branch : bloom-rqt_graph-0

delete time in 17 hours

delete branch dirk-thomas/rosdistro

delete branch : bloom-rqt_graph-1

delete time in 18 hours

Pull request review commentros/ros_comm

Gracefully stop recording upon SIGTERM and SIGINT

 int main(int argc, char** argv) {     // Run the recorder     rosbag::Recorder recorder(opts);     int result = recorder.run();-    

I actually fixed it in 2d5c41306703c6431e1a399fa600630bec43f641.

dabonnie

comment created time in 18 hours

PullRequestReviewEvent

push eventdabonnie/ros_comm

Dirk Thomas

commit sha 2d5c41306703c6431e1a399fa600630bec43f641

revert white space change

view details

push time in 18 hours

PR opened ros/rosdistro

Reviewers
rqt_graph: 1.1.0-1 in 'foxy/distribution.yaml' [bloom]

Increasing version of package(s) in repository rqt_graph to 1.1.0-1:

  • upstream repository: https://github.com/ros-visualization/rqt_graph.git
  • release repository: https://github.com/ros2-gbp/rqt_graph-release.git
  • distro file: foxy/distribution.yaml
  • bloom version: 0.9.8
  • previous version for package: 1.0.4-1

rqt_graph

* add edge tooltip with QoS of publishers and subscribers (#53 <https://github.com/ros-visualization/rqt_graph/issues/53>)
+1 -1

0 comment

1 changed file

pr created time in 18 hours

create barnchdirk-thomas/rosdistro

branch : bloom-rqt_graph-1

created branch time in 18 hours

create barnchdirk-thomas/rosdistro

branch : bloom-rqt_graph-0

created branch time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha 4a6e1ac99305cb9be5b9bc39b81c07030c823245

Rebase from 'debian/foxy/rqt_graph'

view details

Dirk Thomas

commit sha 2efcbca18f9512ad61757eef487aad31dbeb6310

Generated debian files for focal

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha 6a6a0a4d7692f7ce307d9018a0edc4fa994d2df7

Rebase from 'release/foxy/rqt_graph'

view details

Dirk Thomas

commit sha 33c1515f4bf9893a3fc9ee276f38fcb0e1f9b836

Placing debian template files

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha 42cd20eb3db72195db44d0db8c1e1861c7a3c2f0

Rebase from 'upstream'

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha 51fc033b5b632f51dd6bda4494b4d973867dbff5

Modified tracks.yaml

view details

Dirk Thomas

commit sha 3f5cf7f00a01f045365995123395863fb8be92a6

Updating release inc to: 1

view details

Dirk Thomas

commit sha 87c14ed7b9e0a0fe0e079558a6ebe7c87aa4cdb9

Updating README.md

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha 0a18208482f322a0a5b06a38702b2ea1fed86fdf

Updated patches.conf

view details

Dirk Thomas

commit sha 5d1f612cfab0451adfb66b752caaf0cd847553ac

Updated patches.conf

view details

Dirk Thomas

commit sha e5e8bc7e9eb3c9ed457fd53747e9d1a2a7bfc160

Store releaser history

view details

Dirk Thomas

commit sha 369b1d25219de71de0728c44ad539f56b2b62777

Store original patch config

view details

Dirk Thomas

commit sha bf62e4912b7e580d7d2e4edd491b1e2b48e08db2

Updated patches.conf

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha 83c8fcf9e2d401f0cdd838b7bf5f980d915faf9c

Updated patches.conf

view details

Dirk Thomas

commit sha f46f0f938b4fc1abf3669462ca9bc7e8ac822d7d

Updated patches.conf

view details

Dirk Thomas

commit sha a57f0f73e7c10e7743c6e0e9787e66c16e4208a3

Store original patch config

view details

Dirk Thomas

commit sha d166ec4052f2072facca0fed26690f4f2119e4d1

Updated patches.conf

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha d43e5cd7f99f17822257674b75173f1a03913f4e

Updated patches.conf

view details

push time in 18 hours

PR opened ros/rosdistro

Reviewers
rqt_graph: 1.1.0-1 in 'rolling/distribution.yaml' [bloom]

Increasing version of package(s) in repository rqt_graph to 1.1.0-1:

  • upstream repository: https://github.com/ros-visualization/rqt_graph.git
  • release repository: https://github.com/ros2-gbp/rqt_graph-release.git
  • distro file: rolling/distribution.yaml
  • bloom version: 0.9.8
  • previous version for package: 1.0.4-2

rqt_graph

* add edge tooltip with QoS of publishers and subscribers (#53 <https://github.com/ros-visualization/rqt_graph/issues/53>)
+1 -1

0 comment

1 changed file

pr created time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha 135e999a7d2bf81428fcd7e4a7e7e563b689a3cb

Updated patches.conf

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha c1854d68ca477f065b8b3f0c56e61e91676f60a6

Updated patches.conf

view details

Dirk Thomas

commit sha 7663549915f47867d41c7287d0c4a3ae3472f7e0

Updated patches.conf

view details

Dirk Thomas

commit sha 6ee46e7224b535941d584a505bb342e2dcb294bf

Store original patch config

view details

Dirk Thomas

commit sha 1abdf6a68e1bc27b9d94190d9771f371bc20faef

Updated patches.conf

view details

push time in 18 hours

created tagros2-gbp/rqt_graph-release

tagupstream/1.1.0

created time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha 005032162ab47ce3a3865fb5b91059d815e136e9

Modified tracks.yaml

view details

Dirk Thomas

commit sha 6cbe5f28a54731de413403240f41c4335fe1df2a

Updating release inc to: 1

view details

Dirk Thomas

commit sha 259dcdc208eddbbf4593fb4481e27928a88d1206

Updating README.md

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha 61bf866cd31cf6379e9db2a7691ee7d06ddb6b34

Rebase from 'debian/rolling/rqt_graph'

view details

Dirk Thomas

commit sha 62c17deb4fc2aa1d6dcfbf940e3aaef7a806c562

Generated debian files for focal

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha 81c449646600eded01c1bb5206ff022bef9e3fe4

Rebase from 'upstream'

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha 6d7fb745b0f8b45d56c05cff72988081879b2652

Updated patches.conf

view details

Dirk Thomas

commit sha e64c1525146260ad4411974904c4afbfad695947

Updated patches.conf

view details

Dirk Thomas

commit sha d919784da04250376e8a25735c43281898db2409

Store releaser history

view details

Dirk Thomas

commit sha d89147f10dd05ab60b62cbd5b1218e340da62fe3

Store original patch config

view details

Dirk Thomas

commit sha 957dc4f0f7885a084247a010ff4e368c9a03f236

Updated patches.conf

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha bdcc91f83b29ce8b8130e8defc320d5a05ccb1de

Imported upstream version '1.1.0' of 'upstream'

view details

push time in 18 hours

push eventros2-gbp/rqt_graph-release

Dirk Thomas

commit sha d2d5398974ddf7c29a3d3c2410bd10bab9194e0b

Rebase from 'release/rolling/rqt_graph'

view details

Dirk Thomas

commit sha ce5f1564672abb558b6f169a2387d4eb0ccfffe1

Placing debian template files

view details

push time in 18 hours

created tagros-visualization/rqt_graph

tag1.1.0

created time in 18 hours

push eventros-visualization/rqt_graph

Dirk Thomas

commit sha 893487778b5a9a4e5f18fecb55565bee920b9ef4

update changelog

view details

Dirk Thomas

commit sha 0f8f6606af3d14643b23d53595f2b3be7c66e8da

1.1.0

view details

push time in 18 hours

delete branch ros-visualization/rqt_graph

delete branch : dirk-thomas/qos-tooltip

delete time in 18 hours

push eventros-visualization/rqt_graph

Dirk Thomas

commit sha 11b57e7d8a5aff2d17d717feff9401e3a6d17172

add edge tooltip with QoS of publishers and subscribers (#53) * add edge tooltip with QoS of publishers and subscribers Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com> * skip some values Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com> * collect QoS from all pubs/subs of a topic, render parallel edges for different QoS Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>

view details

push time in 18 hours

PR merged ros-visualization/rqt_graph

add edge tooltip with QoS of publishers and subscribers enhancement

Requires ros-visualization/qt_gui_core#237.

+68 -13

0 comment

3 changed files

dirk-thomas

pr closed time in 18 hours

issue closedros-visualization/rqt

ROS2 port: Button icons don't show in Mac/Windows

Buttons for several plugins don't show the icons that show up in linux. For example, the add/remove/clear publisher(s) in rqt_publisher.

closed time in 18 hours

brawner

issue commentros-visualization/rqt

ROS2 port: Button icons don't show in Mac/Windows

With ros-visualization/qt_gui_core#222 released the problem should be solved. Assuming that is the case I will go ahead and close this ticket.

If the problem persists please check that you are using the latest version, share enough context about the platform and the versions of involved packages you use and the ticket can be reopened if needed.

brawner

comment created time in 18 hours

issue closedros-visualization/rqt_plot

ROS1 Melodic on Windows 10 Icons not displaying

When going through the ROS tutorial for Beginners after Melodic install on Windows 10, the ros_graph and ros_plot within the window icons are not displaying at all (I went all the way through the whole tutorial, step-by-step, up to Section 6)

image

closed time in 18 hours

arek20

issue commentros-visualization/rqt_plot

ROS1 Melodic on Windows 10 Icons not displaying

I will close this as a duplicate of a more generic ticket in qt_gui_core where the change would need to happen: ros-visualization/qt_gui_core#238.

arek20

comment created time in 18 hours

issue closedros-visualization/rqt_graph

ROS1 Melodic on Windows 10 Icons not displaying

Icons are not displaying in rqt_graph for Melodic on Windows 10 Please see: https://github.com/ros-visualization/rqt_plot/issues/42#issue-522507963

closed time in 18 hours

arek20

issue commentros-visualization/rqt_graph

ROS1 Melodic on Windows 10 Icons not displaying

I will close this as a duplicate of a more generic ticket in qt_gui_core where the change would need to happen: ros-visualization/qt_gui_core#238.

arek20

comment created time in 18 hours

issue openedros-visualization/qt_gui_core

[ROS 1] add logic to use tango_icons_vendor on Windows and macOS

Similar to #222.

This will require someone to contribute a pull request since the maintainer doesn't have the bandwidth to do so.

created time in 18 hours

Pull request review commentros/ros_comm

Gracefully stop recording upon SIGTERM and SIGINT

 int main(int argc, char** argv) {     // Run the recorder     rosbag::Recorder recorder(opts);     int result = recorder.run();-    

Please revert.

dabonnie

comment created time in 19 hours

PullRequestReviewEvent

Pull request review commentros-visualization/rqt_graph

add edge tooltip with QoS of publishers and subscribers

 def _graph_refresh(self):         subscriptions = defaultdict(list)         servers = defaultdict(list) +        publisher_topic_names = set()+        subscriber_topic_names = set()+         for name, namespace in self._node.get_node_names_and_namespaces():             node_name = namespace + name if namespace.endswith('/') else namespace + '/' + name              for topic_name, topic_type in \                     self._node.get_publisher_names_and_types_by_node(name, namespace):                 publishers[topic_name].append(node_name)+                publisher_topic_names.add(topic_name)              for topic_name, topic_type in \                     self._node.get_subscriber_names_and_types_by_node(name, namespace):                 subscriptions[topic_name].append(node_name)+                subscriber_topic_names.add(topic_name)              for service_name, service_type in \                     self._node.get_service_names_and_types_by_node(name, namespace):                 servers[service_name].append(node_name) +        publisher_qos = {}

If there are two publishers in the graph with different qos, only one will be shown.

Not in the graph - but in a single node publishing to the same topic. Then yes, only one would be shown which is indeed not nice.

Showing both (or all) shouldn't be a problem. Until now parallel edges were consolidated. Please see 331dc12644d08ba8cf6ca704f9579ef3a14e8eb3 which collects all QoS and then uses parallel edged for different QoS. E.g. if there are 3 publishers with 2 different QoS the graph will show 2 parallel edges each showing the unique QoS.

dirk-thomas

comment created time in 19 hours

PullRequestReviewEvent

push eventros-visualization/rqt_graph

Dirk Thomas

commit sha 331dc12644d08ba8cf6ca704f9579ef3a14e8eb3

collect QoS from all pubs/subs of a topic, render parallel edges for different QoS Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>

view details

push time in 19 hours

Pull request review commentros-visualization/rqt_graph

add edge tooltip with QoS of publishers and subscribers

 def _add_edge(self, edge, dotcode_factory, dotgraph, is_topic=False):                     _conv(edge.end),                     label=temp_label,                     penwidth=penwidth,-                    color=color)+                    color=color,+                    edgetooltip=self._qos_to_string(edge.qos))             else:                 dotcode_factory.add_edge_to_graph(-                    dotgraph, _conv(edge.start), _conv(edge.end), label=edge.label)+                    dotgraph,+                    _conv(edge.start),+                    _conv(edge.end),+                    label=edge.label,+                    edgetooltip=self._qos_to_string(edge.qos))++    def _qos_to_string(self, qos):

Unfortunate but done in 62ca3505792764cd2952cb7cace7201a87b4162e.

dirk-thomas

comment created time in 21 hours

PullRequestReviewEvent

push eventros-visualization/rqt_graph

Dirk Thomas

commit sha 62ca3505792764cd2952cb7cace7201a87b4162e

skip some values Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>

view details

push time in 21 hours

push eventros/ros_comm

Sean Yen

commit sha 425fad365990c213bc75858f302340a7c4e03472

fix error handling with Python 3 (#2050) * Python3 compatible. * Replace *discard with *_

view details

push time in 21 hours

PR merged ros/ros_comm

fix error handling with Python 3 bug

This is motivated by the issue found here: https://github.com/ms-iot/ROSOnWindows/issues/275

The exception object in Python3 will unpack more than 2 outputs in Python3 and this pull request is to capture and discard the rest to avoid the error: too many values to unpack.

NOTE: This is a Python3 idiom to use wildcard for unpack, so this is not compatible with Melodic or older distributions.

+1 -1

0 comment

1 changed file

seanyen

pr closed time in 21 hours

issue commentros/ros_comm

Mutex deadlock on service connection drop.

@Barry-Xu-2018 Can you please take a look at this bug report since you contributed the referenced code.

guillaumeautran

comment created time in 21 hours

Pull request review commentros/ros_comm

[Windows] Single quote string fix-up

 def param_value(self, verbose, name, ptype, value, textfile, binfile, command):                     # special handle the use of Python scripts in Windows environment:                     # 1. search for a wrapper executable (of the same name) under the same directory with stat.S_IXUSR flag                     # 2. if no wrapper is present, prepend command with 'python' executable+                    def split_with_single_quote_enclosed_fixup(command):+                        tokens = shlex.split(command, posix=False)  # use non-posix method on Windows+                        if not ("'" in command):+                            return tokens+                        new_command = []+                        for token in tokens:+                            if token.startswith("'") and token.endswith("'"):+                                new_command.append(token[1:-1])+                            else:+                                new_command.append(token)

This loop could be expressed with a list comprehension which would make it more readable.

seanyen

comment created time in 21 hours

Pull request review commentros/ros_comm

[Windows] Single quote string fix-up

 def param_value(self, verbose, name, ptype, value, textfile, binfile, command):                     # special handle the use of Python scripts in Windows environment:                     # 1. search for a wrapper executable (of the same name) under the same directory with stat.S_IXUSR flag                     # 2. if no wrapper is present, prepend command with 'python' executable+                    def split_with_single_quote_enclosed_fixup(command):

Since this is a single use local function I would rather keep the code inline. Also in the current patch it seems to imply that the previously existing comment above now relates to the function but that isn't the case. Therefore please move the logic above that comment.

seanyen

comment created time in 21 hours

Pull request review commentros/ros_comm

[Windows] Single quote string fix-up

 def param_value(self, verbose, name, ptype, value, textfile, binfile, command):                     # special handle the use of Python scripts in Windows environment:                     # 1. search for a wrapper executable (of the same name) under the same directory with stat.S_IXUSR flag                     # 2. if no wrapper is present, prepend command with 'python' executable+                    def split_with_single_quote_enclosed_fixup(command):+                        tokens = shlex.split(command, posix=False)  # use non-posix method on Windows+                        if not ("'" in command):

Nitpick: this should be written as if "'" not in command:.

seanyen

comment created time in 21 hours

PullRequestReviewEvent

Pull request review commentros/ros_comm

[Windows] Single quote string fix-up

 def param_value(self, verbose, name, ptype, value, textfile, binfile, command):                                             executable_command = ' '.join([sys.executable, f])                             if executable_command:                                 command = command.replace(cl[0], executable_command, 1)+                    command = split_with_single_quote_enclosed_fixup(command)

Why should this only be applied after the long if block? Couldn't the same also apply to the first item of command and therefore affect the if block?

seanyen

comment created time in 21 hours

PullRequestReviewEvent

push eventros/ros_comm

tomoya

commit sha 44fa5cfc2b7f87d372cee62792b154d707dab814

XmlRpcValue::_doubleFormat should be used during write. (#2003) * XmlRpcValue::_doubleFormat should be used during write. Signed-off-by: Tomoya.Fujita <Tomoya.Fujita@sony.com> * allocate buffer dynamically for XmlRpcValue::_doubleFormat if necessary. Signed-off-by: Tomoya.Fujita <Tomoya.Fujita@sony.com> * add test for XmlRpcValue::_doubleFormat. Signed-off-by: Tomoya.Fujita <Tomoya.Fujita@sony.com> * check return code from std::snprintf, save/restore DoubleFormat for test. Signed-off-by: Tomoya.Fujita <Tomoya.Fujita@sony.com> * add one time warning message for DoubleFormat. Signed-off-by: Tomoya.Fujita <Tomoya.Fujita@sony.com> * use XmlRpcUtil::error instead of ROS_ERROR. Signed-off-by: Tomoya.Fujita <Tomoya.Fujita@sony.com> * use static_cast and minor fixes. Signed-off-by: Tomoya.Fujita <Tomoya.Fujita@sony.com> * delete unrelated change and fix invalid format case. Signed-off-by: Tomoya.Fujita <Tomoya.Fujita@sony.com> * get rid of redundant condition from if statement. Signed-off-by: Tomoya.Fujita <Tomoya.Fujita@sony.com>

view details

push time in 21 hours

PR merged ros/ros_comm

XmlRpcValue::_doubleFormat should be used during write. bug consider-backport

fix https://github.com/ros/ros_comm/issues/1958

Signed-off-by: Tomoya.Fujita Tomoya.Fujita@sony.com

+57 -1

14 comments

2 changed files

fujitatomoya

pr closed time in 21 hours

issue closedros/ros_comm

XmlRpcValue ignores the value of `_doubleFormat`

https://github.com/ros/ros_comm/search?q=_doubleformat&unscoped_q=_doubleformat https://github.com/ros/ros_comm/search?q=getdoubleformat&unscoped_q=getdoubleformat

This value has no use at all.

XmlRpc::XmlRpcValue::setDoubleFormat("%.2f");
std::stringstream ss;
ss << XmlRpc::XmlRpcValue(2.0);
EXPECT_EQ("2.00", ss.str());

This fails. The output of ss.str() is "2".

closed time in 21 hours

peci1

pull request commentros/ros_comm

XmlRpcValue::_doubleFormat should be used during write.

Thanks for the patch.

fujitatomoya

comment created time in 21 hours

issue commentros2/console_bridge_vendor

Linker conflicts and usage clarification [clang]

TL;DR This is a bug in the templates used by bloom to generate the Debian rules file.

First some context to understand why / how this is happening. The CMAKE_INSTALL_PREFIX is always added to the search path of e.g. find_package() (see CMake docs):

The installation prefix is also added to CMAKE_SYSTEM_PREFIX_PATH so that find_package(), find_program(), find_library(), find_path(), and find_file() will search the prefix for other software.

But the install prefix if not inserted before global paths like /usr. So the CMAKE_SYSTEM_PREFIX_PATH will look like this: /usr/local;/usr;/;/usr;${CMAKE_INSTALL_PREFIX};/usr/X11R6;/usr/pkg;/opt. That means if no CMAKE_PREFIX_PATH is set pointing to /opt/ros/<distro> that packages are first looked for in global locations like /usr before CMAKE_INSTALL_PREFIX (which is also /opt/ros/<distro>).

Now to the content of the bloom templates - specifically the ones for the Debian rules file (rather than rpm referenced above):

  • For catkin packages CMAKE_PREFIX_PATH is set explicitly: https://github.com/ros-infrastructure/bloom/blob/d2265fd73f7c93437dc9fb704e893f6ef478b8ae/bloom/generators/debian/templates/catkin/rules.em#L29-L32 (in case the sourced setup file doesn't exist since that would set it too)
  • For ament_cmake packages CMAKE_PREFIX_PATH is not set explicitly: https://github.com/ros-infrastructure/bloom/blob/d2265fd73f7c93437dc9fb704e893f6ef478b8ae/bloom/generators/debian/templates/ament_cmake/rules.em#L29-L31 (the the sourced setup file never sets the variable either)
  • For cmake packages CMAKE_PREFIX_PATH is also not set explicitly: https://github.com/ros-infrastructure/bloom/blob/d2265fd73f7c93437dc9fb704e893f6ef478b8ae/bloom/generators/debian/templates/cmake/rules.em#L29

Therefore I think CMAKE_PREFIX_PATH must be set in both ament_cmake as well as cmake packages to ensure packages are first searched for in the install prefix and only secondary in system paths.

henningkayser

comment created time in 21 hours

Pull request review commentros/ros_comm

[noetic] Python3 compatible.

 def run(self):             except ConnectionAbortedError:                 continue             except IOError as e:-                (e_errno, msg) = e.args+                (e_errno, msg, *discard) = e.args

Please use _ instead of discard.

seanyen

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentros/ros_comm

Gracefully stop recording upon SIGTERM and SIGINT

 if(CATKIN_ENABLE_TESTING)   add_rostest(${PROJECT_BINARY_DIR}/test/latched_sub.test)   add_rostest(test/record_two_publishers.test)   add_rostest(test/record_one_publisher_two_topics.test)+  add_rostest(test/record_sigint_cleanup.test)+  add_rostest(test/record_sigterm_cleanup.test)

Beside the name of the test both .test files contain the same content? Are the same tests (embedded in the record_cleanup.py file) run twice?

dabonnie

comment created time in 2 days

PullRequestReviewEvent

issue commentros2/rosbag2

ros2bag QOS test uses several sleeps on windows

can this issue be closed?

Sounds good to me. Once the PR is merged that should happen automatically.

Karsten1987

comment created time in 2 days

Pull request review commentcolcon/colcon-core

add check root dir

 def check_and_mark_install_layout(install_base, *, merge_install):     marker_path.write_text(this_install_layout + '\n')  +def check_and_mark_root_dir(this_build_tool='colcon'):+    """+    Check the marker file for root workspace.++    If marker file is found in parent directory, raise error;+    if it is found in current direcotry, continue to build.+    If no marker file found, create marker file.++    The marker filename is `.colcon`.++    :param str this_build_tool: The name of this build tool+    :raises RuntimeError: if marker file is found in parent directory+    """+    original_path = Path(os.getcwd())+    current_path = original_path+    parent_path = current_path.parent+    while current_path.name != parent_path.name:+        marker_path = current_path / '.colcon'+        if marker_path.parent.is_dir() and marker_path.is_file():+            if current_path.name == original_path.name:

Same here.

claireyywang

comment created time in 2 days

Pull request review commentcolcon/colcon-core

add check root dir

 def check_and_mark_install_layout(install_base, *, merge_install):     marker_path.write_text(this_install_layout + '\n')  +def check_and_mark_root_dir(this_build_tool='colcon'):+    """+    Check the marker file for root workspace.++    If marker file is found in parent directory, raise error;+    if it is found in current direcotry, continue to build.+    If no marker file found, create marker file.++    The marker filename is `.colcon`.++    :param str this_build_tool: The name of this build tool+    :raises RuntimeError: if marker file is found in parent directory+    """+    original_path = Path(os.getcwd())+    current_path = original_path+    parent_path = current_path.parent+    while current_path.name != parent_path.name:+        marker_path = current_path / '.colcon'+        if marker_path.parent.is_dir() and marker_path.is_file():+            if current_path.name == original_path.name:+                return+            raise RuntimeError(+                "'{original_path}' is not marked as the root directory. "+                "Please go to '{current_path}' for `colcon build`. "+                'If the current directory is intended to be the root '+                "workspace, please remove the '.colcon' file "+                "in '{current_path}'.".format_map(locals()))+        else:+            current_path = parent_path+            parent_path = current_path.parent++    marker_path = original_path / '.colcon'

A more expressive filename would be helpful to convey the semantic meaning of the marker file.

claireyywang

comment created time in 2 days

Pull request review commentcolcon/colcon-core

add check root dir

 def check_and_mark_install_layout(install_base, *, merge_install):     marker_path.write_text(this_install_layout + '\n')  +def check_and_mark_root_dir(this_build_tool='colcon'):+    """+    Check the marker file for root workspace.++    If marker file is found in parent directory, raise error;+    if it is found in current direcotry, continue to build.+    If no marker file found, create marker file.++    The marker filename is `.colcon`.++    :param str this_build_tool: The name of this build tool+    :raises RuntimeError: if marker file is found in parent directory+    """+    original_path = Path(os.getcwd())+    current_path = original_path+    parent_path = current_path.parent+    while current_path.name != parent_path.name:+        marker_path = current_path / '.colcon'+        if marker_path.parent.is_dir() and marker_path.is_file():+            if current_path.name == original_path.name:+                return+            raise RuntimeError(+                "'{original_path}' is not marked as the root directory. "+                "Please go to '{current_path}' for `colcon build`. "+                'If the current directory is intended to be the root '+                "workspace, please remove the '.colcon' file "+                "in '{current_path}'.".format_map(locals()))+        else:+            current_path = parent_path+            parent_path = current_path.parent

It would be good to restructure the logic to not have to duplicate this line before the loop.

claireyywang

comment created time in 2 days

Pull request review commentcolcon/colcon-core

add check root dir

 def check_and_mark_install_layout(install_base, *, merge_install):     marker_path.write_text(this_install_layout + '\n')  +def check_and_mark_root_dir(this_build_tool='colcon'):+    """+    Check the marker file for root workspace.++    If marker file is found in parent directory, raise error;+    if it is found in current direcotry, continue to build.+    If no marker file found, create marker file.++    The marker filename is `.colcon`.++    :param str this_build_tool: The name of this build tool+    :raises RuntimeError: if marker file is found in parent directory+    """+    original_path = Path(os.getcwd())

Wouldn't it be clearer (easier to test, and more reusable) if the function would have the start path as an argument rather then getting it internally from global state?

claireyywang

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentcolcon/colcon-core

add check root dir

 def check_and_mark_install_layout(install_base, *, merge_install):     marker_path.write_text(this_install_layout + '\n')  +def check_and_mark_root_dir(this_build_tool='colcon'):+    """+    Check the marker file for root workspace.++    If marker file is found in parent directory, raise error;+    if it is found in current direcotry, continue to build.+    If no marker file found, create marker file.++    The marker filename is `.colcon`.++    :param str this_build_tool: The name of this build tool+    :raises RuntimeError: if marker file is found in parent directory+    """+    original_path = Path(os.getcwd())+    current_path = original_path+    parent_path = current_path.parent+    while current_path.name != parent_path.name:

How can the equality of the names a criteria to abort the search? That could happen anywhere in the directory hierarchy.

claireyywang

comment created time in 2 days

Pull request review commentcolcon/colcon-core

add check root dir

 def check_and_mark_install_layout(install_base, *, merge_install):     marker_path.write_text(this_install_layout + '\n')  +def check_and_mark_root_dir(this_build_tool='colcon'):+    """+    Check the marker file for root workspace.++    If marker file is found in parent directory, raise error;+    if it is found in current direcotry, continue to build.+    If no marker file found, create marker file.++    The marker filename is `.colcon`.++    :param str this_build_tool: The name of this build tool+    :raises RuntimeError: if marker file is found in parent directory+    """+    original_path = Path(os.getcwd())+    current_path = original_path+    parent_path = current_path.parent+    while current_path.name != parent_path.name:+        marker_path = current_path / '.colcon'+        if marker_path.parent.is_dir() and marker_path.is_file():

marker_path.parent.is_dir() would always be true if the second part of the condition is true. A parent of a path (which is a file) must be a directory, no?

claireyywang

comment created time in 2 days

Pull request review commentcolcon/colcon-core

add check root dir

 def check_and_mark_install_layout(install_base, *, merge_install):     marker_path.write_text(this_install_layout + '\n')  +def check_and_mark_root_dir(this_build_tool='colcon'):+    """+    Check the marker file for root workspace.++    If marker file is found in parent directory, raise error;+    if it is found in current direcotry, continue to build.+    If no marker file found, create marker file.++    The marker filename is `.colcon`.++    :param str this_build_tool: The name of this build tool+    :raises RuntimeError: if marker file is found in parent directory+    """+    original_path = Path(os.getcwd())+    current_path = original_path+    parent_path = current_path.parent+    while current_path.name != parent_path.name:+        marker_path = current_path / '.colcon'+        if marker_path.parent.is_dir() and marker_path.is_file():+            if current_path.name == original_path.name:+                return+            raise RuntimeError(+                "'{original_path}' is not marked as the root directory. "+                "Please go to '{current_path}' for `colcon build`. "+                'If the current directory is intended to be the root '+                "workspace, please remove the '.colcon' file "+                "in '{current_path}'.".format_map(locals()))+        else:+            current_path = parent_path+            parent_path = current_path.parent++    marker_path = original_path / '.colcon'+    marker_path.write_text(this_build_tool + '\n')

Why is the build tool name (colcon) written into this marker file which already has colcon in its name?

claireyywang

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentros/ros_comm

Gracefully stop recording upon SIGTERM and SIGINT

 int main(int argc, char** argv) {     // Run the recorder     rosbag::Recorder recorder(opts);     int result = recorder.run();-    +

Nitpick: please revert unrelated white space change.

dabonnie

comment created time in 2 days

Pull request review commentros/ros_comm

Gracefully stop recording upon SIGTERM and SIGINT

+#!/usr/bin/env python+# Software License Agreement (BSD License)+#+# Copyright (c) 2008, Willow Garage, Inc.

It is fine to list Amazon for the copyright here. No need to credit Willow Garage here.

dabonnie

comment created time in 2 days

PullRequestReviewEvent
PullRequestReviewEvent

issue commentcolcon/colcon-core

Crash in _create_symlink on Windows

Please provide minimal reproducible steps.

rotu

comment created time in 2 days

pull request commentcolcon/colcon-core

add setuptools to setup_requires

Wouldn't this fail in the case of packaging into a Debian package since the targeted Ubuntu distros don't have a new enough version?

rotu

comment created time in 2 days

issue commentros2/ros2

colcon source build still makes packages within install directory for non-supported platforms

This has been addressed in the latest release of colcon-ros 0.3.20.

zmk5

comment created time in 2 days

created tagcolcon/colcon-ros

tag0.3.20

created time in 2 days

push eventcolcon/colcon-ros

Dirk Thomas

commit sha f397deb0b8a7119979bd5d837186a0af090a43c6

0.3.20

view details

push time in 2 days

more