Skip to content
Open
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
10 changes: 10 additions & 0 deletions .github/workflows/testpr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ jobs:
with:
frozen: true

- name: Disable git auto-maintenance in source caches
shell: bash -l {0}
run: |
git config --global maintenance.auto false

- name: Long paths workarounds for win-64
shell: bash -l {0}
if: matrix.platform == 'win-64'
Expand Down Expand Up @@ -87,6 +92,11 @@ jobs:
rm -rf /c/Strawberry
rm -rf "/c/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/"

- name: Disable git auto-maintenance in source caches
shell: bash -l {0}
run: |
git config --global maintenance.auto false

- name: Generate recipes
shell: bash -l {0}
run: |
Expand Down
8 changes: 8 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,14 @@ Rules:
- Run parallel lanes only for packages that do not depend on each other.
- If unsure, serialize the builds.

## Cross-distribution sync

- Work from the clean checked-out heads of rolling, lyrical, kilted, jazzy, and humble; create `codex/cross-distro-sync` in each repo and never merge their independent histories.
- Classify every candidate before editing: portable shared tooling/CI/metadata, conditional package fix requiring a compatible source and refreshed patch, or excluded distro-owned state.
- Keep rosdistro snapshots, mutex/build numbers, ABI/compiler/Python pins, channels/upload targets, package selection, generated recipes, and temporary rebuild controls distro-owned.
- Port patches only for an existing compatible package, using `patch/ros-$DISTRO-<pkg>.patch` and matching recipe wiring; do not copy a patch solely because its filename exists elsewhere.
- Validate changed patch metadata with `pixi run check-patches` and each changed package with `pixi run build-one ros-$DISTRO-<pkg>`; inspect final diffs for protected state.

## Inspect a built conda package

