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

example packages are already built in underlay workspaces #2892

Closed
ijnek opened this issue Jul 23, 2022 · 2 comments
Closed

example packages are already built in underlay workspaces #2892

ijnek opened this issue Jul 23, 2022 · 2 comments

Comments

@ijnek
Copy link
Contributor

ijnek commented Jul 23, 2022

Following, Using colcon to build packages tutorial, the colcon build --symlink-install command throws warnings because all ros2/examples packages are included in the ROS desktop installation. This can be confusing to a beginner:

[0.435s] WARNING:colcon.colcon_core.package_selection:Some selected packages are already built in one or more underlay workspaces:
	'examples_rclpy_minimal_action_client' is in: /opt/ros/rolling
	'examples_rclcpp_minimal_timer' is in: /opt/ros/rolling
	'examples_rclpy_minimal_subscriber' is in: /opt/ros/rolling
	'examples_rclpy_minimal_client' is in: /opt/ros/rolling
	'examples_rclpy_executors' is in: /opt/ros/rolling
	'examples_rclcpp_multithreaded_executor' is in: /opt/ros/rolling
	'examples_rclpy_minimal_service' is in: /opt/ros/rolling
	'examples_rclcpp_minimal_composition' is in: /opt/ros/rolling
	'examples_rclcpp_minimal_client' is in: /opt/ros/rolling
	'examples_rclcpp_minimal_publisher' is in: /opt/ros/rolling
	'examples_rclcpp_minimal_service' is in: /opt/ros/rolling
	'examples_rclpy_minimal_publisher' is in: /opt/ros/rolling
	'examples_rclpy_minimal_action_server' is in: /opt/ros/rolling
	'examples_rclcpp_minimal_action_server' is in: /opt/ros/rolling
	'examples_rclcpp_minimal_action_client' is in: /opt/ros/rolling
	'examples_rclcpp_minimal_subscriber' is in: /opt/ros/rolling
If a package in a merged underlay workspace is overridden and it installs headers, then all packages in the overlay must sort their include directories by workspace order. Failure to do so may result in build failures or undefined behavior at run time.
If the overridden package is used by another package in any underlay, then the overriding package in the overlay must be API and ABI compatible or undefined behavior at run time may occur.

If you understand the risks and want to override a package anyways, add the following to the command line:
	--allow-overriding examples_rclcpp_minimal_action_client examples_rclcpp_minimal_action_server examples_rclcpp_minimal_client examples_rclcpp_minimal_composition examples_rclcpp_minimal_publisher examples_rclcpp_minimal_service examples_rclcpp_minimal_subscriber examples_rclcpp_minimal_timer examples_rclcpp_multithreaded_executor examples_rclpy_executors examples_rclpy_minimal_action_client examples_rclpy_minimal_action_server examples_rclpy_minimal_client examples_rclpy_minimal_publisher examples_rclpy_minimal_service examples_rclpy_minimal_subscriber

This may be promoted to an error in a future release of colcon-override-check.

I suggest we modify the tutorial to build a package that is not included in the ROS desktop installation.

@ijnek
Copy link
Contributor Author

ijnek commented Oct 29, 2022

Closing, as this issue has been resolved by changing colcon-override-check from a required to recommended dependency in colcon/colcon-common-extensions#15.

@ijnek ijnek closed this as completed Oct 29, 2022
@navdotnetreqs
Copy link

This should have been fixed by also changing the tutorial, imo. Just ran into this w/ iron.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants