Files
gree-controller/BUILD_REPORT.md
T
2026-08-23 21:34:07 +02:00

2.5 KiB

GREE Controller v0.3.3 - build and validation report

Scope of this release

Version 0.3.3 prepares the project for repeatable Debian/Ubuntu LXC testing and centralizes SQLite statements.

Changes include:

  • all operator-facing shell/Python utilities are under scripts/,
  • root-level dev.sh and install-lxc.sh were removed,
  • scripts/dev.sh contains the previous development workflow,
  • scripts/install.sh performs first systemd/LXC installation,
  • scripts/update.sh performs tested in-place updates with stopped SQLite backup, health check and automatic rollback,
  • scripts/service.sh wraps common service operations,
  • scripts/install-lxc.sh is a compatibility alias located inside scripts/,
  • scripts/common.sh provides shared deployment helpers,
  • docs/LXC.md documents the installed filesystem layout and update process,
  • every application SQLite statement and schema definition is now in src/queries.rs,
  • src/db.rs contains no embedded SQL statements,
  • Cargo package version updated to 0.3.3.

LXC persistent paths

/opt/gree-controller/gree-controller
/etc/gree-controller.env
/var/lib/gree-controller/gree-controller.db
/var/backups/gree-controller/<timestamp>/
/etc/systemd/system/gree-controller.service

The updater preserves /etc/gree-controller.env and backs up the stopped SQLite database before launching the new binary.

Validation performed in the packaging environment

Check Result
bash -n scripts/*.sh PASS
Python syntax for migration/HA integration PASS
JSON parsing for language packs, HA translations and manifests PASS
JavaScript syntax (node --check web/app.js) PASS
No root-level operator .sh/.py files PASS
SQL keyword scan outside src/queries.rs PASS - no SQL statements found
EN/PL localization files preserved PASS
gree_controller namespace preserved PASS

shellcheck is not installed in the packaging environment, so a shellcheck pass could not be performed.

The packaging environment also does not contain a Rust/Cargo toolchain, therefore the final compiler/type-check must be executed inside the target LXC. The provided installer does this by default.

Recommended first-install validation:

sudo ./scripts/install.sh
./scripts/service.sh status
./scripts/service.sh health

Recommended source/development validation:

./scripts/dev.sh --check

Recommended update validation with a newer archive:

sudo ./scripts/update.sh
./scripts/service.sh health