Skip to content

check-doc-checkpoint's landing-source set omits include/vllm.h, so the README's ABI claim is unrepairable by the change that invalidates it #1690

Description

@localai-bot

Row: DOC-README-ABI-LANDING-SOURCE

Found while reviewing PR #1655, which repairs a README claim that had drifted two ABI versions.

README.md ## Use it as a library (C API) quotes the C ABI version straight out of the header:

llama.cpp-style C ABI (VLLM_ABI_VERSION 21, 46 exported functions)

include/vllm.h:329 reads #define VLLM_ABI_VERSION 23, so the version is two releases stale. The count is stale by one: the header carries 47 VLLM_API declaration lines, declaring 47 distinct vllm_* entry points.

(Correcting my own first figure on this: I initially wrote 51/52. 51 counts every line matching VLLM_API, which sweeps in the four lines of the #define VLLM_API visibility block, and 52 counts vllm_* identifiers anywhere in the header, including typedefs and struct fields that are not exported functions. Restricting to declaration lines gives 47 both ways. The count being off by one rather than six is the weaker half of the case for deleting it — the argument that carries is that it is a live count of one file stored in another, which goes stale on any ABI addition.)

Why it drifted, and why nobody could fix it. scripts/check-doc-checkpoint.py lists include/vllm.h in USER_USAGE_FILES, so a change to the header obliges docs/USAGE.md. It is not in LANDING_SOURCE_FILES, and the README rule is:

    if (
        README in paths
        and "landing_page" not in classes
        and claims_changed(blob(before, README), blob(after, README))
    ):

So a commit that bumps VLLM_ABI_VERSION may not touch the README in the same change — the gate refuses it for lacking a landing source. The claim can only be invalidated, never repaired, by the edit that invalidates it. That is the whole reason it reached 21 against a header reading 23.

The set's own stated criterion already admits the header. From the checker's comment:

Every other member is something the README QUOTES: the mission, the build entry point, the demo numbers, the two example mains.

include/vllm.h is that relation exactly, and it was the only such source missing.

Repair. Add include/vllm.h to LANDING_SOURCE_FILES. This admits one file, not include/ as a class, and it permits without demanding: an ordinary ABI change still owes only docs/USAGE.md. The properties tests/scripts/test_doc_checkpoint.py already pins — that a co-edited public projection and that an ordinary page under docs/ never license README churn — are unaffected and stay green.

Separately, the README should stop quoting the function count at all. A live count of one file stored inside another is a drift lock: it goes stale on any ABI addition and couples unrelated pull requests to a line they do not own. #1655 already does this half.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions