Mkimage-profiles/style
Рекомендации по стилю mkimage-profiles[править]
строгое обращение с потоками данных[править]
Желательно направление движения значений переменных и действий короткими шагами «сверху вниз» — без выдёргивания значений из соседних каталогов или путешествий сверху в самый низ различным образом).
Построение списков пакетов «на лету» обдумывается, но не подобными хаками, а скорее такими (см. создание .base; также реализована выборка пакаджлистов по произвольным булевым выражениям, включающим теги).
унификация[править]
Крайне желательно неразведение зоопарка аналогов (например, методов макроподстановки). Если вводятся новые практики или концепции, лучше предварительно обсудить задумку или реализацию в своём бранче next до того, как на новосделанное будет завязано много ценного. Если возникают конфликты мнений — давайте постараемся их разрешать, а не форкаться без планов на мерж.
повторное использование вместо дублирования[править]
Если совсем какая-то специфика, но может пригодиться и другим (косясь на mithraen@ и asterisk-1.6.[012] в m-p-d) — может иметь смысл завести «свой» namespace для списков/фич.
выбор уровня воздействия[править]
При сквозном наследовании стоит тщательно выбирать место, где уже нужно сконфигурировать то или иное свойство образа. Например, включение icewm в live-icewm.iso следует произвести на этапе конфигурации дистрибутива в conf/live.mk, а не, скажем, на этапе конфигурации фичи в features.in/live/config.mk; при этом если крупный фрагмент конфигурации является реюзабельным, может иметь смысл вынести его в отдельную фичу.
построение вместо урезания[править]
При возможности следует выбирать подход «построить из нужного», чем «добавить всякое и выбросить ненужное»: он гораздо лучше ложится на идею mkimage-profiles (создание из кусочков и минимизация непрозрачных хаков). Это позволяет надеяться на трассируемость процесса построения дистрибутива.
Вынужденным исключением на сейчас являются:
- фича install2 с зачисткой излишних модулей ядра и файлов в компактном livecd-корне инсталятора;
- фича cleanup, подготавливающая постинсталяционную зачистку лишних пакетов в свежеустановленной системе.