Skip to content

Latest commit

 

History

History
73 lines (55 loc) · 2.42 KB

File metadata and controls

73 lines (55 loc) · 2.42 KB

Contributing to HelioSlate

Thanks for helping improve private, local-first solar monitoring.

Before opening an issue

  • Search existing issues for the same gateway, firmware, or symptom.
  • Confirm the problem occurs on the newest release.
  • Export only HelioSlate's sanitized diagnostics when requested.
  • Remove full serial numbers, MAC addresses, certificates, email addresses, computer names, local/public IP addresses, Tailscale hostnames, and tokens from screenshots and pasted logs.

Security vulnerabilities should follow SECURITY.md, not a public issue.

Hardware compatibility requests

HelioSlate currently supports the tested PVS6 Varserver shape. A useful request for another firmware or gateway includes:

  • Vendor and exact hardware model.
  • Firmware version.
  • Whether the device is homeowner-owned and reachable on the local LAN.
  • Publicly documented read-only API material, if available.
  • The smallest possible redacted sample response needed to demonstrate a different field or payload shape.

Do not upload an entire capture. Replace device IDs and serials consistently so relationships remain testable without exposing the household.

Development setup

py -3.12 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev,build]"
npm.cmd --prefix frontend install
npm.cmd --prefix onboarding install

Before submitting a change, run:

.\.venv\Scripts\python.exe -m ruff check backend tests scripts
.\.venv\Scripts\python.exe -m mypy backend\helioslate
.\.venv\Scripts\python.exe -m pytest
npm.cmd --prefix frontend test
npm.cmd --prefix frontend run build
npm.cmd --prefix onboarding test
npm.cmd --prefix onboarding run lint
.\.venv\Scripts\python.exe scripts\check_publication_safety.py

Safety requirements

  • Keep production PVS operations read-only.
  • Preserve certificate pinning and private-network validation.
  • Never infer missing energy or silently smooth across collection gaps.
  • Keep remote viewers read-only and owner approval local to the host.
  • Add or update tests for protocol, security, collection, and history changes.
  • Use synthetic fixture data in tests, documentation, and screenshots.

Pull requests

Keep changes focused and explain:

  • What changed and why.
  • User-visible behavior.
  • Security or privacy implications.
  • Validation performed.

By contributing, you agree that your contribution is licensed under the project's MIT License.