```bash
Expand Down
2 changes: 1 addition & 1 deletion build_gap_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ def main() -> int:
print()
missing = recipes - built
print(
f"Recipe directories without built artifact on this platform: "
f"Recipe directories without built artifact on {platform} platform: "
f"{len(missing)} out of {len(recipes)}"
)
if missing:
Expand Down
8 changes: 4 additions & 4 deletions check_patches_clean_apply.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
-----

# From repository root
python .scripts/check_patches_clean_apply.py # prepare + run
python .scripts/check_patches_clean_apply.py --dry # prepare only
python .scripts/check_patches_clean_apply.py --dry --recipe ros-rolling-rviz2
python .scripts/check_patches_clean_apply.py --clean # delete output
python check_patches_clean_apply.py # prepare + run
python check_patches_clean_apply.py --dry # prepare only
python check_patches_clean_apply.py --dry --recipe ros-rolling-rviz2
python check_patches_clean_apply.py --clean # delete output

The script creates (or refreshes) a sibling folder named
*recipes_only_patch*. Every recipe that declares *patches:* gets a
Expand Down
7 changes: 7 additions & 0 deletions patch/dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -294,3 +294,10 @@ rqt_mocap4r2_control:
remove_run: ["qt-main"]
zstd_point_cloud_transport:
add_host: ["ros-rolling-zstd-cmake-module", "zstd"]
mujoco_vendor:
add_host: ["libmujoco"]
roboplan_ros_examples:
# package.xml only declares ament_cmake_python, but CMakeLists.txt does
# find_package(ament_cmake REQUIRED) and build_type is ament_cmake.
# Fixed for roboplan_ros 0.7.0, so it can be removed when this releases.
add_host: ["ros-rolling-ament-cmake"]
80 changes: 7 additions & 73 deletions patch/ros-rolling-async-web-server-cpp.patch
Original file line number Diff line number Diff line change
@@ -1,51 +1,24 @@
diff --git a/include/async_web_server_cpp/http_connection.hpp b/include/async_web_server_cpp/http_connection.hpp
index 62ccd89..646359e 100644
--- a/include/async_web_server_cpp/http_connection.hpp
+++ b/include/async_web_server_cpp/http_connection.hpp
@@ -40,7 +40,7 @@ public:
ReadHandler;
typedef std::shared_ptr<const void> ResourcePtr;

- explicit HttpConnection(boost::asio::io_service& io_service,
+ explicit HttpConnection(boost::asio::io_context& io_context,
HttpServerRequestHandler request_handler);

boost::asio::ip::tcp::socket& socket();
@@ -79,7 +79,7 @@ private:
void handle_write(const boost::system::error_code& e,
std::vector<ResourcePtr> resources);

- boost::asio::io_service::strand strand_;
- boost::asio::io_context::strand strand_;
+ boost::asio::strand<boost::asio::io_context::executor_type> strand_;
boost::asio::ip::tcp::socket socket_;
HttpServerRequestHandler request_handler_;
boost::array<char, 8192> buffer_;
diff --git a/include/async_web_server_cpp/http_server.hpp b/include/async_web_server_cpp/http_server.hpp
index f772f55..ee99c72 100644
--- a/include/async_web_server_cpp/http_server.hpp
+++ b/include/async_web_server_cpp/http_server.hpp
@@ -40,7 +40,7 @@ private:

void handle_accept(const boost::system::error_code& e);

- boost::asio::io_service io_service_;
+ boost::asio::io_context io_context_;
boost::asio::ip::tcp::acceptor acceptor_;
std::size_t thread_pool_size_;
std::vector<boost::shared_ptr<boost::thread>> threads_;
diff --git a/src/http_connection.cpp b/src/http_connection.cpp
index bcb77d4..17a02ad 100644
--- a/src/http_connection.cpp
+++ b/src/http_connection.cpp
@@ -6,9 +6,9 @@
namespace async_web_server_cpp
{
@@ -8,7 +8,7 @@ namespace async_web_server_cpp

-HttpConnection::HttpConnection(boost::asio::io_service& io_service,
+HttpConnection::HttpConnection(boost::asio::io_context& io_context,
HttpConnection::HttpConnection(boost::asio::io_context& io_service,
HttpServerRequestHandler handler)
- : strand_(io_service), socket_(io_service), request_handler_(handler),
+ : strand_(io_context.get_executor()), socket_(io_context), request_handler_(handler),
+ : strand_(io_service.get_executor()), socket_(io_service), request_handler_(handler),
write_in_progress_(false)
{
}
Expand All @@ -60,50 +33,11 @@ index bcb77d4..17a02ad 100644
callback, boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred)));
diff --git a/src/http_server.cpp b/src/http_server.cpp
index 2c1c4ea..502cf4b 100644
--- a/src/http_server.cpp
+++ b/src/http_server.cpp
@@ -8,14 +8,12 @@ namespace async_web_server_cpp
HttpServer::HttpServer(const std::string& address, const std::string& port,
HttpServerRequestHandler request_handler,
std::size_t thread_pool_size)
- : acceptor_(io_service_), thread_pool_size_(thread_pool_size),
+ : acceptor_(io_context_), thread_pool_size_(thread_pool_size),
request_handler_(request_handler)
{
@@ -13,7 +13,7 @@ HttpServer::HttpServer(const std::string& address, const std::string& port,

- boost::asio::ip::tcp::resolver resolver(io_service_);
- boost::asio::ip::tcp::resolver::query query(
- address, port, boost::asio::ip::resolver_query_base::flags());
- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(query);
+ boost::asio::ip::tcp::resolver resolver(io_context_);
boost::asio::ip::tcp::resolver resolver(io_service_);
- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(address, port).begin();
+ boost::asio::ip::tcp::endpoint endpoint = resolver.resolve(address, port).begin()->endpoint();
acceptor_.open(endpoint.protocol());
acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
acceptor_.bind(endpoint);
@@ -33,14 +31,14 @@ void HttpServer::run()
for (std::size_t i = 0; i < thread_pool_size_; ++i)
{
boost::shared_ptr<boost::thread> thread(new boost::thread(
- boost::bind(&boost::asio::io_service::run, &io_service_)));
+ boost::bind(&boost::asio::io_context::run, &io_context_)));
threads_.push_back(thread);
}
}

void HttpServer::start_accept()
{
- new_connection_.reset(new HttpConnection(io_service_, request_handler_));
+ new_connection_.reset(new HttpConnection(io_context_, request_handler_));
acceptor_.async_accept(new_connection_->socket(),
boost::bind(&HttpServer::handle_accept, this,
boost::asio::placeholders::error));
@@ -62,7 +60,7 @@ void HttpServer::stop()
acceptor_.cancel();
acceptor_.close();
}
- io_service_.stop();
+ io_context_.stop();
// Wait for all threads in the pool to exit.
for (std::size_t i = 0; i < threads_.size(); ++i)
threads_[i]->join();
33 changes: 7 additions & 26 deletions patch/ros-rolling-ouster-ros.patch
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5764b78..13249cc 100644
index ed34a38..93ee3fc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -83,8 +83,18 @@ set(ouster_ros_library_deps
@@ -97,8 +97,18 @@ set(ouster_ros_library_deps
tf2_eigen
)

Expand All @@ -23,7 +23,7 @@ index 5764b78..13249cc 100644
)

target_link_libraries(ouster_ros_library
@@ -111,14 +121,14 @@ function(create_ros2_component
@@ -125,14 +135,14 @@ function(create_ros2_component
"OUSTER_ROS_BUILDING_DLL"
)

Expand All @@ -46,7 +46,7 @@ index 5764b78..13249cc 100644
${additional_dependencies}
)

@@ -132,7 +142,7 @@ endfunction()
@@ -146,7 +156,7 @@ endfunction()
# ==== os_sensor_component ====
create_ros2_component(os_sensor_component
"src/os_sensor_node_base.cpp;src/os_sensor_node.cpp"
Expand All @@ -55,7 +55,7 @@ index 5764b78..13249cc 100644
)
rclcpp_components_register_node(os_sensor_component
PLUGIN "ouster_ros::OusterSensor"
@@ -152,7 +162,7 @@ rclcpp_components_register_node(os_replay_component
@@ -166,7 +176,7 @@ rclcpp_components_register_node(os_replay_component
# ==== os_cloud_component ====
create_ros2_component(os_cloud_component
"src/os_processing_node_base.cpp;src/os_cloud_node.cpp"
Expand All @@ -64,7 +64,7 @@ index 5764b78..13249cc 100644
)
rclcpp_components_register_node(os_cloud_component
PLUGIN "ouster_ros::OusterCloud"
@@ -172,7 +182,7 @@ rclcpp_components_register_node(os_image_component
@@ -186,7 +196,7 @@ rclcpp_components_register_node(os_image_component
# ==== os_driver_component ====
create_ros2_component(os_driver_component
"src/os_sensor_node_base.cpp;src/os_sensor_node.cpp;src/os_driver_node.cpp"
Expand All @@ -73,7 +73,7 @@ index 5764b78..13249cc 100644
)
rclcpp_components_register_node(os_driver_component
PLUGIN "ouster_ros::OusterDriver"
@@ -203,9 +213,9 @@ if(BUILD_TESTING)
@@ -217,9 +227,9 @@ if(BUILD_TESTING)
test/point_transform_test.cpp
test/point_cloud_compose_test.cpp
)
Expand Down Expand Up @@ -107,25 +107,6 @@ index 7867e3a..6994f3d 100644
namespace ouster {
namespace sdk {
namespace core {
diff --git a/src/os_sensor_node.cpp b/src/os_sensor_node.cpp
index 8a73c8c..ea3efaf 100644
--- a/src/os_sensor_node.cpp
+++ b/src/os_sensor_node.cpp
@@ -1028,12 +1028,12 @@ void OusterSensor::stop_sensor_connection_thread() {
}

void OusterSensor::on_lidar_packet_msg(const LidarPacket&) {
- lidar_packet_msg.buf.swap(lidar_packet.buf);
+ static_cast<std::vector<uint8_t>&>(lidar_packet_msg.buf).swap(lidar_packet.buf);
lidar_packet_pub->publish(lidar_packet_msg);
}

void OusterSensor::on_imu_packet_msg(const ImuPacket&) {
- imu_packet_msg.buf.swap(imu_packet.buf);
+ static_cast<std::vector<uint8_t>&>(imu_packet_msg.buf).swap(imu_packet.buf);
imu_packet_pub->publish(imu_packet_msg);
}

diff --git a/src/os_static_transforms_broadcaster.h b/src/os_static_transforms_broadcaster.h
index 94d50eb..b1e05ce 100644
--- a/src/os_static_transforms_broadcaster.h
Expand Down
42 changes: 39 additions & 3 deletions pkg_additional_info.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ coal:
generate_dummy_package_with_run_deps:
dep_name: coal
max_pin: 'x.x.x'
override_version: '3.0.3'
override_version: '3.0.4'
compressed_depth_image_transport:
additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON"
console_bridge_vendor:
Expand Down Expand Up @@ -143,16 +143,48 @@ pinocchio:
dep_name: pinocchio
max_pin: 'x.x.x'
# the version on ros is outdated w.r.t. to the conda-forge one
override_version: '4.0.0'
override_version: '4.1.0'
proxsuite:
generate_dummy_package_with_run_deps:
dep_name: proxsuite
max_pin: 'x.x'
override_version: '0.7.2'
override_version: '0.7.3'
pybind11_json_vendor:
additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR"
pybind11_vendor:
additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR"
roboplan:
generate_dummy_package_with_run_deps:
dep_name: roboplan-python
max_pin: 'x.x'
roboplan-oink:
generate_dummy_package_with_run_deps:
dep_name: roboplan-oink-python
max_pin: 'x.x'
roboplan_cartesian_planning:
generate_dummy_package_with_run_deps:
dep_name: roboplan-cartesian-planning-python
max_pin: 'x.x'
roboplan_example_models:
generate_dummy_package_with_run_deps:
dep_name: roboplan-example-models-python
max_pin: 'x.x'
roboplan_examples:
generate_dummy_package_with_run_deps:
dep_name: roboplan-examples-python
max_pin: 'x.x'
roboplan_rrt:
generate_dummy_package_with_run_deps:
dep_name: roboplan-rrt-python
max_pin: 'x.x'
roboplan_simple_ik:
generate_dummy_package_with_run_deps:
dep_name: roboplan-simple-ik-python
max_pin: 'x.x'
roboplan_toppra:
generate_dummy_package_with_run_deps:
dep_name: roboplan-toppra-python
max_pin: 'x.x'
robot_state_publisher:
additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON"
rosx_introspection:
Expand All @@ -165,6 +197,10 @@ spdlog_vendor:
additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR_IGNORE_SATISFIED_CHECK"
sqlite3_vendor:
additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR_IGNORE_SATISFIED_CHECK"
toppra:
generate_dummy_package_with_run_deps:
dep_name: toppra-python
max_pin: 'x.x'
ublox_gps:
additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON"
uncrustify_vendor:
Expand Down
2 changes: 2 additions & 0 deletions robostack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -668,6 +668,8 @@ msgpack:
robostack: [msgpack-python]
muparser:
robostack: [muparser]
nanobind-dev:
robostack: [nanobind]
netpbm:
robostack:
linux-aarch64: []
Expand Down
20 changes: 20 additions & 0 deletions rosdistro_additional_recipes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,26 @@ mocap4r2_robot_gt_msgs:
url: https://github.com/MOCAP4ROS2-Project/mocap4r2.git
version: 0.0.7
additional_folder: mocap4r2_robot_gt/mocap4r2_robot_gt_msgs
roboplan_ros_cpp:
tag: release/rolling/roboplan_ros_cpp/0.6.1-1
url: https://github.com/ros2-gbp/roboplan_ros-release.git
version: 0.6.1
roboplan_ros_examples:
tag: release/rolling/roboplan_ros_examples/0.6.1-1
url: https://github.com/ros2-gbp/roboplan_ros-release.git
version: 0.6.1
roboplan_ros_franka:
tag: release/rolling/roboplan_ros_franka/0.6.1-1
url: https://github.com/ros2-gbp/roboplan_ros-release.git
version: 0.6.1
roboplan_ros_py:
tag: release/rolling/roboplan_ros_py/0.6.1-1
url: https://github.com/ros2-gbp/roboplan_ros-release.git
version: 0.6.1
roboplan_ros_visualization:
tag: release/rolling/roboplan_ros_visualization/0.6.1-1
url: https://github.com/ros2-gbp/roboplan_ros-release.git
version: 0.6.1
rqt_mocap4r2_control:
tag: 0.0.7
url: https://github.com/MOCAP4ROS2-Project/mocap4r2.git
Expand Down
Loading
Loading