diff --git a/.github/workflows/ci_ros2.yml b/.github/workflows/ci_ros2.yml new file mode 100644 index 0000000..7e109ca --- /dev/null +++ b/.github/workflows/ci_ros2.yml @@ -0,0 +1,39 @@ +name: ROS2 Continuous Integration +on: + push: + branches: + - devel + - main + pull_request: +jobs: + build: + strategy: + matrix: + env: + - {ROS_DISTRO: rolling} + env: + UPSTREAM_WORKSPACE: | + github:gepetto/example-robot-data#devel + github:humanoid-path-planner/hpp-constraints#devel + github:humanoid-path-planner/hpp-core#devel + github:humanoid-path-planner/hpp-environments#devel + github:humanoid-path-planner/hpp-manipulation#devel + github:humanoid-path-planner/hpp-manipulation-urdf#devel + github:humanoid-path-planner/hpp-pinocchio#devel + github:humanoid-path-planner/hpp-statistics#devel + github:humanoid-path-planner/hpp-util#devel + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: 'ros-industrial/industrial_ci@125164b9f1883cdf1858897a7146d1bebf2be5c6' + env: ${{ matrix.env }} + check: + if: always() + name: check-ros-ci + runs-on: ubuntu-latest + needs: + - build + steps: + - uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} diff --git a/.mergify.yml b/.mergify.yml index 8ece7ea..05d1b10 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -2,6 +2,7 @@ pull_request_rules: - name: merge [bot] PRs when CI pass conditions: - check-success = "check-macos-linux-nix" + - check-success = "check-ros-ci" - check-success = "pre-commit.ci - pr" - or: - author = dependabot[bot] diff --git a/CMakeLists.txt b/CMakeLists.txt index 43cc56a..6ccd722 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,6 +104,7 @@ set(${PROJECT_NAME}_HEADERS ) set(PYTHON_COMPONENTS Interpreter Development NumPy) +findpython() add_project_dependency(hpp-util REQUIRED) add_project_dependency(hpp-pinocchio REQUIRED) @@ -113,7 +114,6 @@ add_project_dependency(hpp-manipulation REQUIRED) add_project_dependency(hpp-manipulation-urdf REQUIRED) add_project_dependency(eigenpy REQUIRED) add_project_dependency(pinocchio REQUIRED) -findpython() search_for_boost_python() if(BUILD_TESTING) diff --git a/doc/configure.py b/doc/configure.py index 0b7d998..c7da085 100755 --- a/doc/configure.py +++ b/doc/configure.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2018 CNRS # Authors: Joseph Mirabel diff --git a/flake.lock b/flake.lock index 33e088f..df31944 100644 --- a/flake.lock +++ b/flake.lock @@ -97,11 +97,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1780737291, - "narHash": "sha256-X/NV78229FRopX6lqV2r/e0zS602Gp0kmUyp4lA/3iI=", + "lastModified": 1781324212, + "narHash": "sha256-lqIEMqeuJ450S7JdWTo8JjF3YlahGNR2FCz/AlA9ZhM=", "owner": "gepetto", "repo": "flakoboros", - "rev": "325b46e60bf77a5b10929d94381430a390ec4843", + "rev": "78aa318051a5345d82931df66c5c8d0844edcb2a", "type": "github" }, "original": { @@ -148,11 +148,11 @@ "uv2nix": "uv2nix" }, "locked": { - "lastModified": 1780851304, - "narHash": "sha256-J9gvQIWdUFcBOwP0/2BnLkRIx+htvgd5F8SNROltZTM=", + "lastModified": 1781856266, + "narHash": "sha256-rwgV7jx1K2ZQ9FIGhyIZ+jBfBAtOnigjUeRPJMxJ4YM=", "owner": "gepetto", "repo": "gazebros2nix", - "rev": "8d51270e902f551389a69aea2e060eb9394645f5", + "rev": "812b80b2f74016a8e108543020e5533d8fd2f070", "type": "github" }, "original": { @@ -199,11 +199,11 @@ ] }, "locked": { - "lastModified": 1781178493, - "narHash": "sha256-XSOrR8ik3OOB0jsMkHu2TpsLfhm+GIhKSKdeWYrWDmQ=", + "lastModified": 1781880640, + "narHash": "sha256-HWFeAGxxxBaZeL39ZcVcRTu8AWV4yPGQoCBsghZWceY=", "owner": "gepetto", "repo": "nix", - "rev": "e0bb6996b70713fcd1c8b4938c66d171771db50b", + "rev": "ea3664e2fd9ae29d2c5d7a4b1c87a7ab96686fc4", "type": "github" }, "original": { @@ -265,11 +265,11 @@ ] }, "locked": { - "lastModified": 1780497056, - "narHash": "sha256-1h0PsQ3B5TN2jrnnU+eBhO8stRoAz1fO36UNvvCocro=", + "lastModified": 1781895116, + "narHash": "sha256-qA8/hxMfQULCGEq0rBGJY+6+vWUl4Unti9S7JkXuWIc=", "owner": "humanoid-path-planner", "repo": "hpp-constraints", - "rev": "879a874506c7bdfb67aa57dc97961bc21d8ed9e8", + "rev": "4edad7b514e36110553c723a98256c73a356452f", "type": "github" }, "original": { @@ -285,11 +285,11 @@ ] }, "locked": { - "lastModified": 1780909024, - "narHash": "sha256-Zrx9rPEvSnuTO6owRdHwIJz/gmpCuzIieHxYFOqW8po=", + "lastModified": 1781898666, + "narHash": "sha256-hR+JOUIO0lQPzQXnLtAcMyJx4kdGy7QlxgpEk6LqqPA=", "owner": "humanoid-path-planner", "repo": "hpp-core", - "rev": "4a048056051b30cffe1425ba2bcb96996824af3b", + "rev": "d85bc67d2cbb2cae2bb5f01230dcd413104fbdb6", "type": "github" }, "original": { @@ -305,11 +305,11 @@ ] }, "locked": { - "lastModified": 1780876985, - "narHash": "sha256-p5OA7mjI/PzkP2otyysUtJBDnJ5Q0NtgpZqgPL8t9So=", + "lastModified": 1781899913, + "narHash": "sha256-V4bX9KCH1+XPwwAsmt3ys7KObO01hPSjBOERbX1fXoE=", "owner": "humanoid-path-planner", "repo": "hpp-manipulation", - "rev": "6eef2de4baeb5d8778f5d7eac61419ce196dedcf", + "rev": "7b1bf9bbeaab965125c9823baa2b7a32239e1be2", "type": "github" }, "original": { @@ -325,11 +325,11 @@ "rosdistro": "rosdistro" }, "locked": { - "lastModified": 1780736467, - "narHash": "sha256-Z+2rqsfRTsbt84tcmLBPawHekPU2yaEhsr/inJ2Vb5c=", + "lastModified": 1781297240, + "narHash": "sha256-OpYxlrSlcqJyknjgIuvv8dtEEbHuuZoe+fJzclrBgmg=", "owner": "lopsided98", "repo": "nix-ros-overlay", - "rev": "58ed8bba49e54700448cddd05c26fd3c743909e3", + "rev": "9e9b9a2953a195985e1e6c99e353fbb767380a2d", "type": "github" }, "original": { @@ -620,11 +620,11 @@ ] }, "locked": { - "lastModified": 1780418295, - "narHash": "sha256-yZVQNvmDx1SFjvlwevywsXWJnieSRqmQr7/fCTMyyd0=", + "lastModified": 1781249037, + "narHash": "sha256-Us5r9461lhAZ0cR4oTf7NQuNbp8ETFu0d683AF3mIPE=", "owner": "pyproject-nix", "repo": "uv2nix", - "rev": "0497ccef038da091002be7c05263a7f27820974f", + "rev": "ca656fb2cf1c2834e83413c7b2caa2b2d0c2b366", "type": "github" }, "original": { diff --git a/package.xml b/package.xml index cd0405d..32a61a7 100644 --- a/package.xml +++ b/package.xml @@ -1,37 +1,28 @@ - - hpp-python - 8.0.0 - Implement python bindings for HPP + + hpp_python + 8.0.0 + Implement python bindings for HPP + Joseph Mirabel + Florent Lamiraux + Guilhem Saurel + BSD-2-Clause - Joseph Mirabel - BSD + eigenpy + pinocchio + hpp_util + hpp_pinocchio + hpp_constraints + hpp_core + hpp_manipulation + hpp_manipulation_urdf - Joseph Mirabel - Florent Lamiraux + cmake + doxygen + jrl_cmakemodules + python3-lxml - eigenpy - eigenpy - eigenpy - pinocchio - pinocchio - pinocchio - hpp-util - hpp-util - hpp-util - hpp-pinocchio - hpp-pinocchio - hpp-pinocchio - hpp-constraints - hpp-constraints - hpp-constraints - hpp-core - hpp-core - hpp-core - hpp-manipulation - hpp-manipulation - hpp-manipulation - hpp-manipulation-urdf - hpp-manipulation-urdf - hpp-manipulation-urdf - + + cmake + + diff --git a/src/pyhpp/core/static_stability_constraint_factory.py b/src/pyhpp/core/static_stability_constraint_factory.py index 8141305..f97a6b5 100644 --- a/src/pyhpp/core/static_stability_constraint_factory.py +++ b/src/pyhpp/core/static_stability_constraint_factory.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/src/pyhpp/manipulation/constraint_graph_factory.py b/src/pyhpp/manipulation/constraint_graph_factory.py index 1e537db..14ca630 100644 --- a/src/pyhpp/manipulation/constraint_graph_factory.py +++ b/src/pyhpp/manipulation/constraint_graph_factory.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/src/pyhpp/manipulation/security_margins.py b/src/pyhpp/manipulation/security_margins.py index 8fcc22e..8f5227f 100644 --- a/src/pyhpp/manipulation/security_margins.py +++ b/src/pyhpp/manipulation/security_margins.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2020 CNRS, Airbus SAS # Author: Florent Lamiraux diff --git a/src/pyhpp/pinocchio/utils.py b/src/pyhpp/pinocchio/utils.py index e90b7eb..4d2d86b 100644 --- a/src/pyhpp/pinocchio/utils.py +++ b/src/pyhpp/pinocchio/utils.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Florent Lamiraux diff --git a/tests/integration/benchmark_utils.py b/tests/integration/benchmark_utils.py index 670b45c..51d5c44 100644 --- a/tests/integration/benchmark_utils.py +++ b/tests/integration/benchmark_utils.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/integration/construction-set-m-rrt.py b/tests/integration/construction-set-m-rrt.py index c2f55b6..ecf9f5d 100644 --- a/tests/integration/construction-set-m-rrt.py +++ b/tests/integration/construction-set-m-rrt.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 from math import pi, sqrt import numpy as np diff --git a/tests/integration/pr2-in-iai-kitchen.py b/tests/integration/pr2-in-iai-kitchen.py index 9897b49..d52df8d 100644 --- a/tests/integration/pr2-in-iai-kitchen.py +++ b/tests/integration/pr2-in-iai-kitchen.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import numpy as np diff --git a/tests/integration/romeo-placard.py b/tests/integration/romeo-placard.py index cc481f7..1a091cb 100644 --- a/tests/integration/romeo-placard.py +++ b/tests/integration/romeo-placard.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import numpy as np diff --git a/tests/integration/ur3-spheres-spf.py b/tests/integration/ur3-spheres-spf.py index 1df2220..d663795 100644 --- a/tests/integration/ur3-spheres-spf.py +++ b/tests/integration/ur3-spheres-spf.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright 2020 CNRS # diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py index 293535c..26cbcfa 100644 --- a/tests/unit/conftest.py +++ b/tests/unit/conftest.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_configuration_shooter.py b/tests/unit/test_configuration_shooter.py index fdfd4cf..8a0029a 100644 --- a/tests/unit/test_configuration_shooter.py +++ b/tests/unit/test_configuration_shooter.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_constraint_factory.py b/tests/unit/test_constraint_factory.py index 420805f..375f4c1 100644 --- a/tests/unit/test_constraint_factory.py +++ b/tests/unit/test_constraint_factory.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_constraint_graph_factory.py b/tests/unit/test_constraint_graph_factory.py index 456f1af..6d4efed 100644 --- a/tests/unit/test_constraint_graph_factory.py +++ b/tests/unit/test_constraint_graph_factory.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_device.py b/tests/unit/test_device.py index d823798..d255daa 100644 --- a/tests/unit/test_device.py +++ b/tests/unit/test_device.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_differentiable_function.py b/tests/unit/test_differentiable_function.py index 6259ca4..65b03cc 100644 --- a/tests/unit/test_differentiable_function.py +++ b/tests/unit/test_differentiable_function.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_handles_grippers.py b/tests/unit/test_handles_grippers.py index c1e2073..7754e85 100644 --- a/tests/unit/test_handles_grippers.py +++ b/tests/unit/test_handles_grippers.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_liegroup.py b/tests/unit/test_liegroup.py index 2e8821c..bd8135b 100644 --- a/tests/unit/test_liegroup.py +++ b/tests/unit/test_liegroup.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_path.py b/tests/unit/test_path.py index 5e48831..f1fa399 100644 --- a/tests/unit/test_path.py +++ b/tests/unit/test_path.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_path_optimizer.py b/tests/unit/test_path_optimizer.py index 51b52db..3bd470b 100644 --- a/tests/unit/test_path_optimizer.py +++ b/tests/unit/test_path_optimizer.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_path_planner.py b/tests/unit/test_path_planner.py index 5acc1fe..fe34ff5 100644 --- a/tests/unit/test_path_planner.py +++ b/tests/unit/test_path_planner.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_path_projector.py b/tests/unit/test_path_projector.py index d92d1ce..3e16997 100644 --- a/tests/unit/test_path_projector.py +++ b/tests/unit/test_path_projector.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_path_validation.py b/tests/unit/test_path_validation.py index e0bfa71..4be7d43 100644 --- a/tests/unit/test_path_validation.py +++ b/tests/unit/test_path_validation.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_position_constraint.py b/tests/unit/test_position_constraint.py index 2d9d020..3800ed3 100644 --- a/tests/unit/test_position_constraint.py +++ b/tests/unit/test_position_constraint.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_problem.py b/tests/unit/test_problem.py index a56d316..8c71377 100644 --- a/tests/unit/test_problem.py +++ b/tests/unit/test_problem.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_roadmap.py b/tests/unit/test_roadmap.py index 444075f..9f5a596 100644 --- a/tests/unit/test_roadmap.py +++ b/tests/unit/test_roadmap.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_security_margins.py b/tests/unit/test_security_margins.py index 77948c8..92c4fd7 100644 --- a/tests/unit/test_security_margins.py +++ b/tests/unit/test_security_margins.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_static_stability.py b/tests/unit/test_static_stability.py index babde7d..d777dd4 100644 --- a/tests/unit/test_static_stability.py +++ b/tests/unit/test_static_stability.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin diff --git a/tests/unit/test_steering_method.py b/tests/unit/test_steering_method.py index 0842c35..ac396c9 100644 --- a/tests/unit/test_steering_method.py +++ b/tests/unit/test_steering_method.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2025 CNRS # Author: Paul Sardin