компоненты как адресат сборки и плоский набор
- компонент — область репозитория, где выбранные слои действуют одновременно; сборка идёт по разу на компонент, у каждого своя директория копий, подписка и локальная часть, секции [components.<имя>] в манифесте - плоский набор описан как низкий конец модели, а не отдельный режим: тема с одним слоем собирается копированием, ключи оси и lang/stack не пишутся - в TODO заведён вопрос о реестре значений осей и судьбе extends:
This commit is contained in:
@@ -28,12 +28,19 @@
|
||||
| Уровень | Английский | Русский | Что там лежит |
|
||||
|---|---|---|---|
|
||||
| набор | `suite` | набор | `conventions/`, манифест набора, обвязка |
|
||||
| проект | `project` | проект | `docs/conventions/`, манифест подключения, копии |
|
||||
| проект | `project` | проект | манифест подключения, компоненты |
|
||||
| компонент | `component` | компонент | директория копий: один язык, один стек, один вид приложения |
|
||||
|
||||
`package`, `bundle`, `library` не берём: они тащат багаж менеджеров
|
||||
зависимостей — версии, разрешение, лок, — которого в модели нет. `set` не
|
||||
годится в CLI: в позиции подкоманды читается глаголом.
|
||||
|
||||
Компонент — адресат сборки: подписка принадлежит проекту, а собранный файл
|
||||
читает тот, кто правит конкретный код. Определение — область, где все
|
||||
выбранные слои действуют одновременно (`sqlite` и `postgres` — да, go и
|
||||
javascript — никогда). Уровнем CLI компонент не становится: это аргумент
|
||||
`--for`, а не подкоманда.
|
||||
|
||||
«Канон» — имя этого конкретного набора, а не термин уровня; в общих
|
||||
формулировках употребляется «набор». «Потребитель» — слово про роль
|
||||
репозитория, а не про уровень.
|
||||
@@ -55,10 +62,15 @@ convy pull пересобрать подписанное
|
||||
convy list что подключено и что можно взять
|
||||
convy check проверить форму того, что здесь
|
||||
|
||||
convy suite check целостность набора: префиксы, темы, ссылки, форма
|
||||
convy suite check целостность набора: префиксы, темы, оси, ссылки, форма
|
||||
convy suite new новая тема: шапка, префикс, запись в манифест
|
||||
```
|
||||
|
||||
Проектные команды принимают `--for <компонент>`. При одном компоненте флаг не
|
||||
нужен; при нескольких команда без него отказывает и перечисляет имена — тот
|
||||
же принцип, что и с контекстом: наугад не делается ничего. `convy list`
|
||||
группирует вывод по компонентам.
|
||||
|
||||
Граница проходит не по «проектное против наборного», а по «частое и
|
||||
повсеместное» против «только у автора». Поэтому `check` остаётся наверху:
|
||||
форма правила одна и та же, локальные правила проекта на `X`-префиксах
|
||||
@@ -84,24 +96,33 @@ convy suite new новая тема: шапка, префикс, запис
|
||||
Они расходятся по частоте, по адресату и по тому, что считается провалом.
|
||||
|
||||
**Целостность набора.** Префиксы уникальны и не переиспользованы, шапка
|
||||
совпадает с манифестом, тема объявлена и зарегистрирована, у каждого правила
|
||||
совпадает с манифестом, тема объявлена и зарегистрирована, ось объявлена
|
||||
ключами и у темы не больше одного базового слоя, у каждого правила
|
||||
модальность с нормой и обоснование либо заглушка, нумерация сплошная, ссылки
|
||||
разрешаются, путей набора в тексте конвенции нет, строка о версии языка на
|
||||
месте. Запускается в наборе при каждой правке; провал — ошибка.
|
||||
|
||||
**Установка в проект.** Манифест подключения, сборка файла темы из слоёв,
|
||||
сохранение локальной части, `READING.md` рядом с копиями. Запускается в
|
||||
проекте изредка; провал чаще означает «посмотри глазами», чем «ошибка».
|
||||
Отчёта «набор ушёл вперёд» нет: его делает `git diff` после пересборки.
|
||||
**Установка в проект.** Манифест подключения, сборка файла темы из слоёв на
|
||||
каждый компонент, сохранение локальной части, `READING.md` рядом с копиями.
|
||||
Запускается в проекте изредка; провал чаще означает «посмотри глазами», чем
|
||||
«ошибка». Отчёта «набор ушёл вперёд» нет: его делает `git diff` после
|
||||
пересборки.
|
||||
|
||||
## Что делает установка
|
||||
|
||||
Подробности — в README, раздел «Копия в репозитории». Коротко, что важно для
|
||||
реализации:
|
||||
|
||||
- сборка идёт **по разу на компонент**, в директорию `dir` из его секции;
|
||||
директории компонентов обязаны различаться — иначе копии столкнутся
|
||||
именами, и это ошибка манифеста, а не повод переименовывать файлы;
|
||||
- копия плоская, **один файл на тему**; слои идут секциями в порядке
|
||||
`arch` → язык → стек, выбор слоёв — по `lang` и `stack` из манифеста
|
||||
подключения;
|
||||
база → язык → стек, выбор слоёв — по `lang` и `stack` компонента, сверяемым
|
||||
с ключами оси в шапке слоя (META-38), а не с путём файла в наборе; слой без
|
||||
ключей оси — базовый и попадает в копию всегда;
|
||||
- набор может быть плоским: у темы один слой, ключей оси нет, `lang` и
|
||||
`stack` в компоненте отсутствуют. Отдельной ветки в коде это не требует —
|
||||
сборка из одного слоя есть копирование;
|
||||
- шапка копии — только `origin:` с именем темы; отпечатков и дат нет;
|
||||
- всё ниже маркера `<!-- conv:local -->` переживает пересборку, всё выше
|
||||
перезаписывается; маркер ставит сборщик;
|
||||
|
||||
Reference in New Issue
Block a user