CI Pipeline to create doxygen-documentation fails
The CI pipeline for the doxygen-based documentation, developed in !4 (merged), currently fails:
-
History:
- Last successful run: Nov. 16, https://git.h2t.iar.kit.edu/sw/armarx/meta/documentation/-/jobs/72902
(but: not published, as the docker image was not available in the successive pipeline https://git.h2t.iar.kit.edu/sw/armarx/meta/documentation/-/jobs/72904, which is a known other problem and resolved now) - First failing run: Nov. 23, https://git.h2t.iar.kit.edu/sw/armarx/meta/documentation/-/jobs/73196
- Latest failing run: Dec. 11, https://git.h2t.iar.kit.edu/sw/armarx/meta/documentation/-/jobs/73989
- Last successful run: Nov. 16, https://git.h2t.iar.kit.edu/sw/armarx/meta/documentation/-/jobs/72902
-
Log:
- The pipeline always fails in
make docbetween[ 50%] Generating Slice documentation for armarx_documentationand[ 50%] Built target slicedoc - The last output repeatedly is:
/workspace/armarx/RobotComponents/source/RobotComponents/interface/components/PathPlanner.ice:67: warning: classes with operations are deprecated /workspace/armarx/RobotComponents/source/RobotComponents/interface/components/PathPlanner.ice:126: warning: classes with operations are deprecated CMakeFiles/slicedoc.dir/build.make:70: recipe for target 'CMakeFiles/slicedoc' failed CMakeFiles/Makefile2:747: recipe for target 'CMakeFiles/slicedoc.dir/all' failed make[3]: *** [CMakeFiles/slicedoc] Error 1 make[2]: *** [CMakeFiles/slicedoc.dir/all] Error 2 make[1]: *** [CMakeFiles/doc.dir/rule] Error 2 CMakeFiles/Makefile2:286: recipe for target 'CMakeFiles/doc.dir/rule' failed make: *** [doc] Error 2 Makefile:244: recipe for target 'doc' failed Cleaning up project directory and file based variables 00:00 ERROR: Job failed: exit code 1 - Building the documentation locally yields the same result
- The pipeline always fails in
-
Investigation attempts:
- Running it locally with increased verbosity (
make -VERBOSE=1 doc) specifies the first error to:make[3]: *** [CMakeFiles/slicedoc.dir/build.make:71: CMakeFiles/slicedoc] Error 1 make[3]: Leaving directory '/home/daab/code/armarxws/armarx/meta/documentation/build' - In build/CMakeFiles/slicedoc.dir/build.make, line 71 is (formatting changed, but indeed no space between
-Iand/home):/usr/bin/slice2html --output-dir /home/daab/code/armarxws/armarx/meta/documentation/build/doxygen/html/slice/ --hdr /home/daab/code/armarxws/armarx/ArmarXCore/etc/templates/slicedoc/slice_documentation_header.html -I"/home/daab/code/armarxws/armarx/meta/documentation/source" -I"/usr/share/ice/slice" --underscore -I/home/daab/code/armarxws/armarx/ArmarXCore/source -I/home/daab/code/armarxws/armarx/ArmarXGui/source -I/home/daab/code/armarxws/armarx/RobotAPI/source -I/home/daab/code/armarxws/armarx/MemoryX/source -I/home/daab/code/armarxws/armarx/VisionX/source -I/home/daab/code/armarxws/armarx/RobotSkillTemplates/source -I/home/daab/code/armarxws/armarx/RobotComponents/source -I/home/daab/code/armarxws/armarx/skills/control/source /home/daab/code/armarxws/armarx/ArmarXCore/source/ArmarXCore/interface/ArmarXStorm.ice /home/daab/code/armarxws/armarx/ArmarXCore/source/ArmarXCore/interface/components/BatteryManagementInterface.ice /home/daab/code/armarxws/armarx/ArmarXCore/source/ArmarXCore/interface/components/EmergencyStopInterface.ice /home/daab/code/armarxws/armarx/ArmarXCore/source/ArmarXCore/interface/components/ExternalApplicationManagerInterface.ice /home/daab/code/armarxws/armarx/ArmarXCore/source/ArmarXCore/interface/components/JsonStorageInterface.ice ... /home/daab/code/armarxws/armarx/RobotComponents/source/RobotComponents/interface/components/PathPlanner.ice /home/daab/code/armarxws/armarx/RobotComponents/source/RobotComponents/interface/components/PlannedMotionProviderInterface.ice /home/daab/code/armarxws/armarx/RobotComponents/source/RobotComponents/interface/components/RobotIK.ice /home/daab/code/armarxws/armarx/RobotComponents/source/RobotComponents/interface/components/ViconMarkerProviderInterface.ice - The latest changes of PathPlanner.ice, PlannedMotionProviderInterface.ice and, following after the failure position, RobotIK.ice and ViconMarkerProviderInterface.ice are in all cases at least 5 years old -- thus, there is no recent change that correlates with the occurence of the problem. Even the repository graph of RobotComponents in general does not show any activity later than March 2024.
- Removing the latest entries of line 71 in build/CMakeFiles/slicedoc.dir/build.make does not resolve the error, but just makes it occur earlier - sometimes missing additional entries, sometimes running until the end:
- Remove 1 entry (ViconMarkerProviderInterface): error at same location (after PathPlanner:126)
- Remove 2 entries (+ RobotIK): as before
- Remove 3 entries (+ PlannedMotionProviderInterface): as before
- Remove 4 entries (+ PathPlanner): error after RandomShortcutPostprocessor/Task.ice:34, i.e., missing 2 (HumanObstacleDetectionInterface, LaserScannerObstacleDetectionInterface)
- Remove 5 entries (+ LaserScannerObstacleDetectionInterface): as before
- Remove 6 entries (+ HumanObstacleDetectionInterface): as before
- Remove 7 entries (+ RandomShortcutPostprocessor): error after RRTConnect/WorkerNode.ice:79, i.e., missing 0
- Remove 8 entries (+ RRTConnect): error after RRTConnect/Task.ice:48, i.e., missing 0
- It works (in terms of reaching
[ 50%] Built target slicedoc) when removing many entries:- everything after
ArmarXCore/interface/serialization/Eigen - everything after
ArmarXCore/... - everything after
RobotAPI/... - everything after
MemoryX/... - but NOT when removing only everything after
VisionX/...: then, the error occurs after/home/daab/code/armarxws/armarx/MemoryX/source/MemoryX/interface/components/WorkingMemoryInterface.ice:44: warning: proxy for a class is deprecated /home/daab/code/armarxws/armarx/VisionX/source/VisionX/interface/components/PersonSimulatorSkillProviderInterface.ice:6: module `VisionX' is capitalized inconsistently with its previous name: `visionx'
- everything after
- The behavior changes between
VisionX/interface/components/OpticalFlowInterface.ice(still ok) andVisionX/interface/components/PersonSimulatorSkillProviderInterface.ice(causing the failuremake[3]: *** [CMakeFiles/slicedoc.dir/build.make:71: CMakeFiles/slicedoc] Error 1as listed above) -
PersonSimulatorSkillProviderInterface.icewas indeed changed recently:- last changed on Nov. 14, i.e., actually slightly BEFORE the last successful run, in commit sw/armarx/visionx@a3f618c4
- merged into master on Nov. 22, in commit sw/armarx/visionx@db69e3d5, i.e. BETWEEN last successful and before first failing run
-
PersonMemoryInteractorSkillProviderInterfacewas changed toPersonSimulatorSkillProviderInterface, in combination with a change of the module name fromperson_memory_interactor_skill_providertoperson_simulator_skill_provider. The file name was also changed, fromsource/VisionX/interface/components/PersonMemoryInteractorSkillProviderInterface.icetosource/VisionX/interface/components/PersonSimulatorSkillProviderInterface.ice - Hypothesis that a
MemoryInteractorstring was left over somewhere, instead of being changed to (Person)Simulator: no, at least no findings via gitlab search functionality within VisionX (but findings for the new version) - Hypothesis that, in some cases, the renaming was to something else than
Simulator: no, at least in the mentioned commit it seems thatmemory_interacis always changed tosimula, and that upper-/lowercase and special characters are maintained - Checking if some documentation comments are affected by the renaming: In the changed files,
/**and///do not occur with references that are suspicious of being broken. The closest is@class PersonSimulatorinPersonSimulator.h, but seems to be have ben renamed correctly.
- Running it locally with increased verbosity (
Edited by Tilman Daab