Repository navigation
docs(deps): correct the stale protobuf instruction and drop the orphaned markdown declaration (#15600, #15622) - #15647
Merged
Conversation
…-ci/document.txt (#15600)
Contributor
✅ SSOT Configuration Compliance: Passing🎉 No new hardcoded values of either class — Known backlog in |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #15600, #15622
Thinking Path
Both issues are the same defect in two places: a dependency record that no
longer describes the tree. #15622 is a doc telling you not to do something the
tree did months ago; #15600 is a manifest line declaring a package nothing
installs. Neither is a code change, both are corrections to the project's
account of its own dependencies, and both were settled by the same instrument —
reading the metadata pip actually resolved into the deployed venvs rather than
reasoning from manifests. One branch, one CI run.
#15600 was not treated as a reflex removal. #15551 established the trap:
nltklooked identically removable — unimported, declared twice — but
llama-indexrequires it transitively, so deleting the declaration would have left it
installed and unpinned, strictly worse. So
markdownhad to be disproved, notassumed:
output, not a manifest.
markdownis in none of them.Requires-Dist: markdown*line across those 343 is a differentdistribution (
markdown-it-py,markdown2) or an extra nothing selects(
markdown~=3.4 ; extra == "compare").finds
Requires-Dist: nltk>=3.9.3onllama-index0.14.24 andllama-index-core. It reproduces chore(deps): nltk is declared in two manifests but imported nowhere — remove it rather than carry a permanent allowance #15551's verdict, then returns the oppositeone for
markdown.packages are absent from deployment (
llama-index-readers-file,detect-secrets,mouseinfo,opencv-python,playwright,pre-commit,pyautogui,pycryptodome,pygetwindow). Their full transitive closure waswalked from published metadata — 29 nodes, no unreachable metadata, extras
excluded — and reaches
markdownnowhere.So removal unpins nothing, which is precisely why the nltk outcome does not
apply. The reasoning is recorded at the line the way nltk's is, so the next
reader inherits the verdict instead of re-deriving it.
#15622 was not treated as a digit bump. The doc's instruction was "do not
raise the cap until grpcio/opentelemetry support protobuf 7." Checking whether
the reasoning still holds at the new cap turned up two things:
grpciowas never a constraint. Both deployed grpcio versions declarezero
Requires-Dist: protobuflines. The original instruction toldreaders to wait on a package that was never gating.
opentelemetry-protodeclaresprotobuf<8.0,>=5.0andgoogleapis-common-protosdeclaresprotobuf<8.0.0. The cap read<7.0.0because those packages said<7; itreads
<8.0.0because they now say<8.That is the difference between the right number and the right reason, so the doc
now states the rule — the ceiling copies the lowest upper bound protobuf's
consumers declare, and is raised only when they publish a higher one — and tells
the reader to check their metadata rather than trust the sentence, because that
sentence is what went stale last time. A doc that records the digit fails again
at protobuf 9.
What Changed
requirements-ci/document.txt— removedmarkdown==3.10.3; replaced withthe verdict and the evidence that settled it, mirroring the adjacent nltk note.
docs/developer/DEPENDENCY_BUMP_AUDIT.md— retitled DISCHARGED andmarked historical, since re-checking found all three deferred rows have
landed, not just protobuf (AC2):
protobuf→>=7.36.0,<8.0.0,reportlab→>=5.0.1,structlog→>=26.1.0. The "Recommended upgrade order" — whichlisted protobuf as blocked — is gone, since it described work already done.
Added the durable cap rule and the correction of the grpcio claim.
.github/dependabot.yml— two comments asserted in the present tense thatthe manifest pins
protobuf>=7.35.1,<8.0.0; it pins>=7.36.0. Corrected, andthe dangling note "the stale <7.0 rationale is raised separately for
confirmation" now records the confirmation instead of pointing at open work.
Comments only —
versions: [">=8.0.0"]was already correct and is untouched.Verification
ansible_requirements_parity_test.py/ansible_pip_parity_baseline.txt—unaffected, and checked rather than assumed. The baseline is bidirectional, so
a removal that changed a divergence would fail as loudly as a new one.
markdownis declared at no ansible pip site (the only tree-wide
markdown:hit isdocs/_config.yml's Jekyllkramdownsetting), so it never diverged, has nobaseline entry, and none goes stale. The baseline still holds zero entries.
declared_distributions.py— the removal drops the declared set byexactly one. Re-measured with a standalone replica of the oracle's algorithm
(same glob patterns, same
-r/-cinclude closure): 39 files, 200distributions, against the floor of 180 asserted in
declared_distributions_test.py:94. No count floor is approached.markdown— zero real imports tree-wide (import markdown/from markdown/importorskip); every hit inrepo_tests/,tools/and.github/workflows/is the English word or a--format markdownCLI flag.
DEPENDENCY_BUMP_AUDITby path or heading.dependabot.ymlstill parses — validated as YAML; 23 update blocks, thecount before the edit.
--no-verify.application; the venv evidence is read-only metadata, and CI is the authority.
Model Used
Claude Opus 5 (1M context)
Two discoveries filed rather than dropped, both deliberately out of scope here:
structlogfloors in the Windows NPU worker (>=23.2.0) and thelocal-setup guide (
>=24.0.0) sit 2-3 majors below the>=26.1.0the rest ofthe tree declares. Surfaced by this PR's AC2 check on the structlog row.
Excluded because raising a floor in a separately deployed component is an
install-behaviour change, not a documentation correction.
docs/deployment/DOCKER_MIGRATION_NOTES.mdis a 2025-08 planningsnapshot whose pins are uniformly stale, including
protobuf==5.29.5 (causes tensorflow conflicts)— a rationalerequirements.txtexplicitly records asdebunked and removed in bug(deps): protobuf version incompatibility with chromadb opentelemetry dependencies #3971. Found by checking whether other docs restated
the cap. Excluded because correcting one pin among a dozen equally stale ones
is worse than leaving the file uniformly dated.