• Bug#1099336: Bug #1099336: mkdocstrings missing a dependency on mkdocs-

    From Carsten Schoenert@21:1/5 to All on Sun Mar 16 10:50:01 2025
    Hello Chen,

    Am Wed, Mar 05, 2025 at 06:43:15AM +0000 schrieb Chen Shengqi:
    Hi,

    As a plugin for mkdocs, now it would not work any more when imported:
    This is what I got when I tried to build fmtlib earlier today, I believe there
    are more cases, whichever uses mkdocstrings in their B-D.
    ...
    File "/usr/lib/python3/dist-packages/mkdocstrings/plugin.py", line 29, in <module>
    from mkdocstrings.extension import MkdocstringsExtension
    File "/usr/lib/python3/dist-packages/mkdocstrings/extension.py", line 38, in <module>
    from mkdocstrings.handlers.base import BaseHandler, CollectionError, CollectorItem, Handlers
    File "/usr/lib/python3/dist-packages/mkdocstrings/handlers/base.py", line 26, in <module>
    from mkdocs_get_deps.cache import download_and_cache_url ModuleNotFoundError: No module named 'mkdocs_get_deps'

    I think this surely makes it release-critical. Packaging
    mkdocs-get-deps is certainly the solution. But considering the time
    before trixie freeze and effort we need to adapting to the new
    version, I suggest uploading a 0.28.2+really0.27.0-3. So that every
    r-dep could still use mkdocstrings, rather than being hit by a sudden
    FTBFS.

    it's a bit more complicated than I thought and took a while to figure
    out what did happen.

    In short, the root of this issue isn't the package mkdocstrings in a
    first place. But it's also true that mkdocstrings did had a missing
    dependency for the version the bug report is about.

    Upstream of MkDocs did add a dependency on mkdocs-get-deps in version
    1.6.0.

    https://github.com/mkdocs/mkdocs/blame/master/pyproject.toml#L48

    But this did not get respected within the Debian packaging and did
    not pop by ia failing tests e.g. So it got not detected.

    mkdocstrings did add a dependency on mkdocs-get-deps while the
    preparation for version 0.28.

    https://github.com/mkdocstrings/mkdocstrings/commit/bb87cd833f2333e77cb2c2926aa24a434c97391f

    But did now remove this dependency in 0.29 again, as it's now depending
    on mkdocs >= 1.6.0 which provides the functioninality on it's own that mkdocstrings is needing.

    https://github.com/mkdocstrings/mkdocstrings/commit/11bc400ab7089a47755f24a790c08f2f904c570b

    So building mkdocstrings 0.29 is working correctly, and tests don't use mkdocs-get-deps anymore, but the pulled in mkdocs package is requiring
    this package to get the tests running.


    Successfully built mkdocstrings-0.29.0-py3-none-any.whl
    I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with "installer" module
    dh_auto_test -O--buildsystem=pybuild
    I: pybuild pybuild:308: cp -r /build/mkdocstrings-0.29.0/docs /build/mkdocstrings-0.29.0/mkdocs.yml /build/mkdocstrings-0.29.0/*.md /build/mkdocstrings-0.29.0/src /build/mkdocstrings-0.29.0/.pybuild/cpython3_3.13_mkdocstrings/build
    I: pybuild base:311: cd /build/mkdocstrings-0.29.0/.pybuild/cpython3_3.13_mkdocstrings/build; python3.13 -m pytest -k 'not test_sphinx_load_mkdocstrings_inventory_file'
    ============================= test session starts ==============================
    platform linux -- Python 3.13.2, pytest-8.3.5, pluggy-1.5.0
    rootdir: /build/mkdocstrings-0.29.0/.pybuild/cpython3_3.13_mkdocstrings/build configfile: pyproject.toml
    collected 15 items / 6 errors

    ==================================== ERRORS ====================================
    ______________________ ERROR collecting tests/test_api.py ______________________
    ImportError while importing test module '/build/mkdocstrings-0.29.0/.pybuild/cpython3_3.13_mkdocstrings/build/tests/test_api.py'.
    Hint: make sure your test modules/packages have valid Python names.
    Traceback:
    /usr/lib/python3.13/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level) tests/test_api.py:12: in <module>
    import mkdocstrings
    mkdocstrings/__init__.py:8: in <module>
    from mkdocstrings._internal.extension import AutoDocProcessor, MkdocstringsExtension
    mkdocstrings/_internal/extension.py:37: in <module>
    from mkdocstrings._internal.handlers.base import BaseHandler, CollectionError, CollectorItem, Handlers
    mkdocstrings/_internal/handlers/base.py:22: in <module>
    from mkdocs.utils.cache import download_and_cache_url /usr/lib/python3/dist-packages/mkdocs/utils/cache.py:5: in <module>
    ^^^^^^^^^^^^^^^^^^^^^
    import mkdocs_get_deps.cache
    E ModuleNotFoundError: No module named 'mkdocs_get_deps'


    I'll reassign this issue(s) to src:python-mkdocs as this package need to
    get a rebuild now as the dependency is available in the archive and the dependency for mkdocs-get-deps is getting added to the mkdocs package.

    Regards
    Carsten

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)