[devel] %update_desktopdb vs %update_menus [JT]

Damir Shayhutdinov =?iso-8859-1?q?damir_=CE=C1_altlinux=2Eorg?=
Чт Апр 10 15:10:40 MSD 2008


>  > Если же автор-инициатор NMU не хочет продумывать способы интеграции
>  > своего NMU в историю развития пакета и вместо этого хочет гонять
>  > робота после каждой сборки

> Дамир!
>  Вы же программист - вам должно быть это понятно.
>  Вопрос не в том, делать или не делать способы интеграции с .git,
>  а в том, сколько времени это займет.
Интеграция с git тут конечно была бы полезна. Но на самом деле вовсе
не нужно делать эту интеграцию в полном виде. По идее достаточно было
бы рассылки на личную почту патчей, которые бы потом можно было
применить командой git-am или git-apply.

>  Например, на repocop, как и предсказывает теория, ушло времени
>  ровно в три раза больше, чем то время, которого, по моей субьективной
>  оценке, хватило бы, если я писал бы repocop "для себя".
>
>  Но я это учитывал, и решил, что в силах потратить времени x3.
>  репокоп есть.
По самому инструменту претензий нет - получился он хорошим, большое спасибо!

>  Теперь робот для MNU. Это часть сложного хозяйства, писавшегося
>  долгое время, без документации, с непроработанными интерфейсами.

Проблема не в этом. Просто ранее на результаты NMU, выполненными
роботами (всякие QA-роботы, пересобирающие пакеты при смене soname
библиотеки), можно было махнуть рукой - все равно следующая пересборка
мантейнером не может "чего-то не учесть" - ведь пересборка в новом
окружении (без изменения) и была смыслом NMU.

Теперь же ты вступаешь на неисследованную территорию, когда надо
обеспечить не только пересборку пакета, но и сохранение изменений,
внесенных роботом, в последующих сборках пакета мантейнером. Если по
"человеческим" NMU с автором NMU можно как-то договориться о формате
интеграции (патч там по почте, коммит в гите или просто передать пакет
тому кто сделал NMU), то с роботом ничего не получится. Все эти
переговоры должен вести не робот, а автор робота.

При этом просто еще одно робото-NMU после пересборки мантейнером
проблему не решает, а пользователям Сизифа придется качать удвоенный
объем данных. Я считаю такое "автоNMU" неприемлемым. NMU - это
исключение, которое никогда не должно быть правилом.

>  Прежде чем писать интеграцию с .git, это все хозяйство нужно
>  привести в порядок. Продумать интерфейс, написать толковую
>  документацию. Это еще займет x2 времени от его разработки.
Да не в git'e дело.

>  Что называть конкретные даты я морально не готов.
>  Лето, осень, зима, следующий год?
>
>  А все это время пакеты так и будут лежать,
>  а по ним будут small bugs ползать...

Конкретно в этом случае (update_desktopdb) можно было бы устроить NMU,
которое было бы удобно всем.

А именно:
1) внести функциональность update_desktopdb в update_menus.
2) NMU/повесить баги на пакеты, в которых нету ни update_menus ни
update_desktopdb, но есть .desktop.
3) NMU (простая пересборка) на пакеты, которые содержат update_menus
но не содержат update_desktopdb.
4) Отметить макрос update_desktopdb как устаревший (obsolete).

Тогда договариваться об интеграции придется только с мантейнерами
пакетов, затронутых пунктом 2. Результаты NMU пакетов из пункта 3
можно смело выкинуть - они не важны.

А тест для пункта 2) - когда есть .desktop, лежит там где надо, но
нету update_menus/clean_menus - вообще можно по идее в какой-нибудь
sisyphus_check положить (или даже в rpm). Тогда мантейнер не сможет
залить неправильный пакет в репозитарий (и не сможет потерять
результаты NMU).

>  Моя позиция - меньше обещать, больше делать.
>  Что плохого в этой позиции?
Плохо тут то, что с роботом не договоришься, а пока результатом его
работы не очень удобно пользоваться. Поэтому приходится договариваться
с автором робота :)

Если хотите - я могу развернуто объяснить, почему сейчас результатом
работы робота могут воспользоваться только роботы, и что нужно
сделать, чтобы минимизировать шансы потери NMU.

>  P.S. С удовольствием приму помощь в разработке.
Я могу помочь, но для начала надо все-таки понять, в каком направлении
движется разработка.


Подробная информация о списке рассылки Devel