Skip to content

1.17.6 breaks build Pipeline (NameError: name 'Post' is not defined) #408

@thies23

Description

@thies23

We build mkdocs pages via GitLab Build Pipeline.
Vanilla mkdocs, plugin installed via pip. No other plugins.

When building with 1.17.6 the build fails with this output:

$ mkdocs build
Traceback (most recent call last):
  File "/usr/local/bin/mkdocs", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 1462, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 1383, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 1850, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 1246, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/click/core.py", line 814, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/mkdocs/__main__.py", line 285, in build_command
    cfg = config.load_config(**kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/mkdocs/config/base.py", line 374, in load_config
    errors, warnings = cfg.validate()
                       ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/mkdocs/config/base.py", line 231, in validate
    run_failed, run_warnings = self._validate()
                               ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/mkdocs/config/base.py", line 188, in _validate
    self[key] = config_option.validate(value)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/mkdocs/config/config_options.py", line 186, in validate
    return self.run_validation(value)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/mkdocs/config/config_options.py", line 1065, in run_validation
    self.load_plugin_with_namespace(name, cfg)
  File "/usr/local/lib/python3.11/dist-packages/mkdocs/config/config_options.py", line 1103, in load_plugin_with_namespace
    return (name, self.load_plugin(name, config))
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/mkdocs/config/config_options.py", line 1121, in load_plugin
    plugin_cls = self.installed_plugins[name].load()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/metadata/__init__.py", line 202, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/local/lib/python3.11/dist-packages/mkdocs_rss_plugin/plugin.py", line 34, in <module>
    from mkdocs_rss_plugin.integrations.theme_material_blog_plugin import (
  File "/usr/local/lib/python3.11/dist-packages/mkdocs_rss_plugin/integrations/theme_material_blog_plugin.py", line 43, in <module>
    class IntegrationMaterialBlog(IntegrationMaterialThemeBase):
  File "/usr/local/lib/python3.11/dist-packages/mkdocs_rss_plugin/integrations/theme_material_blog_plugin.py", line 135, in IntegrationMaterialBlog
    def is_page_a_blog_post(self, mkdocs_page: Post | MkdocsPageSubset) -> bool:
                                               ^^^^
NameError: name 'Post' is not defined

Pinning to 1.17.5 fixes the issue.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions