Руководство по майнтяинам ALT Linux Team

Материал из ALT Linux Wiki

Типы мейнтейнеров[1]

Можно выделить четыре типа мейнтейнеров:

  • Технический любер. Обычно программист, впридачу занявшийся поддержкой пакетов. Пишет скрипты на смеси shell, sed, C, awk, perl и lua.
  • Перфекционист. Обычно сильнодействущий администратор (реже — ммм… совсем реже), вынужденный заниматься ещё и упаковкой.
  • Экстравагантная личность. Стареющий хакер, обнаруживший, что ни Моссад, ни Горсвет не собираются оплачивать достойно его услуги, вследствие чего подавшийся в ALT Linux Team.
  • Гуманитарий. Зачастую болеющий за общее дело человек, сперва повёвшийся на провокации вида «это линукс, тебе надо — ты и делай», а затем не сразу понявший, куда именно угодил.

Как определить, к какому типу принадлежит ваш мейнтейнер?

Ситуация 0. Сборка нетривиального пакета

Технический любер.
Пишет набор скриптов для импорта из репозитория, где почти всё уже сделано.
Перфекционист.
Устраивает джихад с применением %def_with{,out} на несколько экранов и без применения шаблонов в секции %files. Активно пользуется %define _unpackaged_files_terminate_build 1.
Экстравагантная личность.
Обнаруживает, что собравшийся не так, как было задумано, пакет в общем-то тоже неплохо работает. Вздыхает, но успокаивается.
Гуманитарий.
Втихомолку правит /etc/sudoers из %post.

Ситуация 1. Кривой апстрим, не умеющий линковать своё поделие

Технический любер.
Пишет набор скриптов для мониторинга бинарных зависимостей пакетов и отправления предупреждений почтой, как вариант — для автоматического исправления пакетов. Помещает под управление cron. В результате апстрим остаётся кривым, поскольку уж это-то сообщение там точно не прочитают.
Перфекционист.
Делает однострочный патч, после чего долго и тщательно проталкивает его в апстрим.
Экстравагантная личность.
$ r=obstream; rm -rf ~/git/$r && ssh git.alt rm-db $r && echo "$r в топку" | mutt -s "$r is orphaned" devel
Гуманитарий.
Долго возмущается дискриминацией, втихую добавляет -Wl,--no-as-needed и с облегчением заливает src.rpm.

Ситуация 2. Потеря репозитория

Технический любер.
Перерабатывает средства импорта из svn и восстанавливает репозиторий заново, по ходу дела консультируясь со своей памятью.
Перфекционист.
Не найдя резервную копию, устраивает опрос мнений и не удовлетворившись даже наиболее изощрёнными вариантами — применяет самый простой и уж теперь, казалось бы, очевидный.
Экстравагантная личность.
Окончательно решает наконец заняться разведением сортовых кабачков.
Гуманитарий.
Берёт последний src.rpm из сизифа и не горюет.

Ситуация 3. Низкая производительность git.alt

Технический любер.
Затачивает gitweb, докручивает кэширование, применяет ряд других оптимизаций. Примерно на неделю этого хватает.
Перфекционист.
Пытает генерального директора, в очередной раз доказывая вообще-то важность сборочной инфраструктуры. Своего раньше или позже добивается.
Экстравагантная личность.
Занимается чем-то ещё, пока байтики неспешно путешествуют между дальними дисками и локальным.
Гуманитарий.
Замечает только тормоза при открывании некоторых ссылок из devel@.

Ситуация 4. «Глупые» багрепорты пользователей

Технический любер.
Пишет скрипт для автоматического анализа багов байесовым фильтром и автозакрытия не перебравшихся через порог осмысленности. Через некоторое время замечает, что фильтр стоило на чём-то подрессировать.
Перфекционист.
Игнорирует багрепорты, пока пристающий не предоставит веские доказательства своей квалификации, или по причине перегруженности ими.
Экстравагантная личность.
Может угробить больше времени на повышение квалификации повесившего баг, чем на собственно исправление.
Гуманитарий.
Пытается помочь; порой это получается.

Ситуация 5. Обновление версии апстрима

Технический любер.
Припоминает, не добавили ли чего незнакомого.
Перфекционист.
Изучает исходные тексты новой версии и выбирает из них только то, что ему нравится.
Экстравагантная личность.
При хорошем настроении обновляет пакет. При плохом — может и не обновлять (всё равно ведь что-то сломают и потом опять обновлять).
Гуманитарий.
По возможности обновляет пакет.


PS: все совпадения случайны, а их характер — вовсе не 1:1. :)

Ссылки