20ee069059
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Alexander <akotenev2003@gmail.com>
3.7 KiB
3.7 KiB
План 5 — dev-tools + systemd + Lima + E2E
REQUIRED SUB-SKILL:
executing-plans+ TDD. Часть 1 (код/конфиги) — сейчас; часть 2 (поднятие Lima + прогон E2E) — по явному «ок» (тяжёлое: установка limactl + ГБ-образ + провижининг).
Goal: закрыть dev-харнесс v0.6 — валидатор манифеста (F02) + scaffolding + bad-manifest фикстуры (F04); systemd-оркестрация (A15) + Lima-конфиг + сквозной E2E (boot → сервисы → первый кадр).
Часть 1 (сейчас — хостовое/файлы)
P5.1: manifest-validator (F02) + фикстуры (F04)
crates/tools/shturman-manifest-validator(bin):validate(&Manifest) -> Vec<String>+validate_yaml; правила (plugin-sdk/F §3):idнеru.shturman.*;shturman_apiподдержан;len(tiles) ≤ ui_tiles;vehicle_read⊆ каталог data-model. CLI: путь → вывод + exit-код.fixtures/manifests/:good.yaml+bad-id-reserved/bad-api/bad-tiles-quota/bad-vehicle-read.- Тесты валидатора по фикстурам (good → пусто; bad → ожидаемая ошибка; битый YAML → Err).
P5.2: scaffolding + justfile-таргеты
templates/plugin/(валидныйmanifest.yaml+locales/ru.yaml+ минимальный README);just new-plugin <name>.justfile:validate-manifest <path>,new-plugin <name>,plugin-dev-run <path>(каркас — «нужен App-Host, v3»),sim(плейсхолдер Vehicle Sim, v2).
P5.3: systemd-юниты + Lima-конфиг + E2E-харнесс (файлы)
systemd/:shturman.target,data.mount,shturman-firstboot.service,shturman-machineid.service,shturman-{power,settings,shell}.service,dbus/ru.shturman.conf(+ dev-onlyru.shturman.dev.conf),journald-shturman.conf,zram-generator.conf,oomd-shturman.conf. Ordering:data.mount→ firstboot → machineid → dbus → power+settings → shell;Requires=+After=firstbootу сервисов;RequiresMountsFor=/data.lima/shturman.yaml: vz, Ubuntu ARM64, 4CPU/6GiB/20GiB, repo writable mount; provision: пакеты (systemd/dbus/weston+screenshooter/can-utils/rustup/python/zram-generator/fake-hwclock/шрифты),modprobe vcan+vcan0, loopback-/data+ постоянный mount + tmpfs-overlay, fake-hwclock→/data, разложитьsystemd/, включить target.justfile:vm-up/vm-down/vm-reset/vm-shell,run,e2e,shell-frame.tests/e2e/run.sh(в VM): per-unitis-active;findmnt /dataопции;busctlимена Power/Settings; fake-ACCSetAcc→AccChanged; Settings set→reboot→персист + machine-id стабилен; кадр (software-render PNG не пустой); journald volatile / zram / eMMC-прокси.
Часть 2 (по явному «ок» — тяжёлое)
just vm-up(limactl start: установка limactl + Ubuntu-образ + провижининг) →just e2e(сквозная приёмка).- По прохождении —
finishing-a-development-branch(merge/PR — спросить пользователя).
Acceptance
- Часть 1:
just ciзелёный;validate-manifestgood→ok / bad→fail;new-plugin foo→ проходит валидатор; юниты/Lima-yaml/E2E-скрипт на месте (lint shell-скрипта —shellcheckопц.). - Часть 2:
just e2eв Lima зелёный (приёмка v0.1/v0.6 + шагающий скелет, спека §9.4).