Review documentation ahead of the release - #35
Open
glopesdev wants to merge 1 commit into
Open
Conversation
bruno-f-cruz
approved these changes
Aug 21, 2026
glopesdev
force-pushed
the
docs-release-sweep
branch
from
August 21, 2026 23:12
8b3c10b to
58f839f
Compare
glopesdev
force-pushed
the
docs-release-sweep
branch
from
August 22, 2026 00:28
58f839f to
d88b667
Compare
glopesdev
force-pushed
the
docs-release-sweep
branch
from
August 22, 2026 01:40
d88b667 to
2ec0f92
Compare
glopesdev
force-pushed
the
docs-release-sweep
branch
from
August 22, 2026 19:43
2ec0f92 to
8448714
Compare
glopesdev
force-pushed
the
docs-release-sweep
branch
from
August 22, 2026 19:57
8448714 to
0baf902
Compare
Module-level directives for harp.protocol and harp.device.core give every public name an API page entry, replacing the per-name core directives. The address-call idiom is now documented in the harp-protocol README, showing how a register base with an address reaches a payload no schema names, such as R_UID and R_TAG. The five package READMEs gain the closing license and contribution sentence. tests/test_packaging.py asserts that each published package declares a readme, a license, classifiers, urls and authors, and that every declared license file matches the repository one, since PEP 639 requires a copy per package.
glopesdev
force-pushed
the
docs-release-sweep
branch
from
August 22, 2026 21:38
0baf902 to
b9518ac
Compare
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.
The API pages documented a fraction of what the packages export: seventy public names had no entry, including every
Register*andPayload*class,HarpParseError,Subscription,DeviceModuleandharp.data.read. Examples on the site reference those names, so the reader had nothing to click through to. That count is now zero.Two smaller gaps go with it. The address-call idiom was documented only in two private metaclass docstrings, and the packaging metadata that the previous PR fixes had nothing stopping it regressing.
Documenting every public name
Two module-level directives do most of the work,
::: harp.protocolcovering 58 names and::: harp.device.corecovering 24. The alternative was seventy individual:::lines, which drift out of date the moment anything is exported or renamed, whereas a module directive stays correct by construction.The concern with a module directive is page weight. The protocol page comes out at 131 KB with 66 anchors, against 163 KB for the device page, and the site builds in the same 3.6 seconds as before. Five names outside those two modules needed their own line,
Subscription,EventHandler,DeviceModule,DeviceModuleLikeandharp.data.read, and the seven per-nameharp.device.coredirectives are removed because the module directive was rendering them a second time.The address-call idiom
RegisterU16(0x08)andRegisterU8Array(0x10, length=16)build a one-off register for an address no schema names, which is how an out-of-schema payload is read and written. That was described nowhere public, only in two private metaclass docstrings.The new
harp-protocolsection shows the two forms, usesR_UIDat 16 andR_TAGat 17 as the motivating example, and states the two things easy to get wrong, thatlengthis keyword-only and counts elements rather than bytes, and that an already-addressed register rejects the call soWhoAmI(44)raises.The five package READMEs also gain the closing license and contribution sentence. One deviation from the house form: it links to the repository
LICENSErather thanlicenses.nuget.org/MIT, since a NuGet licence page is a strange destination from a PyPI project page.A guard for the packaging metadata
tests/test_packaging.pyasserts that each published package declares a readme, a license, classifiers, urls and authors, and that every declared license file matches the repository one. The first half is the defect the previous PR fixes, which would otherwise return unnoticed the next time a package is added. The second half is what makes the per-package license copies safe, since PEP 639 forbids a parent directory reference so the copies cannot be avoided, and nothing else prevents them drifting.The license check is derived from the
license-filesdeclaration rather than a hardcoded list, so a future published package is covered automatically andharp-benchmarks, which is internal and removed fromdistbefore publishing, is excluded without a special case.