Does not load on Postulo 0.3.0: the store contract moved to postulo.plugins.api #1
Labels
No labels
bug
documentation
enhancement
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Postulo/postulo-paperless#1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Observation
Against the core's
0.3.0branch (postulo@a22e7a09), the plugin does not load:The test suite stops at collection, on
StorePlugin. On an instance upgraded to 0.3.0, Postulo's registry catches the error and logsPlugin 'paperless' (store) could not be loaded. The instance keeps running and nothing more is sent to Paperless: a silent stop, visible only in the log.Against the core that
uv.lockpins (postulo@0aca8be9), all 15 tests pass. So the core moved, and nothing here noticed, because CI tests against the pin.Cause
The core now has a declared plugin surface.
postulo.plugins.apiis "Everything a plugin may import from Postulo. Nothing else is a contract" (postulo#126), and its names keep working across a minor release, with a deprecation first. postulo#129 (b3b7adfa, 9 September) moved the store contract onto it.postulo.documents.storeskeeps only Postulo's side of the arrangement.postulo.documents.stores.ExternalRefpostulo.plugins.api.ExternalRef; gone fromstorespostulo.documents.stores.StorePlugin(tests)postulo.plugins.api.StorePlugin; gone fromstorespostulo.documents.stores.DocumentMetadatapostulo.plugins.api.DocumentMetadata; still importable fromstores, by accident rather than promisepostulo.plugins.base.FieldSpec,TestResultpostulo.plugins.api;basestill has them, with no promisepostulo.plugins.http.clientpostulo.plugins.api.clientpostulo.plugins.http.DestinationRefusedWhat fixing it is
postulo.plugins.apiand nowhere else, instore.py.DestinationRefusedneeds a decision. It is how the core's client says an address was refused, but it is not a promised name yet. Either ask for it on the surface in the core, or keep importing it frompostulo.plugins.http, knowingly and with a comment saying why.uv lock --upgrade-package postulo, so CI tests against a core the plugin will actually run on. A pin that stays behind is exactly how a break like this goes green.Worth being careful about
postulo.documents.archiving,postulo.documents.models,postulo.plugins.registry,postulo.plugins.models). That is reasonable for tests that exercise the whole path, but they will move without warning. Keep them few.Classification
Bug. Does not load on Postulo 0.3.0.