Skip to content

docs(conventions): 16 unresolved cross-references render as plain text, CI stays green #934

Description

@JarryShaw

docs/source/contributing/conventions.rst has 16 unresolved Sphinx cross-references. They render as plain literal text instead of links, and CI never notices because make html passes neither -W nor nitpicky — the build succeeds and the reference silently degrades.

Measured with an explicit nitpicky build (python -m sphinx -n -b html -j 4 docs/source/. <out>) plus a read of the rendered HTML, on af2324522:

role as written lines why it fails
:mod:pcapkit.corekit.sentinels`` 165, 168, 171, 174, 261 no API page registers that module
:class:NoValueType`` 197 unqualified, no target
:mod:aenum`` 371, 388, 536 aenum is not in intersphinx_mapping
:class:~aenum.Enum, `:class:`~aenum.StrEnum 340, 536, 701 same
:meth:~pcapkit.const.http.method.Method.get`` 444 no target
:class:~pcapkit.const.ftp.command.FEATCode`` 575, 716 ×2 no target

These split into two kinds, and the fix differs:

  • The five pcapkit.corekit.sentinels references are a genuine gap. refactor(corekit): house all four sentinels in one shared module (#911) #922 created that module as the single home for all four sentinels, and no docs/source/ page documents it — so the page that defines the sentinel convention cannot link to where the sentinels live. Adding the API page fixes five of the 16 and is the highest-value part.
  • The six aenum ones may be working as intended — aenum is deliberately absent from intersphinx_mapping. If that exclusion is deliberate, these should stop using :mod:/:class: roles and use plain literals instead, so the page stops claiming a link it cannot make. Worth a decision rather than an assumption.
  • NoValueType, Method.get and FEATCode ×3 look like plain misses — either the target needs qualifying or the API page needs the entry.

Surfaced while verifying #932, which introduces none of them: the nitpicky warning sets for af2324522 and #932's head are byte-identical. Filed separately rather than widening that PR.

Worth considering alongside the fix: adding -n to the docs build so a future unresolved reference fails CI instead of degrading silently. That is a bigger change than this issue and may want its own decision, given there are 1275 warnings on main today.

Activity

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

    bugIssues reporting a defect (set by the bug report template; a default, not an assessment)docsPull requests that change documentation only (docs: subject prefix)

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions