Skip to content

Inventory-download workaround has no tracking issue or limitations entry #146

Open

Description

@cdwilson

Tracks upstream friction in the docs toolchain. CONTRIBUTING.md documents a carried workaround — the *_OBJECTS_INV environment variables — with no tracking issue and no entry on docs/contributing/upstream_limitations.md, so the project's two-artifact rule is not satisfied for it.

The friction

The documentation build downloads Sphinx object inventories so cross-references to Python, Pydantic, and TinyDB resolve to links. Read the Docs has put its site behind a Cloudflare bot challenge that rejects mkdocstrings' mkdocstrings/0.15.0 user agent, so the TinyDB inventory download fails:

mkdocstrings: Couldn't load inventory ... HTTP Error 429: Too Many Requests

The workaround we carry

mkdocs.yaml reads each inventory URL from an environment variable, so a contributor who hits the challenge can point the build at a locally downloaded objects.inv:

Environment variable Default inventory URL
PYTHON_OBJECTS_INV https://docs.python.org/3/objects.inv
PYDANTIC_OBJECTS_INV https://docs.pydantic.dev/latest/objects.inv
TINYDB_OBJECTS_INV https://tinydb.readthedocs.io/en/latest/objects.inv

Documented in CONTRIBUTING.md under "Build Documentation".

Reproduction

There is nothing to run: the finding is that two required artifacts are missing, not that code misbehaves. The evidence is their absence.

$ gh issue list --state all --search "inventory"

$ gh issue list --state all --search "429"

$ grep -rn "OBJECTS_INV\|objects.inv" docs/contributing/upstream_limitations.md

$ grep -c "OBJECTS_INV" CONTRIBUTING.md mkdocs.yaml
CONTRIBUTING.md:5
mkdocs.yaml:4

The first three commands print nothing: no issue tracks this, and the limitations page does not mention it. The fourth confirms the workaround is real and shipped.

The environment-variable failure itself is environmental (it depends on whether Cloudflare challenges your IP) and so is not reproducible on demand.

Environment: tinydantic 0.4.0 at 39b616c, mkdocs-include-markdown-plugin 7.3.0, Python 3.10.20, macOS. Checked 2026-08-13.

What to decide

docs/contributing/upstream_limitations.md scopes itself to TinyDB and Pydantic (line 5). Whether docs-toolchain friction belongs on that page is a maintainer call, and the same question covers the existing mkdocstrings-python issue #131, which is also absent from it. Three options:

  1. Widen the page to a third section for the docs toolchain, and record both this and upstream(mkdocstrings-python): merge_init_into_class labels inherited __init__ with a .venv path #131 there.
  2. Keep the page scoped to runtime dependencies and state that scope explicitly, moving the two-artifact obligation for toolchain friction to issues alone.
  3. Treat the Cloudflare challenge as environmental rather than upstream friction, and drop the obligation for it — in which case say so on the page so the next audit does not re-raise it.

What was not done

Nothing was filed with Read the Docs or mkdocstrings, and no fix was attempted. The searches above were run; the 429 itself was not reproduced.

Found as a follow-up of the 2026-08-13 docs and docstring audit.

Assisted-by: Claude:claude-opus-5

Activity

  1. added
    documentationImprovements or additions to documentation
    upstreamTracks a defect or request in an upstream dependency
    ai-assistedCreated or investigated with help from an AI agent
    on Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ai-assistedCreated or investigated with help from an AI agentdocumentationImprovements or additions to documentationupstreamTracks a defect or request in an upstream dependency

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions