Correct the README to the plugin surface #25

Merged
tiagoagueda merged 1 commit from 10-readme-http into main 2026-11-12 04:16:39 +00:00
Owner

Closes #10

The README names postulo.plugins.api.client() instead of a module the surface check refuses, lists all twelve entry-point groups, points at the wiki's Writing-a-plugin page, and lists every place a rename touches. A test refuses the README naming any core module other than the surface.

🤖 Generated with Claude Code

Closes #10 The README names `postulo.plugins.api.client()` instead of a module the surface check refuses, lists all twelve entry-point groups, points at the wiki's Writing-a-plugin page, and lists every place a rename touches. A test refuses the README naming any core module other than the surface. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Correct the README to the plugin surface, and list every place a rename touches
Some checks failed
CI / test (pull_request) Successful in 2m52s
CI / Audit the locked dependencies (pull_request) Failing after 2m23s
70f6e8f998
This is the repository authors copy, and its README told them to use
postulo.plugins.http.client() in the sentence after the rule that forbids importing past
postulo.plugins.api; the surface check in tests/test_surface.py refuses exactly that
import. client has been on postulo.plugins.api since postulo/postulo#229, which is what
notifier.py already names. The README now says postulo.plugins.api.client().

Read against the core's main, two more statements no longer held. The entry-point groups
were four of the twelve the registry reads (base.CONNECTED_KINDS and the *_GROUP names):
all twelve are listed, with the note that the class each expects is on the surface. And
docs/PLUGINS.md is now a stub pointing at the wiki's Writing a plugin, so the README and
the "Writing a plugin" project URL point there.

"Make it yours" said only to rename the package. The distribution's name is in
pyproject.toml and in the version() call in __init__.py, and renaming one without the
other fails the import with PackageNotFoundError (or reports another plugin's version).
Step 1 now names every file a rename touches. Deriving the name with
packages_distributions() was tried and does not work: the editable install uv sync
makes records no package for the distribution, so the string stays, and a test holds it
to [project] name.

Two tests: the README names no Postulo module but the surface and postulo.plugins.testing
(it fails on the old README with postulo.plugins.http.client), and the name passed to
version() is [project] name (it fails when pyproject.toml alone is renamed).

Closes #10

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tiagoagueda force-pushed 10-readme-http from 70f6e8f998
Some checks failed
CI / test (pull_request) Successful in 2m52s
CI / Audit the locked dependencies (pull_request) Failing after 2m23s
to 97d0b4eca2
All checks were successful
CI / Audit the locked dependencies (pull_request) Successful in 2m24s
CI / test (pull_request) Successful in 3m13s
2026-11-12 02:07:25 +00:00
Compare
tiagoagueda deleted branch 10-readme-http 2026-11-12 04:16:39 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo-helloworld!25
No description provided.