компоненты как адресат сборки и плоский набор
- компонент — область репозитория, где выбранные слои действуют одновременно; сборка идёт по разу на компонент, у каждого своя директория копий, подписка и локальная часть, секции [components.<имя>] в манифесте - плоский набор описан как низкий конец модели, а не отдельный режим: тема с одним слоем собирается копированием, ключи оси и lang/stack не пишутся - в TODO заведён вопрос о реестре значений осей и судьбе extends:
This commit is contained in:
@@ -69,7 +69,25 @@ API, а норму при этом нельзя поправить, не зад
|
||||
|
||||
# Канон и подключение
|
||||
|
||||
## 4. Пары слоёв и темы без базы
|
||||
## 4. Значения осей нигде не зарегистрированы
|
||||
|
||||
Ось теперь объявлена в шапке (META-38), но её значения не сверяются ни с чем:
|
||||
`lang: golang` вместо `lang: go` соберётся молча — слой просто не попадёт ни в
|
||||
одну копию. Это ровно та болезнь, от которой лечили тему (META-28): объявление
|
||||
без реестра проверяется только глазами.
|
||||
|
||||
Напрашивается секция в `suite.toml` рядом с `[topics.live]` и
|
||||
`[prefixes.live]` — перечень живых языков и стеков с однострочным описанием, и
|
||||
те же правила выбытия. Против: третий реестр в манифесте, а значений сегодня
|
||||
три (`go`, `ansible`, `htmx`). За: словарь общий у двух сторон — им же
|
||||
потребитель пишет `lang` и `stack` в своём компоненте, и опечатка там стоит
|
||||
столько же.
|
||||
|
||||
Заодно решается судьба `extends:`: с объявленной осью база находится сама —
|
||||
это слой той же темы без ключей оси, — так что ключ остался подсказкой
|
||||
человеку и кандидат на снятие.
|
||||
|
||||
## 5. Пары слоёв и темы без базы
|
||||
|
||||
Отложено сознательно, но список стоит держать перед глазами:
|
||||
|
||||
@@ -90,9 +108,9 @@ API, а норму при этом нельзя поправить, не зад
|
||||
- Вынос арх-ядра из `errors` и `logging` закроет две хрупкие ссылки из
|
||||
`web-ui` (стек) в go-слой — единственные ссылки стек → язык в каноне.
|
||||
|
||||
## 5. Восемь тем не прогнаны по границе
|
||||
## 6. Восемь тем не прогнаны по границе
|
||||
|
||||
Критерии границы записаны правилами (META-33 … META-36), но ни одна тема по
|
||||
Критерии границы записаны правилами (META-33 … META-37), но ни одна тема по
|
||||
ним не прочитана. Работа по одной теме: выписать вопрос темы одной фразой и
|
||||
пройти по правилам, помечая чужие.
|
||||
|
||||
@@ -103,24 +121,24 @@ API, а норму при этом нельзя поправить, не зад
|
||||
(20 символов в БД), GTIM-8 и GTIM-9 (UTC и точность в логах) выносят вердикты
|
||||
тем `db-schema` и `logging`. Остаток — представление момента, единая точка
|
||||
«сейчас», длительность и часы, не-UTC на отображении — тема настоящая. Разрез
|
||||
попутно снимает `extends: arch/time.md` из вопроса 4.
|
||||
попутно снимает `extends: arch/time.md` из вопроса 5.
|
||||
|
||||
`logging` лежит целиком в `lang/go`, хотя внутри три страта: уровень по
|
||||
адресату, «ошибка логируется один раз на границе», секреты — не про Go;
|
||||
`JSONHandler`, `stdout`, разбор через `jq`/DuckDB — про стек; SLOG-30…33
|
||||
(входящий запрос, healthcheck, 4xx) — про вид приложения (META-36), то есть
|
||||
про веб-сервис. Здесь же лежит невыделенное арх-ядро из вопроса 4.
|
||||
про веб-сервис. Здесь же лежит невыделенное арх-ядро из вопроса 5.
|
||||
|
||||
Отдельно проверить обратное: `errors` без арх-слоя — не дефект. Обработка
|
||||
отказа в плейбуке (`failed_when`, `block`/`rescue`, идемпотентность) го-шные
|
||||
правила не сужает, а решает другую задачу, значит для плейбуков это своя
|
||||
тема, а не слой в `errors` (META-35).
|
||||
|
||||
## 6. Подключение к репозиториям
|
||||
## 7. Подключение к репозиториям
|
||||
|
||||
Ничего ещё не подключено. Кандидаты — jellybit и pet-project-server.
|
||||
Понадобится: заполнить локальную часть копий тем, что сейчас в этих
|
||||
репозиториях записано по факту; обёртка в раннере (`inv conventions` /
|
||||
`task conventions`, единый интерфейс команд у трёх ansible-репозиториев);
|
||||
строка в `AGENTS.md` каждого потребителя про то, что файлы в
|
||||
`docs/conventions/` — копии.
|
||||
строка в `AGENTS.md` каждого потребителя про то, что файлы в директориях
|
||||
конвенций — копии. Компонент у обоих кандидатов один, но записывается явно.
|
||||
|
||||
Reference in New Issue
Block a user