Repository navigation
Description
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:4The 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:
- 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.
- Keep the page scoped to runtime dependencies and state that scope explicitly, moving the two-artifact obligation for toolchain friction to issues alone.
- 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
docs: correct the usage and contributing pages