ros-infrastructure / rosdoc2

Command-line tool for generating documentation for ROS 2 packages.
Apache License 2.0
29 stars 9 forks source link

No such file or directory: 'doxygen' #126

Open jcarpinelli-bdai opened 4 days ago

jcarpinelli-bdai commented 4 days ago

I'm sure this problem is some form of misconfiguration on my end... but I cannot figure out what I've done wrong! Using the Dev Container in this example repository, calling rosdoc2 build -p src/example_package produces the following error. I believe I have followed the setup instructions in the README. Is there anything glaring in this Dockerfile?

[rosdoc2] [INFO] No Doxyfile specified by user, and no Doxyfile found in the package at 'src/example_package/Doxyfile', but a standard include directory was found at 'src/example_package/include', therefore a default Doxyfile will be generated and used.
[rosdoc2] [INFO] Running Doxygen: 'doxygen Doxyfile.rosdoc2' in '/rosdoc2-example/docs_build/example_package/example_package-public-cc-api'
[Errno 2] No such file or directory: 'doxygen'
rkent commented 3 days ago

I don't see any evidence that you have Doxygen installed in your Dockerfile. You could add doxygen here:

RUN apt-get update && apt-get install -y git make graphviz python3-pip

The documentation for rosdoc2 is not in good shape at the moment. I was hoping to improve that, but the main reviewer is on leave at the moment.

nuclearsandwich commented 3 days ago

The documentation for rosdoc2 is not in good shape at the moment. I was hoping to improve that, but the main reviewer is on leave at the moment.

Although we're spread a bit thin, there are other maintainers here as well (and we're working to onboard some new ones).

I don't think it makes sense at the moment for rosdoc2 to be "self hosting" but if there's documentation you'd like to add either to the readme or to a new doc folder please do and tag me for review.

rkent commented 2 days ago

Hey @nuclearsandwich, on the question of installation instructions, one thing that tripped me up in trying to write up rosdoc2 was how to handle newer Python's issues with pip install --user. The official Python instructions, AFAICT, are to either use pipx, or a virtual environment. But it seems to me that most of the ROS2 infrastructure stuff uses PIP_BREAK_SYSTEM_PACKAGES: 1 What is ROS2 recommending here? is PIP_BREAK_SYSTEM_PACKAGES: 1 pretty standard in ROS2 user installations?

clalancette commented 2 days ago

Hey @nuclearsandwich, on the question of installation instructions, one thing that tripped me up in trying to write up rosdoc2 was how to handle newer Python's issues with pip install --user. The official Python instructions, AFAICT, are to either use pipx, or a virtual environment. But it seems to me that most of the ROS2 infrastructure stuff uses PIP_BREAK_SYSTEM_PACKAGES: 1 What is ROS2 recommending here? is PIP_BREAK_SYSTEM_PACKAGES: 1 pretty standard in ROS2 user installations?

Personally, I think that rosdoc2 is kind of special. Because it is just a pure-python package, and doesn't rely on the rest of the ROS infrastructure, I think we can easily advise people to use virtualenvs here. I'm reluctant to recommend something like pipx, because it feels like the "flavor-of-the-week", and is not the default tool.