rstcheck: [Bug] v6.0.0a1 - WARNING: while setting up extension sphinx.addnodes: node class '...' is already registered, its visitors will be overridden

We’re using rstcheck as a pre-commit hook in several of our repos, integrated with https://pre-commit.ci and the v6.0.0a1 release has bumped the version of the hooks, and seems to be breaking the pre-commit.ci runs, see this pre-commit.ci autoupdate PR.

In our .pre-commit.yaml the rstcheck section looks like:

- repo: https://github.com/myint/rstcheck
  rev: v6.0.0a1
  hooks:
  - id: rstcheck
    additional_dependencies: [sphinx]
    args: ['--config', 'tox.ini']

The configuration in tox.ini is:

[rstcheck]
report = warning
ignore_roles =
    pr,
    issue,
    user
ignore_messages = (Hyperlink target ".*" is not referenced\.$)
ignore_directives =
    bibliography,

Running the pre-commit hook at the command line like this succeeds just fine:

pre-commit run --all-files rstcheck

But running rstcheck directly like this (in a Python environment with the sphinx dependencies installed as well):

rstcheck --recursive --config tox.ini ./

Results in the same failure that is showing up on pre-commit.ci:

WARNING: while setting up extension sphinx.addnodes: node class 'toctree' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_signature' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_signature_line' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_content' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_inline' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_name' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_addname' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_type' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_returns' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_parameterlist' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_parameter' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_optional' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_annotation' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_space' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_name' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_operator' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_punctuation' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_keyword' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_keyword_type' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_literal_number' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_literal_string' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_literal_char' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'versionmodified' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'seealso' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'productionlist' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'production' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'index' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'centered' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'acks' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'hlist' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'hlistcol' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'compact_paragraph' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'glossary' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'only' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'start_of_file' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'highlightlang' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'tabular_col_spec' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'pending_xref' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'number_reference' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'download_reference' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'literal_emphasis' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'literal_strong' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'manpage' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'meta' is already registered, its visitors will be overridden
Success! No issues detected.

Downgrading with pip install rstcheck[sphinx]==5.0.0 and re-running the above command results in no output at all.

Is this an expected behavior?

_Originally posted by @zaneselvans in https://github.com/myint/rstcheck/issues/104#issuecomment-1128195986_

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 18

Commits related to this issue

Most upvoted comments

Okay I changed the setup.py to install from the git branch and ran tox -re rstcheck and got:

$ tox -re rstcheck
GLOB sdist-make: /home/zane/code/catalyst/cheshire/setup.py
rstcheck recreate: /home/zane/code/catalyst/cheshire/.env_tox
rstcheck inst: /home/zane/code/catalyst/cheshire/.tox/.tmp/package/1/catalystcoop.cheshire-0.1.1.dev21+gaf21ac4.d20220520.zip
rstcheck installed: alabaster==0.7.12,attrs==21.4.0,Babel==2.10.1,bandit==1.7.4,catalystcoop.cheshire @ file:///home/zane/code/catalyst/cheshire/.tox/.tmp/package/1/catalystcoop.cheshire-0.1.1.dev21%2Bgaf21ac4.d20220520.zip,certifi==2022.5.18.1,cfgv==3.3.1,charset-normalizer==2.0.12,click==8.1.3,colorama==0.4.4,coverage==6.3.3,distlib==0.3.4,doc8==0.11.2,docutils==0.17.1,filelock==3.7.0,flake8==4.0.1,flake8-builtins==1.5.3,flake8-colors==0.1.9,flake8-docstrings==1.6.0,flake8-polyfill==1.0.2,flake8-rst-docstrings==0.2.5,flake8-use-fstring==1.3,gitdb==4.0.9,GitPython==3.1.27,greenlet==1.1.2,identify==2.5.1,idna==3.3,imagesize==1.3.0,iniconfig==1.1.1,Jinja2==3.1.2,MarkupSafe==2.1.1,mccabe==0.6.1,mypy==0.950,mypy-extensions==0.4.3,nodeenv==1.6.0,numpy==1.22.3,packaging==21.3,pandas==1.4.2,pbr==5.9.0,pep8-naming==0.12.1,platformdirs==2.5.2,pluggy==1.0.0,pre-commit==2.19.0,py==1.11.0,pycodestyle==2.8.0,pydantic==1.9.1,pydocstyle==6.1.1,pyflakes==2.4.0,Pygments==2.12.0,pyparsing==3.0.9,pytest==7.1.2,pytest-console-scripts==1.3.1,pytest-cov==3.0.0,python-dateutil==2.8.2,pytz==2022.1,PyYAML==6.0,requests==2.27.1,restructuredtext-lint==1.4.0,rstcheck @ git+https://github.com/myint/rstcheck.git@98dff841e54cd7bba5c01013b5548b45e8b94c45,shellingham==1.4.0,six==1.16.0,smmap==5.0.0,snowballstemmer==2.2.0,Sphinx==4.5.0,sphinxcontrib-applehelp==1.0.2,sphinxcontrib-devhelp==1.0.2,sphinxcontrib-htmlhelp==2.0.0,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-qthelp==1.0.3,sphinxcontrib-serializinghtml==1.1.5,SQLAlchemy==1.4.36,stevedore==3.5.0,toml==0.10.2,tomli==2.0.1,tox==3.25.0,typer==0.4.1,types-docutils==0.18.3,typing_extensions==4.2.0,urllib3==1.26.9,virtualenv==20.14.1
rstcheck run-test-pre: PYTHONHASHSEED='3187850396'
rstcheck run-test: commands[0] | rstcheck --config tox.ini --recursive ./
Success! No issues detected.

