Skip to content

v5.6.0 — V5-7 capability-request matching

Choose a tag to compare

@alexherrero alexherrero released this 19 Jun 01:09
· 69 commits to main since this release

MINOR. select_backend() now accepts a required: Capabilities | None = None keyword parameter. When provided, the resolved backend's .capabilities must satisfy every True flag — a subset check. Mismatch raises CapabilityMismatchError (new StorageSelectionError subclass) naming the backend protocol and all unsatisfied fields. Operators can pre-flight requirements without code via doctor --requires <cap1,cap2>. Zero existing callers updated. Gates: 20/20, CI green across Linux/Mac/Windows.

Added

  • CapabilityMismatchError (03aceb5) — new StorageSelectionError subclass; existing except StorageSelectionError catch sites cover it automatically.
  • select_backend(required=) (03aceb5) — subset-check of resolved backend capabilities; 8 new tests.
  • doctor --requires (5a6f94c) — pre-flight CLI flag; unknown field names rejected before backend construction; 5 new tests.

Internal

  • ADR 0013 amendment: subset-only matching is fail-loud, never a silent downgrade.
  • Closed V5-7 deferral marker in backend_selection.py module docstring.