You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Resolved versions live in **`uv.lock`**. Install dev dependencies the same way CI does:
4
+
5
+
```bash
6
+
uv sync --extra dev
7
+
```
8
+
9
+
Before finishing Python changes, run (from repo root, with dev deps):
10
+
11
+
```bash
12
+
uv run ruff format .
13
+
uv run ruff check .
14
+
uv run mypy src/
15
+
uv run pytest
16
+
```
17
+
18
+
CI runs the same steps (see `.github/workflows/ci.yml`).
19
+
20
+
## Changelog
21
+
22
+
For user-facing work on a branch, keep **one bullet under `## Next`** that summarizes the **overall** outcome of that branch. **Add** it when you first document the change; on **later iterations** on the same branch, **edit that same bullet** if the scope or wording shifts—do **not** append extra bullets for each follow-up. Skip `CHANGELOG.md` entirely when nothing users would notice changes (refactors, tests-only, etc.).
23
+
24
+
Do **not** expand `CHANGELOG.md` with every internal or tooling-only follow-up. If the branch bullet already states the high-level theme, leave it unless the **user-visible** story changes.
25
+
26
+
## Adding a powermeter
27
+
28
+
1.**Implementation** — Add `src/astrameter/powermeter/<module>.py` with a class subclassing `Powermeter`; implement `get_powermeter_watts()` (and `wait_for_message()` only if the base default is wrong for your source).
29
+
2.**Exports** — Import and re-export the class from `src/astrameter/powermeter/__init__.py`.
30
+
3.**Config** — In `src/astrameter/config/config_loader.py`: import the class, define a `*_SECTION` string, add a `section.startswith(...)` branch in `create_powermeter()`, and a `create_*_powermeter()` factory that reads options from the section. `POWER_OFFSET` / `POWER_MULTIPLIER`, `THROTTLE_INTERVAL`, and `NETMASK` are handled globally for any section that returns a powermeter — no extra wiring unless you need something custom.
31
+
4.**Examples, docs & changelog** — Add a commented example to `config.ini.example` and a subsection under **Configuration** in `README.md`, plus one **`## Next`** bullet for the powermeter (add once, then update that bullet on follow-up iterations if needed—see **Changelog** above).
32
+
5.**Tests** — Add `src/astrameter/powermeter/<module>_test.py` (or extend existing tests) and run the commands above before finishing.
0 commit comments