Files
ds-galo/openspec/specs/dev-make-workflow/spec.md
T
iu 748143c9d7 docs(openspec): описать правки редактора, сделанные без спецификаций
Дополнены спеки ui-workspace (сворачивание кривой, живая гистограмма,
точки кривой, навигация в зуме, Space к центру), media-objects (роли edit*,
привязка отредактированной версии, отдельная очередь рендера правок),
photos (рендер по оригиналу) и dev-make-workflow (сборка WASM-модуля).
2026-10-21 20:21:59 +03:00

5.0 KiB

dev-make-workflow Specification

Purpose

Make-интерфейс разработчика: установка Android-клиента на выбранное устройство и обзор доступных целей сборки.

Requirements

Requirement: Установка Android-приложения через Make-цель

Проект SHALL предоставлять Make-цель install-android-app, которая собирает debug-APK Android-клиента и устанавливает его на выбранное устройство. Повторный запуск SHALL переустанавливать приложение без ручного удаления.

Scenario: Установка на устройство

  • WHEN цель запущена и устройство выбрано
  • THEN собирается debug-APK и устанавливается на это устройство

Scenario: Повторная установка

  • WHEN приложение уже установлено и цель запущена снова
  • THEN установка завершается успешно без ручного удаления приложения

Requirement: Выбор устройства для установки

Цель установки SHALL брать устройство из явно заданного серийного номера, а при его отсутствии — из единственного подключённого устройства. Если подключено несколько устройств и серийный номер не задан, цель SHALL напечатать список устройств и SHALL не выполнять установку.

Scenario: Серийный номер задан

  • WHEN задан серийный номер устройства
  • THEN приложение устанавливается именно на это устройство

Scenario: Единственное устройство

  • WHEN серийный номер не задан и подключено ровно одно устройство
  • THEN приложение устанавливается на него

Scenario: Несколько устройств без выбора

  • WHEN серийный номер не задан и подключено несколько устройств
  • THEN цель печатает список устройств, не выполняет установку и завершается ненулевым кодом

Scenario: Нет устройств

  • WHEN не подключено ни одного устройства
  • THEN цель сообщает об ошибке и завершается ненулевым кодом

Requirement: Обзор доступных Make-целей

Голый make (без цели) SHALL печатать список доступных целей и SHALL не запускать сборку. Любая цель, включая сборку фронтенда, SHALL оставаться доступной по явному имени.

Scenario: Голый make

  • WHEN make запущен без цели
  • THEN печатается список доступных целей, сборка не запускается

Scenario: Явная цель

  • WHEN make запущен с именем цели, например make frontend
  • THEN выполняется именно эта цель

Requirement: Сборка WASM-модуля фильтров

Фильтры правок в браузере SHALL считаться WASM-модулем, собираемым из исходников на Rust в каталоге frontend/wasm/light. Сборка фронтенда SHALL обновлять модуль перед сборкой статики. Если инструмент сборки модуля недоступен, SHALL использоваться готовый модуль из репозитория, а сборка SHALL NOT прерываться. Готовый модуль SHALL храниться в репозитории, чтобы фронтенд собирался без Rust-инструментов.

Scenario: Сборка фронтенда с модулем

  • WHEN выполняется сборка фронтенда
  • THEN перед сборкой статики обновляется WASM-модуль фильтров

Scenario: Нет Rust-инструментов

  • WHEN инструмент сборки модуля недоступен
  • THEN используется готовый модуль из репозитория, а сборка завершается успешно

Scenario: Готовый модуль в репозитории

  • WHEN репозиторий проверяется на чистоту
  • THEN собранный модуль фильтров присутствует в нём