Files
ds-galo/openspec/specs/dev-make-workflow/spec.md
T

3.6 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 выполняется именно эта цель