If I put rstcheck[sphinx]==6.0.0a1 in setup.py then I get:

$ tox -re rstcheck
GLOB sdist-make: /home/zane/code/catalyst/cheshire/setup.py
rstcheck recreate: /home/zane/code/catalyst/cheshire/.env_tox
rstcheck inst: /home/zane/code/catalyst/cheshire/.tox/.tmp/package/1/catalystcoop.cheshire-0.1.1.dev21+gaf21ac4.d20220520.zip
rstcheck installed: alabaster==0.7.12,attrs==21.4.0,Babel==2.10.1,bandit==1.7.4,catalystcoop.cheshire @ file:///home/zane/code/catalyst/cheshire/.tox/.tmp/package/1/catalystcoop.cheshire-0.1.1.dev21%2Bgaf21ac4.d20220520.zip,certifi==2022.5.18.1,cfgv==3.3.1,charset-normalizer==2.0.12,click==8.1.3,colorama==0.4.4,coverage==6.3.3,distlib==0.3.4,doc8==0.11.2,docutils==0.17.1,filelock==3.7.0,flake8==4.0.1,flake8-builtins==1.5.3,flake8-colors==0.1.9,flake8-docstrings==1.6.0,flake8-polyfill==1.0.2,flake8-rst-docstrings==0.2.5,flake8-use-fstring==1.3,gitdb==4.0.9,GitPython==3.1.27,greenlet==1.1.2,identify==2.5.1,idna==3.3,imagesize==1.3.0,iniconfig==1.1.1,Jinja2==3.1.2,MarkupSafe==2.1.1,mccabe==0.6.1,mypy==0.950,mypy-extensions==0.4.3,nodeenv==1.6.0,numpy==1.22.3,packaging==21.3,pandas==1.4.2,pbr==5.9.0,pep8-naming==0.12.1,platformdirs==2.5.2,pluggy==1.0.0,pre-commit==2.19.0,py==1.11.0,pycodestyle==2.8.0,pydantic==1.9.1,pydocstyle==6.1.1,pyflakes==2.4.0,Pygments==2.12.0,pyparsing==3.0.9,pytest==7.1.2,pytest-console-scripts==1.3.1,pytest-cov==3.0.0,python-dateutil==2.8.2,pytz==2022.1,PyYAML==6.0,requests==2.27.1,restructuredtext-lint==1.4.0,rstcheck==6.0.0a1,shellingham==1.4.0,six==1.16.0,smmap==5.0.0,snowballstemmer==2.2.0,Sphinx==4.5.0,sphinxcontrib-applehelp==1.0.2,sphinxcontrib-devhelp==1.0.2,sphinxcontrib-htmlhelp==2.0.0,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-qthelp==1.0.3,sphinxcontrib-serializinghtml==1.1.5,SQLAlchemy==1.4.36,stevedore==3.5.0,toml==0.10.2,tomli==2.0.1,tox==3.25.0,typer==0.4.1,types-docutils==0.18.3,typing_extensions==4.2.0,urllib3==1.26.9,virtualenv==20.14.1
rstcheck run-test-pre: PYTHONHASHSEED='1675906416'
rstcheck run-test: commands[0] | rstcheck --config tox.ini --recursive ./
WARNING: while setting up extension sphinx.addnodes: node class 'toctree' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_signature' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_signature_line' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_content' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_inline' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_name' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_addname' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_type' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_returns' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_parameterlist' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_parameter' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_optional' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_annotation' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_space' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_name' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_operator' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_punctuation' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_keyword' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_keyword_type' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_literal_number' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_literal_string' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_literal_char' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'versionmodified' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'seealso' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'productionlist' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'production' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'index' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'centered' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'acks' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'hlist' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'hlistcol' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'compact_paragraph' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'glossary' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'only' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'start_of_file' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'highlightlang' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'tabular_col_spec' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'pending_xref' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'number_reference' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'download_reference' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'literal_emphasis' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'literal_strong' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'manpage' is already registered, its visitors will be overridden
WARNING: while setting up extension sphinx.addnodes: node class 'meta' is already registered, its visitors will be overridden
Success! No issues detected.

So it looks like the fix is working! 🎉