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