From c1138d2124ce53b93556255f1729655dc2d228be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Thu, 8 Aug 2024 18:21:24 +0200 Subject: [PATCH 01/13] WIP: Test MJCF descriptions with Pinocchio --- tests/loaders/test_pinocchio.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/tests/loaders/test_pinocchio.py b/tests/loaders/test_pinocchio.py index 84ae5808..d86d7f31 100644 --- a/tests/loaders/test_pinocchio.py +++ b/tests/loaders/test_pinocchio.py @@ -11,7 +11,6 @@ class TestPinocchio(unittest.TestCase): - """ Check that all descriptions are loaded properly in Pinocchio. """ @@ -34,11 +33,10 @@ def test(self): return test -# Add a test function for each URDF description +# Add a test function for each description for name, description in DESCRIPTIONS.items(): - if description.has_urdf: - setattr( - TestPinocchio, - f"test_{name}", - TestPinocchio.get_test_for_description(name), - ) + setattr( + TestPinocchio, + f"test_{name}", + TestPinocchio.get_test_for_description(name), + ) From 6d572a1ef66fd8efd5da7cf343ee34963b7aa387 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Thu, 8 Aug 2024 18:21:49 +0200 Subject: [PATCH 02/13] Add --failfast option when running unit tests --- tox.ini | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tox.ini b/tox.ini index 4685405a..b8b9e097 100644 --- a/tox.ini +++ b/tox.ini @@ -21,7 +21,7 @@ deps = yourdfpy >=0.0.56 commands = coverage erase - coverage run -m unittest tests + coverage run -m unittest tests --failfast coverage report --include="robot_descriptions/**" [testenv:lint] @@ -50,21 +50,21 @@ changedir = {toxinidir}/tests/loaders deps = idyntree >= 8.0.0 commands = - python -m unittest test_idyntree.py + python -m unittest test_idyntree.py --failfast [testenv:loader-mujoco] changedir = {toxinidir}/tests/loaders deps = mujoco >=2.3.5 commands = - python -m unittest test_mujoco.py + python -m unittest test_mujoco.py --failfast [testenv:loader-pinocchio] changedir = {toxinidir}/tests/loaders deps = pin >=2.6.14 commands = - python -m unittest test_pinocchio.py + python -m unittest test_pinocchio.py --failfast [testenv:loader-pybullet] changedir = {toxinidir}/tests/loaders @@ -72,7 +72,7 @@ deps = numpy >=1.23.4,<2 pybullet >=3.2.5 commands = - python -m unittest test_pybullet.py + python -m unittest test_pybullet.py --failfast [testenv:loader-robomeshcat] changedir = {toxinidir}/tests/loaders @@ -80,7 +80,7 @@ deps = pycollada >=0.6 robomeshcat >= 1.0.4 commands = - python -m unittest test_robomeshcat.py + python -m unittest test_robomeshcat.py --failfast [testenv:loader-yourdfpy] changedir = {toxinidir}/tests/loaders @@ -89,7 +89,7 @@ deps = numpy >=1.23.4,<2 yourdfpy >=0.0.56 commands = - python -m unittest test_yourdfpy.py + python -m unittest test_yourdfpy.py --failfast [pylint] generated-members=mujoco.MjModel, pin.JointModelFreeFlyer, pin.JointModelPX, pin.JointModelPY, pin.JointModelPZ, pin.JointModelPlanar, pin.JointModelRX, pin.JointModelRY, pin.JointModelRZ, pin.JointModelSpherical, pin.JointModelSphericalZYX, pin.JointModelTranslation, pin.Model, pybullet.loadURDF, pybullet.setAdditionalSearchPath From c85cb999a9e01e1500ab5bf36ed3642c1728c604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Thu, 8 Aug 2024 18:26:58 +0200 Subject: [PATCH 03/13] WIP: Bump Pinocchio version to 3.1.0 --- pyproject.toml | 2 +- tox.ini | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b9dbf939..24bb4bb1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ keywords = ["robot", "description", "urdf", "mjcf"] opts = [ "idyntree >= 8.0.0", "mujoco >=3.2.0", - "pin >=2.6.10", + "pin >= 3.1.0", "pybullet >=3.2.6", "robomeshcat >=1.0.4", "yourdfpy >=0.0.56", diff --git a/tox.ini b/tox.ini index b8b9e097..2295a620 100644 --- a/tox.ini +++ b/tox.ini @@ -15,7 +15,7 @@ deps = idyntree >= 8.0.0 mujoco >=2.3.5 numpy >=1.23.4,<2 - pin >=2.6.14 + pin >= 3.1.0 pybullet >=3.2.5 robomeshcat >= 1.0.4 yourdfpy >=0.0.56 @@ -32,7 +32,7 @@ deps = mujoco >=2.3.5 mypy numpy >=1.23.4,<2 - pin >=2.6.14 + pin >= 3.1.0 pybullet >=3.2.5 pylint robomeshcat >= 1.0.4 @@ -62,7 +62,7 @@ commands = [testenv:loader-pinocchio] changedir = {toxinidir}/tests/loaders deps = - pin >=2.6.14 + pin >= 3.1.0 commands = python -m unittest test_pinocchio.py --failfast From 2a2809cec2b1060c701696adce7826815d900aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Fri, 8 Nov 2024 18:39:58 +0100 Subject: [PATCH 04/13] Use pinocchio from conda-forge rather than PyPI As of today, the Pinocchio version on PyPI is 2.7.0 while that on conda-forge is 3.3.0 --- .github/workflows/test.yml | 34 +++++++++++++++++++++++++++++++++- tox.ini | 7 ------- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bd33c1f6..a0a8985d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -66,7 +66,7 @@ jobs: fail-fast: false matrix: python-version: ["3.9"] - loader: ["idyntree", "mujoco", "pinocchio", "pybullet", "robomeshcat", "yourdfpy"] + loader: ["idyntree", "mujoco", "pybullet", "robomeshcat", "yourdfpy"] steps: - name: "Checkout sources" @@ -86,6 +86,38 @@ jobs: run: | tox -e loader-${{ matrix.loader }} + loader-pinocchio: + name: "Loader: pinocchio with Python ${{ matrix.python-version }}" + runs-on: ubuntu-latest + + strategy: + matrix: + python-version: ["3.9"] + + defaults: + run: + # See https://github.com/mamba-org/setup-micromamba?tab=readme-ov-file#about-login-shells + shell: bash -leo pipefail {0} + + steps: + - name: "Checkout sources" + uses: actions/checkout@v4 + + - name: "Install Conda environment with Micromamba" + uses: mamba-org/setup-micromamba@v1 + with: + micromamba-version: '1.5.8-0' + environment-name: pinocchio_test_env + create-args: >- + python=${{ matrix.python-version }} + pinocchio>=3.1.0 + cache-environment: true + post-cleanup: 'all' + + - name: "Run loader tests" + run: | + python -m unittest tests/loaders/test_pinocchio.py --failfast + ci_success: name: "CI success" runs-on: ubuntu-latest diff --git a/tox.ini b/tox.ini index 2295a620..3f22a372 100644 --- a/tox.ini +++ b/tox.ini @@ -59,13 +59,6 @@ deps = commands = python -m unittest test_mujoco.py --failfast -[testenv:loader-pinocchio] -changedir = {toxinidir}/tests/loaders -deps = - pin >= 3.1.0 -commands = - python -m unittest test_pinocchio.py --failfast - [testenv:loader-pybullet] changedir = {toxinidir}/tests/loaders deps = From 2b6e374e0b24f058fc52271528fbfeba8558080c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Mon, 10 Mar 2025 13:54:34 +0100 Subject: [PATCH 05/13] CICD: Correct conda-forge dependencies in Pinocchio loader test environment --- .github/workflows/test.yml | 2 ++ CHANGELOG.md | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a0a8985d..9ed64a4b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -110,7 +110,9 @@ jobs: environment-name: pinocchio_test_env create-args: >- python=${{ matrix.python-version }} + gitpython pinocchio>=3.1.0 + tqdm cache-environment: true post-cleanup: 'all' diff --git a/CHANGELOG.md b/CHANGELOG.md index ce948ab8..d1c67075 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -79,6 +79,10 @@ All notable changes to this project will be documented in this file. - Update `baxter_common` repository with a commit ID rather than a tag - Update `talos-data` repository with a commit ID rather than a tag +### Fixed + +- CICD: Correct conda-forge dependencies in Pinocchio loader test environment + ## [1.16.0] - 2025-04-09 ### Added From e169f4b652db638bb8cc684345eac0330f55d85e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Mon, 10 Mar 2025 13:55:43 +0100 Subject: [PATCH 06/13] Update the changelog --- CHANGELOG.md | 2 +- pyproject.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d1c67075..a60671c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -81,7 +81,7 @@ All notable changes to this project will be documented in this file. ### Fixed -- CICD: Correct conda-forge dependencies in Pinocchio loader test environment +- CICD: Switch to conda-forge dependencies in Pinocchio loader test environment ## [1.16.0] - 2025-04-09 diff --git a/pyproject.toml b/pyproject.toml index 24bb4bb1..f569fed1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,9 +33,9 @@ keywords = ["robot", "description", "urdf", "mjcf"] [project.optional-dependencies] opts = [ - "idyntree >= 8.0.0", + "idyntree >=8.0.0", "mujoco >=3.2.0", - "pin >= 3.1.0", + "pin >=3.1.0", "pybullet >=3.2.6", "robomeshcat >=1.0.4", "yourdfpy >=0.0.56", From 05685cfe5ea437cad88e70173aa346acff97180b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Mon, 10 Mar 2025 14:10:34 +0100 Subject: [PATCH 07/13] CICD: Isolate loader tests in submodules Merge remaining loader tests to the description test fixture. --- CHANGELOG.md | 1 + tests/__init__.py | 2 - tests/loaders/test_idyntree.py | 16 +++++- tests/loaders/test_mujoco.py | 10 +++- tests/loaders/test_pinocchio.py | 14 ++++- tests/loaders/test_pybullet.py | 20 +++++-- tests/loaders/test_robomeshcat.py | 15 ++++- tests/loaders/test_yourdfpy.py | 15 ++++- tests/test_descriptions.py | 18 ++++++ tests/test_loaders.py | 96 ------------------------------- tox.ini | 2 +- 11 files changed, 91 insertions(+), 118 deletions(-) delete mode 100644 tests/test_loaders.py diff --git a/CHANGELOG.md b/CHANGELOG.md index a60671c7..29868ced 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -100,6 +100,7 @@ All notable changes to this project will be documented in this file. ### Changed +- CICD: Isolate loader tests in testing submodules - CICD: Update checkout actions to v4 - Update MuJoCo Menagerie repository commit - Update eDO description repository diff --git a/tests/__init__.py b/tests/__init__.py index edf9a574..c89ee7a0 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -7,13 +7,11 @@ from .test_clone_to_cache import TestCloneToCache from .test_clone_to_directory import TestCloneToDirectory from .test_descriptions import TestDescriptions -from .test_loaders import TestLoaders from .test_progress_bar import TestProgressBar __all__ = [ "TestCloneToCache", "TestCloneToDirectory", "TestDescriptions", - "TestLoaders", "TestProgressBar", ] diff --git a/tests/loaders/test_idyntree.py b/tests/loaders/test_idyntree.py index dbecadf2..8e00b356 100644 --- a/tests/loaders/test_idyntree.py +++ b/tests/loaders/test_idyntree.py @@ -7,15 +7,24 @@ import unittest from robot_descriptions._descriptions import DESCRIPTIONS +from robot_descriptions.loaders.idyntree import ( + load_robot_description as load_idyntree, +) -from robot_descriptions.loaders.idyntree import load_robot_description class TestiDynTree(unittest.TestCase): - """ Check that all descriptions are loaded properly in iDynTree. """ + def test_idyntree(self): + self.assertIsNotNone( + load_idyntree( + "upkie_description", + commit="98502d5b175c3d6b60b3cf475b7eeef9fd290c43", + ) + ) + @staticmethod def get_test_for_description(description: str): """ @@ -29,10 +38,11 @@ def get_test_for_description(description: str): """ def test(self): - load_robot_description(description) + load_idyntree(description) return test + # Add a test function for each URDF description for name, description in DESCRIPTIONS.items(): if description.has_urdf: diff --git a/tests/loaders/test_mujoco.py b/tests/loaders/test_mujoco.py index 731eecc9..9de03486 100644 --- a/tests/loaders/test_mujoco.py +++ b/tests/loaders/test_mujoco.py @@ -7,15 +7,19 @@ import unittest from robot_descriptions._descriptions import DESCRIPTIONS -from robot_descriptions.loaders.mujoco import load_robot_description +from robot_descriptions.loaders.mujoco import ( + load_robot_description as load_mujoco, +) class TestMuJoCo(unittest.TestCase): - """ Check that all MJCF descriptions are loaded properly in MuJoCo. """ + def test_mujoco(self): + self.assertIsNotNone(load_mujoco("cassie_mj_description")) + @staticmethod def get_test_for_description(description: str): """ @@ -29,7 +33,7 @@ def get_test_for_description(description: str): """ def test(self): - load_robot_description(description) + load_mujoco(description) return test diff --git a/tests/loaders/test_pinocchio.py b/tests/loaders/test_pinocchio.py index d86d7f31..48f2fcea 100644 --- a/tests/loaders/test_pinocchio.py +++ b/tests/loaders/test_pinocchio.py @@ -7,7 +7,9 @@ import unittest from robot_descriptions._descriptions import DESCRIPTIONS -from robot_descriptions.loaders.pinocchio import load_robot_description +from robot_descriptions.loaders.pinocchio import ( + load_robot_description as load_pinocchio, +) class TestPinocchio(unittest.TestCase): @@ -15,6 +17,14 @@ class TestPinocchio(unittest.TestCase): Check that all descriptions are loaded properly in Pinocchio. """ + def test_pinocchio(self): + self.assertIsNotNone( + load_pinocchio( + "upkie_description", + commit="98502d5b175c3d6b60b3cf475b7eeef9fd290c43", + ) + ) + @staticmethod def get_test_for_description(description: str): """ @@ -28,7 +38,7 @@ def get_test_for_description(description: str): """ def test(self): - load_robot_description(description) + load_pinocchio(description) return test diff --git a/tests/loaders/test_pybullet.py b/tests/loaders/test_pybullet.py index 1a6c934e..41826012 100644 --- a/tests/loaders/test_pybullet.py +++ b/tests/loaders/test_pybullet.py @@ -9,12 +9,12 @@ import pybullet from robot_descriptions._descriptions import DESCRIPTIONS - -from robot_descriptions.loaders.pybullet import load_robot_description +from robot_descriptions.loaders.pybullet import ( + load_robot_description as load_pybullet, +) class TestPyBullet(unittest.TestCase): - """ Check that all descriptions are loaded properly in PyBullet. """ @@ -31,12 +31,22 @@ def tearDown(self): """ pybullet.disconnect() + def test_pybullet(self): + pybullet.connect(pybullet.DIRECT) + self.assertIsNotNone( + load_pybullet( + "upkie_description", + commit="98502d5b175c3d6b60b3cf475b7eeef9fd290c43", + ) + ) + pybullet.disconnect() + def test_value_error_when_no_urdf(self): """ Test exception raised when a description has no URDF_PATH. """ with self.assertRaises(ValueError): - load_robot_description("_empty_description") + load_pybullet("_empty_description") @staticmethod def get_test_for_description(description: str): @@ -51,7 +61,7 @@ def get_test_for_description(description: str): """ def test(self): - load_robot_description(description) + load_pybullet(description) return test diff --git a/tests/loaders/test_robomeshcat.py b/tests/loaders/test_robomeshcat.py index 32b9e473..0121b417 100644 --- a/tests/loaders/test_robomeshcat.py +++ b/tests/loaders/test_robomeshcat.py @@ -7,15 +7,24 @@ import unittest from robot_descriptions._descriptions import DESCRIPTIONS -from robot_descriptions.loaders.robomeshcat import load_robot_description +from robot_descriptions.loaders.robomeshcat import ( + load_robot_description as load_robomeshcat, +) class TestRoboMeshCat(unittest.TestCase): - """ Check that all descriptions are loaded properly in RoboMeshCat. """ + def test_robomeshcat(self): + self.assertIsNotNone( + load_robomeshcat( + "upkie_description", + commit="98502d5b175c3d6b60b3cf475b7eeef9fd290c43", + ) + ) + @staticmethod def get_test_for_description(description: str): """ @@ -29,7 +38,7 @@ def get_test_for_description(description: str): """ def test(self): - load_robot_description(description) + load_robomeshcat(description) return test diff --git a/tests/loaders/test_yourdfpy.py b/tests/loaders/test_yourdfpy.py index c41f5501..e1c75e76 100644 --- a/tests/loaders/test_yourdfpy.py +++ b/tests/loaders/test_yourdfpy.py @@ -7,15 +7,24 @@ import unittest from robot_descriptions._descriptions import DESCRIPTIONS -from robot_descriptions.loaders.yourdfpy import load_robot_description +from robot_descriptions.loaders.yourdfpy import ( + load_robot_description as load_yourdfpy, +) class TestYourdfpy(unittest.TestCase): - """ Check that all URDF descriptions are loaded properly in yourdfpy. """ + def test_yourdfpy(self): + self.assertIsNotNone( + load_yourdfpy( + "upkie_description", + commit="98502d5b175c3d6b60b3cf475b7eeef9fd290c43", + ) + ) + @staticmethod def get_test_for_description(description: str): """ @@ -29,7 +38,7 @@ def get_test_for_description(description: str): """ def test(self): - load_robot_description(description) + load_yourdfpy(description) return test diff --git a/tests/test_descriptions.py b/tests/test_descriptions.py index 78850cac..86475b74 100644 --- a/tests/test_descriptions.py +++ b/tests/test_descriptions.py @@ -12,6 +12,9 @@ import git from robot_descriptions._descriptions import DESCRIPTIONS +from robot_descriptions.loaders.pinocchio import ( + load_robot_description as load_pinocchio, +) class TestDescriptions(unittest.TestCase): @@ -46,6 +49,13 @@ def test_all_descriptions(self): f"in {description}", ) + def test_cache_path_package_name(self): + """Check a description with package:// URIs and a custom commit ID.""" + load_pinocchio( + "draco3_description", + commit="5afd19733d7b3e9f1135ba93e0aad90ed1a24cc7", + ) + def test_invalid_description_commit(self): invalid_commit = "foobar" os.environ["ROBOT_DESCRIPTION_COMMIT"] = invalid_commit @@ -55,3 +65,11 @@ def test_invalid_description_commit(self): if description_name in sys.modules: del sys.modules[description_name] import_module(description_name) + + def test_load_with_commit_then_without(self): + # https://github.com/robot-descriptions/robot_descriptions.py/issues/67 + load_pinocchio( + "draco3_description", + commit="5afd19733d7b3e9f1135ba93e0aad90ed1a24cc7", + ) + load_pinocchio("baxter_description") diff --git a/tests/test_loaders.py b/tests/test_loaders.py deleted file mode 100644 index 0556b0a5..00000000 --- a/tests/test_loaders.py +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2022 Stéphane Caron - -import unittest - -import pybullet - -from robot_descriptions.loaders.idyntree import ( - load_robot_description as load_idyntree, -) -from robot_descriptions.loaders.mujoco import ( - load_robot_description as load_mujoco, -) -from robot_descriptions.loaders.pinocchio import ( - load_robot_description as load_pinocchio, -) -from robot_descriptions.loaders.pybullet import ( - load_robot_description as load_pybullet, -) -from robot_descriptions.loaders.robomeshcat import ( - load_robot_description as load_robomeshcat, -) -from robot_descriptions.loaders.yourdfpy import ( - load_robot_description as load_yourdfpy, -) - - -class TestLoaders(unittest.TestCase): - """ - Test loaders. - """ - - upkie_description_commit = "98502d5b175c3d6b60b3cf475b7eeef9fd290c43" - - def test_mujoco(self): - self.assertIsNotNone(load_mujoco("cassie_mj_description")) - - def test_pinocchio(self): - self.assertIsNotNone( - load_pinocchio( - "upkie_description", - commit=self.upkie_description_commit, - ) - ) - - def test_pybullet(self): - pybullet.connect(pybullet.DIRECT) - self.assertIsNotNone( - load_pybullet( - "upkie_description", - commit=self.upkie_description_commit, - ) - ) - pybullet.disconnect() - - def test_robomeshcat(self): - self.assertIsNotNone( - load_robomeshcat( - "upkie_description", - commit=self.upkie_description_commit, - ) - ) - - def test_yourdfpy(self): - self.assertIsNotNone( - load_yourdfpy( - "upkie_description", - commit=self.upkie_description_commit, - ) - ) - - def test_idyntree(self): - self.assertIsNotNone( - load_idyntree( - "upkie_description", - commit=self.upkie_description_commit, - ) - ) - - def test_cache_path_package_name(self): - """Check a description with package:// URIs and a custom commit ID.""" - load_pinocchio( - "draco3_description", - commit="5afd19733d7b3e9f1135ba93e0aad90ed1a24cc7", - ) - - def test_load_with_commit_then_without(self): - # https://github.com/robot-descriptions/robot_descriptions.py/issues/67 - load_pinocchio( - "draco3_description", - commit="5afd19733d7b3e9f1135ba93e0aad90ed1a24cc7", - ) - load_pinocchio("baxter_description") diff --git a/tox.ini b/tox.ini index 3f22a372..ba00c878 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] isolated_build = True -envlist = coverage,lint,loader-{mujoco,pinocchio,pybullet,robomeshcat,yourdfpy,idyntree} +envlist = coverage,lint,loader-{mujoco,pybullet,robomeshcat,yourdfpy,idyntree} [gh-actions] python = From eb53f1cabc61af21b64f9bb66abeeea124a6a955 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Mon, 10 Mar 2025 14:14:33 +0100 Subject: [PATCH 08/13] CICD: Remove version pin on NumPy < 2 --- CHANGELOG.md | 1 + tox.ini | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29868ced..4aa677c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -101,6 +101,7 @@ All notable changes to this project will be documented in this file. ### Changed - CICD: Isolate loader tests in testing submodules +- CICD: Remove version pin on NumPy < 2 - CICD: Update checkout actions to v4 - Update MuJoCo Menagerie repository commit - Update eDO description repository diff --git a/tox.ini b/tox.ini index ba00c878..e2a7fbf3 100644 --- a/tox.ini +++ b/tox.ini @@ -14,7 +14,7 @@ deps = coverage >=5.5 idyntree >= 8.0.0 mujoco >=2.3.5 - numpy >=1.23.4,<2 + numpy >=1.23.4 pin >= 3.1.0 pybullet >=3.2.5 robomeshcat >= 1.0.4 @@ -31,7 +31,7 @@ deps = mccabe mujoco >=2.3.5 mypy - numpy >=1.23.4,<2 + numpy >=1.23.4 pin >= 3.1.0 pybullet >=3.2.5 pylint @@ -62,7 +62,7 @@ commands = [testenv:loader-pybullet] changedir = {toxinidir}/tests/loaders deps = - numpy >=1.23.4,<2 + numpy >=1.23.4 pybullet >=3.2.5 commands = python -m unittest test_pybullet.py --failfast @@ -79,7 +79,7 @@ commands = changedir = {toxinidir}/tests/loaders deps = lxml <=4.9.4 - numpy >=1.23.4,<2 + numpy >=1.23.4 yourdfpy >=0.0.56 commands = python -m unittest test_yourdfpy.py --failfast From e7501998bbbecef8a989c42d3e6360292420b6f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Mon, 10 Mar 2025 14:15:42 +0100 Subject: [PATCH 09/13] Fix PyBullet unit test --- tests/loaders/test_pybullet.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/loaders/test_pybullet.py b/tests/loaders/test_pybullet.py index 41826012..1eae9239 100644 --- a/tests/loaders/test_pybullet.py +++ b/tests/loaders/test_pybullet.py @@ -32,14 +32,12 @@ def tearDown(self): pybullet.disconnect() def test_pybullet(self): - pybullet.connect(pybullet.DIRECT) self.assertIsNotNone( load_pybullet( "upkie_description", commit="98502d5b175c3d6b60b3cf475b7eeef9fd290c43", ) ) - pybullet.disconnect() def test_value_error_when_no_urdf(self): """ From e934ef258caf7c63cfbff47ebf5ab7812e9329f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Mon, 10 Mar 2025 14:16:58 +0100 Subject: [PATCH 10/13] Disable a1_mj_description unit test for now See https://github.com/stack-of-tasks/pinocchio/issues/2613 --- tests/loaders/test_pinocchio.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/loaders/test_pinocchio.py b/tests/loaders/test_pinocchio.py index 48f2fcea..b58c19f9 100644 --- a/tests/loaders/test_pinocchio.py +++ b/tests/loaders/test_pinocchio.py @@ -45,6 +45,9 @@ def test(self): # Add a test function for each description for name, description in DESCRIPTIONS.items(): + if name == "a1_mj_description": + # See https://github.com/stack-of-tasks/pinocchio/issues/2613 + continue setattr( TestPinocchio, f"test_{name}", From 9887f42edbea7519841adc8c9b4ff85f1b6f5299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Mon, 10 Mar 2025 14:19:18 +0100 Subject: [PATCH 11/13] CICD: Disable talos_mj_description unit test for now See https://github.com/stack-of-tasks/pinocchio/issues/2612 --- tests/loaders/test_pinocchio.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/loaders/test_pinocchio.py b/tests/loaders/test_pinocchio.py index b58c19f9..bd1b7060 100644 --- a/tests/loaders/test_pinocchio.py +++ b/tests/loaders/test_pinocchio.py @@ -48,6 +48,9 @@ def test(self): if name == "a1_mj_description": # See https://github.com/stack-of-tasks/pinocchio/issues/2613 continue + if name == "talos_mj_description": + # See https://github.com/stack-of-tasks/pinocchio/issues/2612 + continue setattr( TestPinocchio, f"test_{name}", From 096e069cbbfcfd8d8223f8ac3db4136b86931d9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Mon, 10 Mar 2025 14:19:53 +0100 Subject: [PATCH 12/13] CICD: Disable aloha_mj_description for now See https://github.com/stack-of-tasks/pinocchio/issues/2610 --- tests/loaders/test_pinocchio.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/loaders/test_pinocchio.py b/tests/loaders/test_pinocchio.py index bd1b7060..889db012 100644 --- a/tests/loaders/test_pinocchio.py +++ b/tests/loaders/test_pinocchio.py @@ -48,6 +48,9 @@ def test(self): if name == "a1_mj_description": # See https://github.com/stack-of-tasks/pinocchio/issues/2613 continue + if name == "aloha_mj_description": + # See https://github.com/stack-of-tasks/pinocchio/issues/2610 + continue if name == "talos_mj_description": # See https://github.com/stack-of-tasks/pinocchio/issues/2612 continue From 39f4a0d9f6425da40e312e83bec6631e33f4e3c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Wed, 7 May 2025 11:37:42 +0200 Subject: [PATCH 13/13] Fix changelog rebase --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4aa677c8..ad66df85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -76,6 +76,8 @@ All notable changes to this project will be documented in this file. ### Changed +- CICD: Isolate loader tests in testing submodules +- CICD: Remove version pin on NumPy < 2 - Update `baxter_common` repository with a commit ID rather than a tag - Update `talos-data` repository with a commit ID rather than a tag @@ -100,8 +102,6 @@ All notable changes to this project will be documented in this file. ### Changed -- CICD: Isolate loader tests in testing submodules -- CICD: Remove version pin on NumPy < 2 - CICD: Update checkout actions to v4 - Update MuJoCo Menagerie repository commit - Update eDO description repository