Files
hq/04-ISSUES/166-a-requirement-cannot-be-optional/00-report.md
T
jochen 623fccee23
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
Triage issues 092-208: close the fixed and the obsolete, re-check the rest
The operator asked on 2026-10-08 for the deprecated issues to be gone. In hq an issue
is closed, never deleted, so each one is resolved with its fix, closed wontfix with a
reason, or re-checked against main and the live mesh.
2026-10-08 01:31:06 +02:00

28 lines
1.1 KiB
Markdown

---
status: open
opened: 2026-09-30
located-in:
- mesh-controller internal/catalogue (requires is a list of hard requirements)
fixed-by:
amended-design:
---
# 166 — A requirement cannot be optional
## What was observed
Making every dependency on ace a provision turned soft dependencies into hard ones. grafana now
requires `influxdb-api` (a data source), ombi requires `sonarr-api`, `radarr-api` and `lidarr-api`,
home-assistant requires the Servarr APIs and `mqtt-topic`. Each is optional to the software — grafana
runs without a data source, ombi without lidarr — but a mesh without influxdb cannot assign grafana at
all, and a mesh without lidarr cannot run ombi.
## What would be right
A requirement a module can run without: resolved and bound when a provider exists, absent (with its
`${bound:…}` placeholders refused or defaulted explicitly, never rendered empty) when none does — so
the module description stays true on every mesh.
Re-checked 2026-10-08: still holds. A manifest's `requires` is still a list of hard requirements; no
optional form exists in the controller's catalogue.