I forked an earlier version of LAMMPS to develop an additional feature. I am trying to write and build the documentation but get an error relating to Sphinx 4.1.2
Sphinx parallel build error:
sphinx.util.cfamily.DefinitionError: Invalid C++ declaration: Expected identifier in nested name. [error at 8]
I downloaded the current version of lammps/lammps and was able to successfully build the documentation but noticed the Sphinx version was 4.0.3 instead of the 4.1.2.
Rebasing the lammps/lammps onto my master branch and then trying to build the documentation resulted in the same error as above, which leads me to believe that I need to downgrade the version of Sphinx that is in my fork.
Where are the list of packages and versions that are used in pip3 in the docenv folder and what are the values I should change?
Thanks in advance
If you do
make clean-all and then
make html again, the makefile in that folder will recreate the virtual environment used to process the documentation with the version constraints applied. Since we are using a number of sphinx extensions, some with additional requirements we do not depend on a system wide installation, but build and use a Python virtual environment (see the docenv folder). The failure with sphinx version 4.1 and later is unfortunate (it happens through importing the API documentation extracted by doxygen through the breathe extension, so it is a complex matter and it happens on some unusual C++ template code), but similar things have happened on occasion.
This usually gets resolved after a while and the version constraint can then be lifted (or we figure out a way to work around the issue).
To specifically answer your question, the list of requirements and packages for the virtual environment is in
Thanks Axel! I spent too many hours yesterday trying to fix that Sphinx error. The
make clean-all saved the day.