Mkimage/Profiles/m-p/style

Материал из ALT Linux Wiki
< Mkimage‎ | Profiles‎ | m-p
Перейти к: навигация, поиск

Рекомендации по стилю 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, подготавливающая постинсталяционную зачистку лишних пакетов в свежеустановленной системе.

Ссылки[править]