[devel] Оповещение мейнтейнеров об обновлениях (Was: RFC: новое поле в спек-файл)
Alexey Rusakov
=?iso-8859-1?q?ktirf_=CE=C1_altlinux=2Eorg?=
Пн Окт 3 00:49:28 MSD 2005
Судя по реакции на предыдущее письмо, я подошёл к задаче неправильно :)
Поэтому ниже описываю то, что хочу получить в итоге. Заранее прошу
прощения за многословность.
У меня много пакетов. Хочется быть в курсе обновлений апстрима для этих
пакетов. Более того, хочется предельно автоматизировать создание новых
пакетов при обновлении апстрима. Критичными для меня моментами являются
всего два: посмотреть ChangeLog апстрима; и проверить работоспособность
готового пакета. Если апстрим меняет мажорную (и даже минорную, в ряде
случаев) версию, там подход более ручной, могли измениться зависимости и
т. д. Но обновлений, когда меняется микроверсия, более чем достаточно. И
тогда хочется, чтобы всё было под рукой и всё было автоматизировано.
Предел моих немудрящих мечтаний примерно следующий. Я получаю информацию
про обновление апстрима, разглядываю ChangeLog апстрима, отправляю
письмо или как-то ещё инициирую процесс "исправление версии в
спеке-добавление записи в changelog спека-скачивание нового
тарболла-упаковка src.rpm-сборка src.rpm в hasher" и иду заниматься
своими делами. По завершении процесса меня (например, почтой) оповещают
об этом, дают линк на логи сборки и на готовые src.rpm и бинарные пакеты.
На этом мечтания не заканчиваются. Если пакет переходит к другому
человеку, вышеописанные оповещения автоматически перестают приходить ко
мне и начинают приходить к нему! (Ну хорошо, допустим, не автоматически,
допустим, он должен на это согласиться отдельным письмом или ещё как.)
То есть при передаче пакета требуется минимум усилий по перенастройке
инфраструктуры оповещений обоими человеками.
Что нужно для того, чтобы всё это работало?
1. Потребуется хранить информацию о том, где брать обновления,
привязанную к пакету. Тот же sisyphus.ru неплохо для этого подходит;
более подходящий, имхо, вариант - хранить информацию в исходном пакете
(хорошо, не внутри спека - отдельным файлом, наподобие debian/watch).
2. Нужно иметь возможность формировать RSS/Atom/Mail (ненужное
вычеркнуть) для пакетов данного конкретного мейнтейнера. Нужные для
формирования сведения должно быть можно взять из watch-файла. Это имеет
смысл встроить в Prometeus.
3. Нужно как-то обеспечить получение агентом, формирующим оповещения (то
есть, потенциально, Prometeus-сайтом) информации о смене мейнтейнера.
Это вещь в целом ортогональная, поэтому её решение можно отложить на
потом. Очевидное простое решение - следить за сменой поля Packager в
исходном пакете.
4. Нужен сборочный сервер (хотя бы один), на который можно было бы
посылать задания описанного выше вида (в идеале кроме спека ему не
должно быть нужно ничего; удалённо подписывать пакеты я, пожалуй,
побоюсь). Тоже в меру ортогональная задача - ничто не мешает
воспользоваться полученной в оповещении информацией для инициирования
этого же процесса на локальной машине. Наличие сборочного сервера, тем
не менее, порядком упростит жизнь мейнтейнеров, сидящих на дайлапе - не
нужно формировать и поддерживать на локальной машине сборочную среду. Но
это опять-таки ортогонально основной идее.
Вот. Просьба раскритиковать.
--
Alexey "Ktirf" Rusakov
Подробная информация о списке рассылки Devel