Page MenuHome

blender-2.90.0 fails to build documentation: Some types are not used: ['hair', 'pointcloud']
Needs Information from User, NormalPublic

Description

System Information
Operating system: Gentoo Linux amd64
Graphics card: GeForce GTX 750

Blender Version
Broken: v2.90.0
Worked: v2.83.5

Short description of error
When building documentation for blender-2.90.0, following error happens:

Traceback (most recent call last):
  File "/tmp/portage/portage/media-gfx/blender-2.90.0/work/blender-2.90.0/doc/python_api/sphinx_doc_gen.py", line 2252, in <module>
    main()
  File "/tmp/portage/portage/media-gfx/blender-2.90.0/work/blender-2.90.0/doc/python_api/sphinx_doc_gen.py", line 2176, in main
    rna2sphinx(SPHINX_IN_TMP)
  File "/tmp/portage/portage/media-gfx/blender-2.90.0/work/blender-2.90.0/doc/python_api/sphinx_doc_gen.py", line 2040, in rna2sphinx
    pycontext2sphinx(basepath)
  File "/tmp/portage/portage/media-gfx/blender-2.90.0/work/blender-2.90.0/doc/python_api/sphinx_doc_gen.py", line 1180, in pycontext2sphinx
    str([member for member in context_type_map if member not in unique]))
Exception: Some types are not used: ['hair', 'pointcloud']

Exact steps for others to reproduce the error

  1. build blender from sources

I've used following cmake build switches:

-DBUILD_SHARED_LIBS=OFF -DPYTHON_INCLUDE_DIR=/usr/include/python3.7m -DPYTHON_LIBRARY=/usr/lib64/libpython3.7m.so -DPYTHON_VERSION=3.7 -DWITH_ALEMBIC=no -DWITH_ASSERT_ABORT=no -DWITH_BOOST=ON -DWITH_BULLET=yes -DWITH_CODEC_FFMPEG=yes -DWITH_CODEC_SNDFILE=yes -DWITH_CUDA_DYNLOAD=no -DWITH_CXX_GUARDEDALLOC=no -DWITH_CYCLES_DEVICE_CUDA=FALSE -DWITH_CYCLES=yes -DWITH_CYCLES_DEVICE_OPENCL=FALSE -DWITH_CYCLES_EMBREE=OFF -DWITH_CYCLES_STANDALONE=no -DWITH_CYCLES_STANDALONE_GUI=no -DWITH_CYCLES_OSL=no -DWITH_DOC_MANPAGE=yes -DWITH_FFTW3=yes -DWITH_GTESTS=no -DWITH_HEADLESS=no -DWITH_INSTALL_PORTABLE=OFF -DWITH_IMAGE_DDS=yes -DWITH_IMAGE_OPENEXR=yes -DWITH_IMAGE_OPENJPEG=no -DWITH_IMAGE_TIFF=yes -DWITH_INPUT_NDOF=no -DWITH_INTERNATIONAL=yes -DWITH_JACK=no -DWITH_LLVM=yes -DWITH_MEM_JEMALLOC=no -DWITH_MEM_VALGRIND=no -DWITH_MOD_FLUID=yes -DWITH_MOD_OCEANSIM=yes -DWITH_OPENAL=yes -DWITH_OPENCOLLADA=no -DWITH_OPENCOLORIO=yes -DWITH_OPENIMAGEIO=yes -DWITH_OPENMP=yes -DWITH_OPENSUBDIV=no -DWITH_OPENVDB=no -DWITH_OPENVDB_BLOSC=no -DWITH_PYTHON_INSTALL=OFF -DWITH_PYTHON_INSTALL_NUMPY=OFF -DWITH_SDL=no -DWITH_STATIC_LIBS=OFF -DWITH_SYSTEM_EIGEN3=ON -DWITH_SYSTEM_GFLAGS=ON -DWITH_SYSTEM_GLEW=ON -DWITH_SYSTEM_GLOG=ON -DWITH_SYSTEM_LZO=ON -DWITH_TBB=yes
  1. generate documentation via call to doc/python_api/sphinx_doc_gen.sh or using commands cd doc/python_api ; sphinx-build sphinx-in BPY_API

Event Timeline

Aaron Carlisle (Blendify) changed the task status from Needs Triage to Needs Information from User.Fri, Sep 4, 2:38 AM

What version of the source did you use? using rBa96283ba511d7ebf2c2ec2db16815b5a4b2979df I had no issue.

I'm using sources from https://download.blender.org/source/blender-2.90.0.tar.xz. With https://download.blender.org/source/blender-2.83.5.tar.xz there were no such issues for me.

I also was slightly incorrect in original post. It's not cd doc/python_api ; sphinx-build sphinx-in BPY_API commands which fail. It's one that goes before that:

BLENDER_SYSTEM_SCRIPTS="/tmp/portage/portage/media-gfx/blender-2.90.0/work/blender-2.90.0/release/scripts" BLENDER_SYSTEM_DATAFILES="/tmp/portage/portage/media-gfx/blender-2.90.0/work/blender-2.90.0/release/datafiles" /tmp/portage/portage/media-gfx/blender-2.90.0/work/blender-2.90.0_build/bin/blender --background --python doc/python_api/sphinx_doc_gen.py -noaudio

where /tmp/portage/portage/media-gfx/blender-2.90.0/work/blender-2.90.0 is a source directory and /tmp/portage/portage/media-gfx/blender-2.90.0/work/blender-2.90.0_build is build directory.

If issue is not in blender sources, could it be related to versions of dependencies or some missing dependencies?

I'll try checking later if source from commit you mentioned builds fine for me.

Ok, I ran some tests. When I'm using commit a96283ba511d7ebf2c2ec2db16815b5a4b2979df (branch master), documentation builds fine. When I'm using branch blender-v2.90-release (either from tag v2.90.0 from git, commit 0330d1af29c067cf309e4798f5259e01a8c3c668, which is also at the moment the latest commit in that branch,, or from tarball https://download.blender.org/source/blender-2.90.0.tar.xz) I'm getting error described in first message.

You need to make sure you are running the same version of Blender to generate the docs. You might have a particular build configuration that disables ['hair', 'pointcloud']

I'm using same version of Blender to generate the docs. I'm building blender and using it to generate docs. Yes, I might have configuration which has disabled hair and pointcloud stuff, but this configuration is same as one used for 2.83.5 and earlier blender versions. All enabled stuff and some disabled stuff should be listed in first message. What is required to enable hair and pointcloud? Did requirements change from 2.83.5? And are they different in master branch and commit a96283ba511d7ebf2c2ec2db16815b5a4b2979df ?

I have a same issue.

I used blender 2.90.0 (i.e. https://download.blender.org/source/blender-2.90.0.tar.xz) and tag v2.90.0.
Instead, it works correctly when I used windows version (https://download.blender.org/release/Blender2.90/blender-2.90.0-windows64.zip).
I think commit 83e3d25bcae37df0139bb93b85d7ae5bf3da553b is the cause of this issue which disabled hair and pointcloud by default.

So, the error condition in doc/python_api/sphinx_doc_gen.py should be fixed to consider the various build options.
What do you think?

Looks like you found relevant commit causing this issue for me. I agree that adding similar conditions to doc/python_api/sphinx_doc_gen.py should help.

nutti (Nutti) added a comment.EditedMon, Sep 7, 7:09 AM

I could generate .rst document by omitting L1031 and L1408 in doc/python_api/sphinx_doc_gen.py which is introduced by the commit 83e3d25bcae37df0139bb93b85d7ae5bf3da553b.
I think we should fix this more elegant way, but this workaround works for the document generation.