ros-infrastructure / catkin_pkg

Standalone Python library for the catkin build system.
https://github.com/ros/catkin
Other
47 stars 89 forks source link

Remove newlines in package description for compatibility with new setuptools #315

Closed Tobias-Fischer closed 2 years ago

Tobias-Fischer commented 2 years ago

…uptools

Currently many builds are broken with the newest setuptools This is because of https://github.com/pypa/setuptools/pull/2870 See e.g. https://github.com/pypa/setuptools/issues/1390 https://github.com/pypa/setuptools/issues/2895 https://github.com/pypa/setuptools/issues/2893

cottsay commented 2 years ago

Currently many builds are broken with the newest setuptools

Could you share an example?

Tobias-Fischer commented 2 years ago

Sure. Here is one for image-geometry (https://github.com/ros-perception/vision_opencv/blob/noetic/image_geometry/package.xml - mind the newlines in the description), same for e.g. cv-bridge.

Traceback (most recent call last):
6665
  File "/usr/share/miniconda/conda-bld/ros-noetic-image-geometry_1637272499147/work/ros-noetic-image-geometry/src/work/setup.py", line 10, in <module>
6666
    setup(**d)
6667
  File "/usr/share/miniconda/conda-bld/ros-noetic-image-geometry_1637272499147/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup
6668
    return distutils.core.setup(**attrs)
6669
  File "/usr/share/miniconda/conda-bld/ros-noetic-image-geometry_1637272499147/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/distutils/core.py", line 148, in setup
6670
    dist.run_commands()
6671
  File "/usr/share/miniconda/conda-bld/ros-noetic-image-geometry_1637272499147/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/distutils/dist.py", line 966, in run_commands
6672
    self.run_command(cmd)
6673
  File "/usr/share/miniconda/conda-bld/ros-noetic-image-geometry_1637272499147/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/distutils/dist.py", line 985, in run_command
6674
    cmd_obj.run()
6675
  File "/usr/share/miniconda/conda-bld/ros-noetic-image-geometry_1637272499147/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/command/egg_info.py", line 292, in run
6676
    writer(self, ep.name, os.path.join(self.egg_info, ep.name))
6677
  File "/usr/share/miniconda/conda-bld/ros-noetic-image-geometry_1637272499147/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/command/egg_info.py", line 656, in write_pkg_info
6678
    metadata.write_pkg_info(cmd.egg_info)
6679
  File "/usr/share/miniconda/conda-bld/ros-noetic-image-geometry_1637272499147/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/distutils/dist.py", line 1117, in write_pkg_info
6680
    self.write_pkg_file(pkg_info)
6681
  File "/usr/share/miniconda/conda-bld/ros-noetic-image-geometry_1637272499147/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/dist.py", line 167, in write_pkg_file
6682
    write_field('Summary', single_line(self.get_description()))
6683
  File "/usr/share/miniconda/conda-bld/ros-noetic-image-geometry_1637272499147/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/dist.py", line 151, in single_line
6684
    raise ValueError('Newlines are not allowed')
6685
ValueError: Newlines are not allowed
6686
CMake Error at catkin_generated/safe_execute_install.cmake:4 (message):

This will obviously take a while before it shows up in Debian builds because setuptools is far behind, but we encounter the issue in RoboStack already as we have up-to-date setuptools in conda-forge.

/cc @wolfv

Tobias-Fischer commented 2 years ago

https://github.com/ros-infrastructure/catkin_pkg/pull/316 looks nicer.