ROS2 with curobo when using the setuptools_scm

There is an annoying aspect of using ROS with curobo when using the setuptools_scm pip package to check for version information: https://github.com/NVlabs/curobo/blob/main/src/curobo/__init__.py

When building with colcon, the following print statement always appears:

--- stderr: isaac_ros_apriltag_interfaces
ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any
---

This error occurs because it clashes with setuptools. I’m not sure what the best solution would be. Maybe the curobo package could check for setuptools_scm and issue a warning if it can’t import it?

Hi @bren1,
I have been facing the same error while building Isaac packages from source.
I found a solution that works, basically it’s replacing setuptools_scm with setuptools. It made nvblox build without errors.

Hi @bren1

Welcome to the Isaac ROS forum! Thank you for reporting this bug. I’m experiencing the same issue and have also reported it for a fix.

In the meantime, you can consider following @rodrigo.delgado1’s suggestion. Thank you for your help.

Raffaello

Thank you for your feedback. In the end I just modified the code in src/curobo/__init__.py, So that it doesn’t import setuptools_scm:

def _get_version():
    return "v0.7.0-no-tag"

I think the code could easily be changed to have a try and except for:

        # Third Party
        import setuptools_scm

        # See the `setuptools_scm` documentation for the description of the schemes used below.
        # https://pypi.org/project/setuptools-scm/
        # NOTE: If these values are updated, they need to be also updated in `pyproject.toml`.
        return setuptools_scm.get_version(
            root=root,
            version_scheme="no-guess-dev",
            local_scheme="dirty-tag",
        )

And return return "v0.7.0-no-tag" The same as the code: from importlib.metadata import version currently handles it.

Bren