docs(conventions,const): resolve part B's unresolved cross-references (#934) - #941
Conversation
|
NEEDS CHANGES at The 14 → 0 claim is confirmed exactly, by diffing warning sets rather than counts: base has exactly 14 1. 2. Nothing pins the One attribution refuted, and it was the author's own. The PR body credits the third bonus fix to "the vendor Confirmed and better than claimed on the rest: Leaving the two pre-existing |
…#934) Part B of #934: the remaining nitpicky sphinx-build misses in conventions.rst that are neither the sentinels module refs part A (#936) fixed nor the six aenum roles part C already ruled on (plain literals, since aenum's objects.inv carries zero py: objects and conf.py excludes it deliberately). * Qualified the three unqualified sentinel refs -- :class:`AbsentType`, :class:`NoValueType` and :data:`ABSENT` -- to their real dotted path under pcapkit.corekit.sentinels, so they resolve against the page #936 added. Rewrapped the two lines that grew past this file's ~88-column convention; no wording changed. * Added an autoclass entry for FEATCode to docs/source/pcapkit/const/ftp.rst, and widened the FTP Command section's intro clause to name both classes it now documents -- FEATCode is a companion of Command's, not a peer listed in the page's own overview table, so it stays folded into that section rather than getting its own heading; every other section in this file pairs one heading with one autoclass, and inventing a repeated `.. module::` for a second heading on the same submodule would be a novel shape this file has nowhere else. * Demoted Method.get and part C's six aenum roles to plain double-backtick literals: Method.get carries `:meta private:` deliberately (same pattern as Command.get, OptionType's and AppType's private get overrides), and aenum cannot be cross-referenced at all, so no target can exist for either. * Rebasing onto #940 (merged after this branch started) surfaced a seventh broken reference: #940 deleted FastBindingAcknowledgmentStatus.get outright rather than just widening it, so the :meth: role citing it in the #923 retrospective joined the unresolved set. Demoted to a plain literal too, matching the two sibling examples already written that way in the same sentence (TransportProtocol.get, Criticality.get). * Added test_ftp_featcode_doc_page_934_unit.py, pinning the new autoclass entry the way test_sentinels_doc_page_934_unit.py pins part A's page; proven to fail against the pre-fix (83c7552) page. * Added AenumRoleExclusionTests to test_conventions_doc_claims.py: pins that no :mod:/:class:/etc. role names aenum on this page (the plain-literal demotion is settled policy per conf.py, and nothing else enforced it), and that the four qualified sentinel targets stay qualified. Both assertions proven to fail against the pre-fix (83c7552) page. Nitpicky sphinx-build: conventions.rst had 14 unresolved references against 83c7552, 15 against b337cdb (this branch's rebased base) once #940's deletion is counted; all resolve here. Three more resolve as a side effect of documenting FEATCode: stale FEATCode references inside Command._unregistered_member's and Method._unregistered_member's own docstrings, plus one in a rendered `feat: Optional[FEATCode]` parameter annotation with no clear file attribution. Two pre-existing bugs inside FEATCode's own docstring are newly exposed rather than introduced -- a line-wrapped :meth: role and a reference to the vendor Command.process, deliberately excluded from vendor/ftp.rst's own :members: allowlist. FEATCode's :show-inheritance: does genuinely introduce one new warning of its own (an aenum._enum.StrEnum base that cannot resolve), joining five identical ones already present for Command/Method/etc. Recording rather than fixing any of these: out of scope for this file. mypy 321 errors/38 files, pylint 8.67/10 exit 30, isort clean -- all matching the b337cdb baseline (R0401 cyclic-import churn aside, which is non-deterministic on an unmodified tree). Targeted tests: 40 passed, 1 skipped across test_conventions_doc_claims (incl. the two new AenumRoleExclusionTests methods), test_sentinel_exports_unit, test_sentinels_doc_page_934_unit and the FEATCode page test.
291b386 to
71bf550
Compare
|
Both review items landed at
Outstanding regardless of this PR, tracked and not blocking it: |
|
Housekeeping, and it is my doing: this now reads
I am deliberately not rebasing yet. A rebase moves the head sha, and a verdict pinned to a superseded sha is worse than no verdict — the cross-review in flight is reading Nothing here needs action from you, and |
|
GOOD TO GO at You resolved the BEHIND yourself with "Update branch" ( The review corrected three of my framings, and I re-derived each before repeating it:
Also: the Not verified, stated so rather than folded away: the body's whole-build tallies ("15 misses", the three side-effect resolutions, the one new |
make pylint,make mypy,make isort)make testpasses, and a test case covers the changedocs/source/changelog/and regeneratedCHANGELOG.md, if the change is user-visibleN/A -- changelog centralised in #657
What is the purpose of your pull request?
fixfeatperfrefactortestdocscichoreDescription of your pull request and other information
Part B of #934: the unresolved
conventions.rstcross-references that are neither thesentinels module refs part A (#936) fixed nor the six
aenumroles part C already ruledon (plain literals, since
aenum'sobjects.invcarries zeropy:objects andconf.pyexcludes it deliberately). Rebased onto
#940after review; that merge deletedFastBindingAcknowledgmentStatus.getoutright, which broke a seventh reference this PRnow also fixes -- 15 misses against the current base, not 14.
pcapkit.corekit.sentinels, so they resolveagainst the page docs(corekit): add the sentinels API page so conventions.rst references resolve (#934) #936 added.
autoclassentry forFEATCodetodocs/source/pcapkit/const/ftp.rst, andwidened the section's intro clause to name both classes it documents now. Chose the
"amend the clause" option over a second heading:
FEATCodeis a companion ofCommand's, not a peer in the page's own overview table, and every other section inthis file pairs one heading with one
autoclass-- a second heading re-declaring thesame
.. module::would be a shape nowhere else in the 18const/*.rstpages uses.Method.get,FastBindingAcknowledgmentStatus.getand the sixaenumrolesto plain literals: the first two are gone/private targets,
aenumcannot becross-referenced at all -- no target can exist for any of them.
AenumRoleExclusionTeststotest_conventions_doc_claims.py, pinning that norole names
aenumon this page and that the four qualified sentinel targets stayqualified -- both proven to fail against the pre-fix (
83c7552b8) page.test_ftp_featcode_doc_page_934_unit.py, pinning the newautoclassentry theway
test_sentinels_doc_page_934_unit.pypins part A's page; proven to fail againstthe pre-fix page.
Nitpicky
sphinx-build: all 15 misses (against this branch's rebased base,b337cdbc2)now resolve. Three more resolve as a side effect of documenting
FEATCode: staleFEATCodereferences insideCommand._unregistered_member's andMethod._unregistered_member's own docstrings, plus one in a renderedfeat: Optional[FEATCode]parameter annotation with no clear file attribution. Twopre-existing bugs inside
FEATCode's own docstring are newly exposed rather thanintroduced -- a line-wrapped
:meth:role and a reference to the vendorCommand.process, deliberately excluded fromvendor/ftp.rst's own:members:allowlist.
FEATCode's:show-inheritance:does genuinely introduce one new warningof its own (an
aenum._enum.StrEnumbase that cannot resolve), joining five identicalones already present for
Command/Method/etc. Recording rather than fixing any ofthese: out of scope for this file.
Ran the targeted tests rather than the full
make test, which OOMs at 29 GB in thisenvironment:
test_conventions_doc_claims.py(incl. the two newAenumRoleExclusionTestsmethods),test_sentinel_exports_unit.py,test_sentinels_doc_page_934_unit.pyand the new FEATCode page test -- 40 passed, 1skipped.
mypy321 errors/38 files,pylint8.67/10 exit 30,isortclean -- all matching theb337cdbc2baseline (R0401cyclic-import churn aside, non-deterministic on anunmodified tree).