You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test(project): guard that protocol docs pages list members in class source order #2780
What #2779 realigns the member directives on the protocol .rst pages to class source order. Nothing checks that they stay that way, so the next member move can silently desync a page again. The owner chose this follow-up on #2772.
Proposal
A project test that compares, for each protocol docs page, the order of its automethod/autoattribute/autoproperty directives with the class source order, over the members the page lists. The Protocol page is exempt, since it documents ProtocolBase's members (#2772, item 3). The test must fail on a deliberate swap and pass on main after #2779.
Additional context
This is test-only. It is blocked until #2779 merges, because before then the pages are out of order on main.
Unblocked: #2779 merged (c5b9c54e8), so the protocol pages are in source order on main. A worker is writing the guard now. It is test-only, so it goes straight to main.
Landed on main as 3d45352c1. It is test-only, so it was pushed direct. tests/project/test_docs_protocol_member_order_2780_unit.py checks every protocol docs page's member directives against class source order.
An inherited member is checked against the class that defines it.
Activity
JarryShaw commentedon Nov 4, 2026
Blocked: this unblocks when #2779 merges (
gh pr view 2779 --json state -q .stateprintsMERGED). Until then the pages are out of order on main.JarryShaw commentedon Nov 4, 2026
Unblocked: #2779 merged (
c5b9c54e8), so the protocol pages are in source order on main. A worker is writing the guard now. It is test-only, so it goes straight to main.test(project): guard that protocol docs pages list members in class s…
JarryShaw commentedon Nov 4, 2026
Landed on main as
3d45352c1. It is test-only, so it was pushed direct.tests/project/test_docs_protocol_member_order_2780_unit.pychecks every protocol docs page's member directives against class source order.Protocolblock is exempt, under docs(conventions): settle the member-order page wording #2765 left open #2772 item 3. An exemption that stops matching fails the test.I checked it with a mutation of my own: swapping two
ipv4.rstdirectives makes it fail and name both members. It passes on main, under 3.14 and 3.8.docs(changelog): note the guard on the protocol pages' member order (#…