这是indexloc提供的服务,不要输入任何密码
Skip to content

Breaking API change for nitpick_ignore #11355

@ksunden

Description

@ksunden

Describe the bug

The change from a list to a set is a breaking API change which affects Matplotlib's sphinx build. We have an extension which expects this value to be a list (with the extend method thereof)

How to Reproduce

conf.py:

nitpicky=True
extensions = ['sphinxext.missing_references']

index.rst:

:class:`missing`

missing_references.json:

{
  "py:class": {
    "missing": [
      "doc/index.rst:1"
    ]
  }
}

sphinxext/missing_references.py:
Copied from matplotlib

Errors because it is expecting app.conf.nitpick_ignore to be a list, not a set.

Environment Information

Platform:              linux; (Linux-6.2.0-76060200-generic-x86_64-with-glibc2.35)
Python version:        3.11.0 (main, Oct 27 2022, 01:56:38) [GCC 11.3.0])
Python implementation: CPython
Sphinx version:        6.2.0
Docutils version:      0.19
Jinja2 version:        3.1.2
Pygments version:      2.14.0

Sphinx extensions

["sphinxext.missing_references"] 

Note this is the extension linked above from matplotlib, but the key is it is an extension which modifies `app.conf.nitpick_ignore`.

Additional context

Link to failing mpl doc build: https://app.circleci.com/pipelines/github/matplotlib/matplotlib/23801/workflows/28a233c0-3582-42a8-99fc-164922a2fe7a/jobs/75765

The line from sphinx:

'nitpick_ignore': (set(), None, [set, list, tuple]),

The commit where it changed:

7ecf037

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions