Skip to content

docs(deps): DEPENDENCY_BUMP_AUDIT.md still says protobuf is capped below 7.0 and must not be raised — the tree ships >=7.36.0 #15622

Closed

Description

@mrveiss

Problem

docs/developer/DEPENDENCY_BUMP_AUDIT.md still records protobuf as blocked
below a cap the tree raised months ago:

| **protobuf** | `>=5.29.6,<7.0.0` | `7.35.1` | **High** | ... **Do not raise
the cap until grpcio/opentelemetry support protobuf 7.** |

and its "Recommended upgrade order" repeats it: "protobuf — blocked until
grpcio + opentelemetry-* drop their <7 pins"
.

The tree does not agree. requirements.txt, autobot-backend/requirements.txt
and autobot-infrastructure/shared/docker/ai-stack/requirements-ai.txt all
declare protobuf>=7.36.0,<8.0.0, and requirements.txt carries the re-derived
rationale (#15070, #10678) explaining that opentelemetry-proto and
googleapis-common-protos now declare protobuf<8.0.

Why it matters

The doc is a dated snapshot (2026-06-21), but it does not read as history — it
reads as a standing instruction, and the instruction is to not do something
that has already been done. The next person auditing a protobuf dependabot PR
against this file would conclude the tree is in violation of its own policy.

Found while fixing #15597 (raising the ansible python_security_updates
protobuf floor from >=5.29.6 to the shipped >=7.36.0,<8.0.0) — the doc was
the only remaining place still asserting the old cap.

Acceptance criteria

Activity

  1. mrveiss commented on Sep 4, 2026

    @mrveiss
    OwnerAuthor

    Closed on code evidence, verified against merged Dev_new_gui (PR #15647, 21b27bf4). The "do not raise above 7.0" instruction is gone, and the file is retitled DISCHARGED.

    The doc was wrong in a second way nobody had asked about

    The issue reported a stale number. Checking whether the reasoning still held at the new cap found the instruction had never been right:

    grpcio was never a constraint. Both deployed grpcio versions (1.83.0, 1.82.1) declare zero Requires-Dist: protobuf lines — only typing-extensions and a grpcio-tools entry behind an unselected extra. The doc told readers to wait on a package that was not gating anything.

    The cap is a mirror, not a judgement. opentelemetry-proto declares protobuf<8.0,>=5.0 and googleapis-common-protos declares protobuf<8.0.0. The ceiling read <7.0.0 because they said <7; it reads <8.0.0 because they now say <8. Both quoted verbatim and confirmed against deployed metadata in review.

    So the doc now records the mechanism — the ceiling copies the lowest upper bound protobuf's consumers declare, raised only when they publish a higher one — and tells readers to check that metadata rather than trust the sentence. Bumping the digit would have left a doc that says the right number for the wrong reason, and it would go stale again at the next bump for exactly the same cause.

    Discharged, and the scope of that word is honest

    All three deferred rows had landed: protobuf>=7.36.0,<8.0.0, reportlab>=5.0.1, structlog>=26.1.0 — each verified at every file the table names. The "Recommended upgrade order" listing protobuf as blocked is gone.

    Two stale records were deliberately excluded rather than folded in, and both are filed:

    .github/dependabot.yml had self-corrected but asserted the floor as >=7.35.1 in the present tense when it is >=7.36.0 — fixed, comments only, with versions: [">=8.0.0"] untouched. No other doc carried the cap as a standing instruction.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions