The dashboard target in `Dockerfile` installs `pip install -e ".[${INSTRUMENT},dashboard]"` (line 63), pulling the instrument extra (e.g. `essdiffraction`, `essspectroscopy`, ...) into the dashboard image.
Per `pyproject.toml`, the `[dashboard]` extra only declares `bokeh`, `holoviews`, `panel`, `param` — no instrument-specific scientific packages. The dashboard code likewise should not (and per spot-check does not) import any instrument-specific science package at startup.
If that is correct, the `${INSTRUMENT}` portion of the dashboard install is unnecessary and bloats the image with reduction packages that are never used.
Suggested action
- Verify (e.g. via the upcoming `--check` smoke test) that `pip install ".[dashboard]"` is sufficient for the dashboard to start for every supported instrument.
- If yes, change the dashboard `RUN pip install` line to drop `${INSTRUMENT}`.
- If no, document the runtime path that requires the instrument extra (and consider whether the dashboard's deps in `pyproject.toml` should be updated instead).
The dashboard target in `Dockerfile` installs `pip install -e ".[${INSTRUMENT},dashboard]"` (line 63), pulling the instrument extra (e.g. `essdiffraction`, `essspectroscopy`, ...) into the dashboard image.
Per `pyproject.toml`, the `[dashboard]` extra only declares `bokeh`, `holoviews`, `panel`, `param` — no instrument-specific scientific packages. The dashboard code likewise should not (and per spot-check does not) import any instrument-specific science package at startup.
If that is correct, the `${INSTRUMENT}` portion of the dashboard install is unnecessary and bloats the image with reduction packages that are never used.
Suggested action