diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c125c20..574b575 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -94,4 +94,4 @@ release-please keeps a release pull request open, with the changelog written fro `master`; it updates the version in `pyproject.toml`, `src/muster_bridge/__init__.py` and the project's entry in `uv.lock`. Merging it creates the release and its `vX.Y.Z` tag; the workflow then builds the sdist and the wheel and publishes them to PyPI by trusted publishing from the environment `pypi`, with attestations and no stored token. -Versions stay `0.x` until Muster's first release. +Versions stay `0.x` until Muster 1.0. diff --git a/README.md b/README.md index c4ec46c..b3cf0ec 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,8 @@ pip install muster-bridge Python 3.11 or newer. The distribution is `muster-bridge`, the import package `muster_bridge`; it depends on Starlette, httpx and pydantic 2 only. The package is not on PyPI before its first release; until then, install it from -a clone (`pip install .`). Versions stay `0.x` until Muster's first release; then `1.x` speaks protocol version 1. +a clone (`pip install .`). Versions stay `0.x` until Muster 1.0. Every `0.x` release speaks protocol +version 1; a breaking protocol change would be a new protocol version, not a new library version. ## Quick start diff --git a/api/bridge.yaml b/api/bridge.yaml index bdf52f3..342a0b7 100644 --- a/api/bridge.yaml +++ b/api/bridge.yaml @@ -706,7 +706,8 @@ components: max_per_message: type: integer minimum: 2 - description: Muster sends at most this many; Snooze durations are dropped first. + description: 'Muster sends at most this many, dropping Snooze buttons first: the Snooze presets, then the + durations from the longest.' max_per_row: type: integer minimum: 1 diff --git a/src/muster_bridge/models.py b/src/muster_bridge/models.py index a3c0e60..f340698 100644 --- a/src/muster_bridge/models.py +++ b/src/muster_bridge/models.py @@ -347,7 +347,9 @@ class PollEventsParameters(BaseModel): class CapabilitiesButtons(BaseModel): max_per_message: int = Field( - ..., description="Muster sends at most this many; Snooze durations are dropped first.", ge=2 + ..., + description="Muster sends at most this many, dropping Snooze buttons first: the Snooze presets, then the durations from the longest.", + ge=2, ) max_per_row: int = Field(..., ge=1) data_max_bytes: int = Field(..., ge=64)