Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop support for ROS 2 Iron #981

Merged
merged 2 commits into from
Dec 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ jobs:
# Test supported ROS 2 distributions
# https://docs.ros.org/en/rolling/Releases.html
# NOTE: Humble does not work on the `ros2` branch, so it is tested in its own branch.
- ros: iron
os: ubuntu-22.04
- ros: jazzy
os: ubuntu-24.04
- ros: rolling
Expand Down
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ rosbridge_suite
===============

[![ROS Humble version](https://img.shields.io/ros/v/humble/rosbridge_suite)](https://index.ros.org/p/rosbridge_suite/github-RobotWebTools-rosbridge_suite/#humble)
[![ROS Iron version](https://img.shields.io/ros/v/iron/rosbridge_suite)](https://index.ros.org/p/rosbridge_suite/github-RobotWebTools-rosbridge_suite/#iron)
[![ROS Jazzy version](https://img.shields.io/ros/v/jazzy/rosbridge_suite)](https://index.ros.org/p/rosbridge_suite/github-RobotWebTools-rosbridge_suite/#jazzy)
[![ROS Rolling version](https://img.shields.io/ros/v/rolling/rosbridge_suite)](https://index.ros.org/p/rosbridge_suite/github-RobotWebTools-rosbridge_suite/#rolling)

Expand Down Expand Up @@ -56,11 +55,10 @@ Releasing requires push access to [RobotWebTools/rosbridge_suite](https://github
3. Run `catkin_prepare_release --bump [major/minor/patch]` to bump versions in package.xml and push changes to origin.
4. Run bloom-release commands to create PRs to update rosdistro:
- `bloom-release --rosdistro humble rosbridge_suite`
- `bloom-release --rosdistro iron rosbridge_suite`
- `bloom-release --rosdistro jazzy rosbridge_suite`
- `bloom-release --rosdistro rolling rosbridge_suite`

Note that right now, the Humble release is tracked in the `humble` branch, while Iron and later are tracked in the `ros2` branch.
Note that right now, the Humble release is tracked in the `humble` branch, while Jazzy and later are tracked in the `ros2` branch.

Once the PRs are merged, packages will be available for each distro after the next sync.
Build/sync status can be viewed at: [humble](http://repo.ros2.org/status_page/ros_humble_default.html), [iron](http://repo.ros2.org/status_page/ros_iron_default.html), [jazzy](http://repo.ros2.org/status_page/ros_jazzy_default.html), and [rolling](http://repo.ros2.org/status_page/ros_rolling_default.html).
Build/sync status can be viewed at: [humble](http://repo.ros2.org/status_page/ros_humble_default.html), [jazzy](http://repo.ros2.org/status_page/ros_jazzy_default.html), and [rolling](http://repo.ros2.org/status_page/ros_rolling_default.html).
13 changes: 2 additions & 11 deletions rosbridge_library/test/capabilities/test_action_capabilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import rclpy
from action_msgs.msg import GoalStatus
from example_interfaces.action._fibonacci import Fibonacci_FeedbackMessage
from rclpy.executors import SingleThreadedExecutor
from rclpy.executors import MultiThreadedExecutor
from rclpy.node import Node
from rclpy.qos import DurabilityPolicy, QoSProfile, ReliabilityPolicy
from rosbridge_library.capabilities.action_feedback import ActionFeedback
Expand All @@ -25,7 +25,7 @@
class TestActionCapabilities(unittest.TestCase):
def setUp(self):
rclpy.init()
self.executor = SingleThreadedExecutor()
self.executor = MultiThreadedExecutor()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the reasoning behind this change?

Copy link
Contributor Author

@sea-bass sea-bass Dec 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tests that were previously skipped seem to have needed this. I was getting some flaky behavior without this for some reason.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have very bad experiences with the MultiThreadedExecutor, see ros2/rclpy#1223. So we need to make sure we use CycloneDDS to limit the issues. (Or keep using the SingleThreadedExecutor)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They work fine on my end with single threaded executor

Copy link
Contributor Author

@sea-bass sea-bass Dec 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright -- I've put it back into SingleThreaded EDIT: #981 (comment)

That rclpy is issue is very concerning! wow

self.node = Node("test_action_capabilities")
self.executor.add_node(self.node)

Expand Down Expand Up @@ -97,9 +97,6 @@ def test_advertise_action(self):
)
self.advertise.advertise_action(advertise_msg)

@unittest.skip(
reason="Currently fails in Iron due to https://github.com/ros2/rclpy/issues/1195. Unskip when Iron is EOL in Nov 2024."
)
def test_execute_advertised_action(self):
# Advertise the action
action_path = "/fibonacci_action_2"
Expand Down Expand Up @@ -205,9 +202,6 @@ def test_execute_advertised_action(self):
self.assertEqual(self.received_message["values"]["sequence"], [0, 1, 1, 2, 3, 5])
self.assertEqual(self.received_message["status"], GoalStatus.STATUS_SUCCEEDED)

@unittest.skip(
reason="Currently fails in due to https://github.com/ros2/rclpy/issues/1195, need to fix this"
)
def test_cancel_advertised_action(self):
# Advertise the action
action_path = "/fibonacci_action_3"
Expand Down Expand Up @@ -301,7 +295,6 @@ def test_cancel_advertised_action(self):
self.assertEqual(self.received_message["values"]["sequence"], [])
self.assertEqual(self.received_message["status"], GoalStatus.STATUS_CANCELED)

@unittest.skip("Currently raises an exception not catchable by unittest, need to fix this")
def test_unadvertise_action(self):
# Advertise the action
action_path = "/fibonacci_action_4"
Expand Down Expand Up @@ -346,8 +339,6 @@ def test_unadvertise_action(self):
self.assertTrue("id" in self.received_message)

# Now unadvertise the action
# TODO: This raises an exception, likely because of the following rclpy issue:
# https://github.com/ros2/rclpy/issues/1098
unadvertise_msg = loads(dumps({"op": "unadvertise_action", "action": action_path}))
self.received_message = None
self.unadvertise.unadvertise_action(unadvertise_msg)
Expand Down
Loading