guide: заведён META-24 — ссылка слоя на идентификаторы своей базы
- языковой и стековый слои называют идентификатор правила арх-слоя своей темы прямо в норме: подписываются темой, а не слоем, поэтому базовый слой в собранной копии присутствует всегда и ссылка не ведёт в пустоту - разрешение узкое по построению — на слои других языков и стеков не распространяется, их состав в копии зависит от манифеста - из META-21 убрано предписание ссылаться на свой слой словами «базовый слой»: слова не проверяются и не ведут к утверждению, а идентификатор ведёт
This commit is contained in:
@@ -69,9 +69,12 @@ code in this repository.
|
||||
действия — но не в самой норме. Нужен концепт соседней темы — коротко
|
||||
повторить его здесь, соседа назвать в «Почему».
|
||||
- META-21: на соседнюю конвенцию ссылаются именем темы (конвенция
|
||||
`logging`), на правило — идентификатором (`SLOG-27`), на другой слой своей
|
||||
темы — словами «базовый слой». Пути файлов канона в тексте конвенции нет
|
||||
(в обвязке — можно).
|
||||
`logging`), на правило — идентификатором (`SLOG-27`). Пути файлов канона в
|
||||
тексте конвенции нет (в обвязке — можно).
|
||||
- META-24: слой `lang/` или `stack/` называет идентификатор правила арх-слоя
|
||||
**своей** темы прямо в норме — базовый слой в собранной копии всегда рядом.
|
||||
На слои других языков и стеков это не распространяется: их состав зависит
|
||||
от манифеста.
|
||||
|
||||
## Что в каноне писать нельзя
|
||||
|
||||
|
||||
@@ -121,15 +121,30 @@ prefix: META
|
||||
### META-21. Ссылка ведёт на тему или на правило, но не на путь в каноне
|
||||
|
||||
**ДОЛЖЕН.** На соседнюю конвенцию ссылаются именем темы (конвенция
|
||||
`logging`), на конкретное правило — идентификатором (`SLOG-27`), на другой
|
||||
слой своей же темы — словами «базовый слой». Путь файла канона в тексте
|
||||
конвенции не употребляется.
|
||||
`logging`), на конкретное правило — идентификатором (`SLOG-27`); путь файла
|
||||
канона в тексте конвенции не употребляется.
|
||||
|
||||
**Почему.** В репозитории конвенция лежит собранной: слои одной темы — это
|
||||
секции одного файла, и пути `lang/go/logging.md` там не существует. Ссылка
|
||||
на путь канона умирает при сборке, причём молча — текст остаётся связным.
|
||||
Имя темы и идентификатор правила переживают и сборку, и переезд файла между
|
||||
осями.
|
||||
осями. Слой своей темы поэтому называют идентификатором его правила, а не
|
||||
словами «базовый слой»: слова не проверяются и не ведут к утверждению.
|
||||
|
||||
### META-24. Слой ссылается на идентификаторы своего базового слоя
|
||||
|
||||
**ДОПУСКАЕТСЯ.** Правило языкового или стекового слоя называет идентификатор
|
||||
правила арх-слоя своей темы прямо в норме.
|
||||
|
||||
**Почему.** Подписываются темой, а не слоем: собранный файл начинается с
|
||||
арх-слоя независимо от того, какие язык и стек выбраны, — базовое правило в
|
||||
копии всегда рядом, и ссылка на него никуда не ведёт. Повтор его концепта
|
||||
здесь заводил бы второй источник правды внутри одного документа: META-20
|
||||
требует повторять концепт там, где соседнего файла может не быть, а базовый
|
||||
слой отсутствовать не может. Остальные слои темы попадают в копию по
|
||||
манифесту, и такой гарантии у них нет — отсюда узость разрешения. Записано
|
||||
оно явно, потому что META-20 читают строже, чем он есть, и без этой строки
|
||||
базу дублируют без нужды.
|
||||
|
||||
### META-5. Расхождение кода с правилом — отступление, а не повод переписать правило
|
||||
|
||||
|
||||
+2
-2
@@ -356,8 +356,8 @@ MIGR-6 не соблюдается в легаси-таблицах `show_histor
|
||||
- заглавные модальные слова не встречаются вне правил — кроме строки о
|
||||
версии языка, которая их перечисляет по назначению;
|
||||
- префикс **чужой темы** не встречается в абзаце с модальностью (META-20);
|
||||
префикс своего же базового слоя там допустим — в собранной копии это
|
||||
соседняя секция того же файла;
|
||||
префикс арх-слоя своей темы там допустим (META-24), префикс другого языка
|
||||
или стека — нет;
|
||||
- путь файла канона не встречается в тексте конвенции (META-21).
|
||||
|
||||
Чтением, потому что машине не даётся:
|
||||
|
||||
@@ -107,21 +107,7 @@ Go-бинарь со своим релизным циклом, ставить ч
|
||||
нечего обслуживать. Сначала 4, потом 5. Разделение из вопроса 1 при этом
|
||||
дешевле заложить сразу, чем отпиливать потом.
|
||||
|
||||
## 6. META-20 и родительский слой своей темы
|
||||
|
||||
Из `lang/` и `stack/` ссылаться на идентификаторы своего же арх-слоя
|
||||
безопасно: при сборке они оказываются секциями одного файла, и ссылка
|
||||
никуда не ведёт — правило рядом. Ограничение META-20 писалось про **чужую
|
||||
тему**, так что формально это уже разрешено, и формулировка проверки в
|
||||
`LANGUAGE.md` под это исправлена.
|
||||
|
||||
Осталось решить одно: добавлять ли в META-20 явную строку **ДОПУСКАЕТСЯ**
|
||||
про родительский слой. За — правило, которое читают строже, чем оно есть,
|
||||
заставляет авторов дублировать текст без нужды. Против — норма META-20 уже
|
||||
говорит «чужой темы», и второе правило про то же место придётся держать
|
||||
согласованным с первым.
|
||||
|
||||
## 7. `WHEN`/`AND` в блоке стыка правил
|
||||
## 6. `WHEN`/`AND` в блоке стыка правил
|
||||
|
||||
Блок для стыка двух правил записан английскими словами:
|
||||
|
||||
@@ -147,7 +133,7 @@ OpenSpec. `WHEN` и `AND` — из того же набора и по той ж
|
||||
подпадают ли `WHEN`/`AND` под проверку «заглавные модальные слова не
|
||||
встречаются вне правил»: сейчас формально нет, потому что в словаре их нет.
|
||||
|
||||
## 8. Критерий «названного вреда» никого не обязывает
|
||||
## 7. Критерий «названного вреда» никого не обязывает
|
||||
|
||||
`LANGUAGE.md` говорит, что ДОЛЖЕН требует двух условий сразу: нарушение
|
||||
причиняет названный вред (критерий BCP 14) и норма проверяема машиной
|
||||
@@ -161,7 +147,7 @@ OpenSpec. `WHEN` и `AND` — из того же набора и по той ж
|
||||
META-6 её защищает. Против: критерий «вред назван» проверяется чтением, а не
|
||||
машиной, — то есть по META-6 сам он может быть только СЛЕДУЕТ.
|
||||
|
||||
## 9. Одиннадцать таблиц не прочитаны на взаимоисключительность
|
||||
## 8. Одиннадцать таблиц не прочитаны на взаимоисключительность
|
||||
|
||||
`LANGUAGE.md` объявил, что строки таблицы решений взаимоисключающи по
|
||||
умолчанию, а иной порядок объявляется явно. Объявление не делает таблицы
|
||||
@@ -176,7 +162,7 @@ META-6 её защищает. Против: критерий «вред назв
|
||||
Работа читательская, машине не даётся; в список проверок она уже записана в
|
||||
разделе «Чтением, потому что машине не даётся».
|
||||
|
||||
## 10. Возможность, записанная модальным словом
|
||||
## 9. Возможность, записанная модальным словом
|
||||
|
||||
Четвёртая категория ISO — возможность и осуществимость — ключевого слова не
|
||||
имеет: такие утверждения пишутся обычной прозой. Значит канон надо просмотреть
|
||||
|
||||
Reference in New Issue
Block a user