RoboStack / ros-humble

Recipes for ROS 2 Humble Hawksbill
81 stars 32 forks source link

bld_ament_python.bat does not work properly with setuptools==69 #135

Closed traversaro closed 3 months ago

traversaro commented 3 months ago

Solution to issue cannot be found in the documentation.

Issue

https://github.com/RoboStack/ros-humble/pull/124 bumped setuptools from 61 to 69 and this broke the fact that python binaries are installed in %CONDA_PREFIX%\Library\bin instead %CONDA_PREFIX%\Library\Scripts.

Installed packages

.

Environment info

.
traversaro commented 3 months ago

This cause the following error in Windows build:

2024-02-06T05:54:11.1461519Z -- Found foonathan_memory 0.7.2
2024-02-06T05:54:11.3827383Z -- Found Python3: %PREFIX%\python.exe (found version "3.11.7") found components: Interpreter 
2024-02-06T05:54:11.5532757Z CMake Error at C:/bld/ros-humble-foonathan-memory-vendor-0_1707198764946/_h_env/Library/share/ament_cmake_copyright/cmake/ament_copyright.cmake:40 (message):
2024-02-06T05:54:11.5534045Z   ament_copyright() could not find program 'ament_copyright'
2024-02-06T05:54:11.5534883Z Call Stack (most recent call first):
2024-02-06T05:54:11.5535301Z   CMakeLists.txt:110 (ament_copyright)
2024-02-06T05:54:11.5535578Z 
2024-02-06T05:54:11.5535752Z 
2024-02-06T05:54:11.5536554Z -- Configuring incomplete, errors occurred!
2024-02-06T05:54:12.8084919Z 
2024-02-06T05:54:12.8084973Z 
2024-02-06T05:54:12.8089495Z Work directory: C:\bld\ros-humble-foonathan-memory-vendor-0_1707198764946\work
2024-02-06T05:54:12.8093228Z Try building again with 
2024-02-06T05:54:12.8094055Z C:\bld\ros-humble-foonathan-memory-vendor-0_1707198764946\work\conda_build.bat

See https://github.com/RoboStack/ros-humble/actions/runs/7795290057/job/21257981841 .

traversaro commented 3 months ago

Interestingly, running locally:

C:\src\ament_lint\ament_copyright>python setup.py install --single-version-externally-managed --prefix=%CONDA_PREFIX%\Library --install-lib=%CONDA_PREFIX%\Lib\site-packages --record=files.txt --install-scripts=%CONDA_PREFIX%\Library\bin

with setuptools==69 works fine:

writing entry points to ament_copyright.egg-info\entry_points.txt
writing requirements to ament_copyright.egg-info\requires.txt
writing top-level names to ament_copyright.egg-info\top_level.txt
reading manifest file 'ament_copyright.egg-info\SOURCES.txt'
writing manifest file 'ament_copyright.egg-info\SOURCES.txt'
removing 'C:\Users\straversaro\AppData\Local\miniforge3\envs\fix135\Lib\site-packages\ament_copyright-0.16.2-py3.11.egg-info' (and everything under it)
Copying ament_copyright.egg-info to C:\Users\straversaro\AppData\Local\miniforge3\envs\fix135\Lib\site-packages\ament_copyright-0.16.2-py3.11.egg-info
running install_scripts
Installing ament_copyright-script.py script to C:\Users\straversaro\AppData\Local\miniforge3\envs\fix135\Library\bin
Installing ament_copyright.exe script to C:\Users\straversaro\AppData\Local\miniforge3\envs\fix135\Library\bin
writing list of installed files to 'files.txt'

but for some reason the ament-copyright build in the CI instead installd the scripts in scripts: https://github.com/RoboStack/ros-humble/actions/runs/7762728127/job/21175615126 :

2024-02-03T01:18:50.5177546Z byte-compiling %PREFIX%\Lib\site-packages\ament_copyright\__init__.py to __init__.cpython-311.pyc
2024-02-03T01:18:50.5190600Z running install_data
2024-02-03T01:18:50.5230793Z creating %PREFIX%\Library\share\ament_copyright
2024-02-03T01:18:50.5234978Z copying package.xml -> %PREFIX%\Library\share\ament_copyright
2024-02-03T01:18:50.5243943Z copying resource\ament_copyright -> %PREFIX%\Library\share\ament_index\resource_index\packages
2024-02-03T01:18:50.5252559Z running install_egg_info
2024-02-03T01:18:50.5394705Z running egg_info
2024-02-03T01:18:50.5395389Z creating ament_copyright.egg-info
2024-02-03T01:18:50.5430022Z writing ament_copyright.egg-info\PKG-INFO
2024-02-03T01:18:50.5443941Z writing dependency_links to ament_copyright.egg-info\dependency_links.txt
2024-02-03T01:18:50.5452143Z writing entry points to ament_copyright.egg-info\entry_points.txt
2024-02-03T01:18:50.5457504Z writing requirements to ament_copyright.egg-info\requires.txt
2024-02-03T01:18:50.5461638Z writing top-level names to ament_copyright.egg-info\top_level.txt
2024-02-03T01:18:50.5466865Z writing manifest file 'ament_copyright.egg-info\SOURCES.txt'
2024-02-03T01:18:50.5540588Z reading manifest file 'ament_copyright.egg-info\SOURCES.txt'
2024-02-03T01:18:50.5565325Z writing manifest file 'ament_copyright.egg-info\SOURCES.txt'
2024-02-03T01:18:50.5570887Z Copying ament_copyright.egg-info to %PREFIX%\Lib\site-packages\ament_copyright-0.12.10-py3.11.egg-info
2024-02-03T01:18:50.5631147Z running install_scripts
2024-02-03T01:18:50.6379624Z Installing ament_copyright-script.py script to %PREFIX%\Library\Scripts
2024-02-03T01:18:50.6387127Z Installing ament_copyright.exe script to %PREFIX%\Library\Scripts
2024-02-03T01:18:50.6399194Z writing list of installed files to 'files.txt'
traversaro commented 3 months ago

I reproduced the problem locally, and https://github.com/RoboStack/vinca/pull/47 apparently fixes the problem, even if I am not fully understanding what was going on.