Как стать автором
Обновить

Комментарии 12

1. Можете объяснить в чем смысл самостоятельно собирать пакеты типа bash?
2. Смотрели ли вы в сторону http://openbuildservice.org/ который как раз таки заточен под сборку пакетов и интеграцию с репозиториями?
  1. bash приведён исключительно для примера. Смысл собирать в том, что
    • Некоторые официальные сборки пакетов, увы, кривые, и их приходится пересобирать.
    • Некоторые пакеты (xfs, X11 Font Server) ранее присутствовали в дистрибутиве, а затем были исключены из него, но по-прежнему представляют интерес для пользователей.
    • Наконец, кто-то может разрабатывать своё ПО вне инфраструктуры Debian, но ориентироваться на одну конкретную ОС. Использовать для этих целей Open Build Service — перебор.
  2. Open Build Service — безусловно, хорошая штука, но так сложилось, что в своей работе я уже использую TeamCity. "Боевого" опыта использования Open Build Service у меня нет, так что сделать полноценное сравнение я не смогу.

Беда таких систем сборки конечных пакетов в следующем (мой опыт): нет пересборки по древу зависимостей. (сделать можно, но дикое усложнение и деньги, в случае TC/Bamboo). Сие ведет, в частности, к тому, что тяжело контролировать версии (когда их нужно много). Если пакетов мало, то с OBS нет никакого смысла заморачиваться. В противном случае, проще отправлять таском из CI в OBS.

Статья обалденная. Но в ней, кроме сисек, не раскрыт еще один важный момент: debian/changelog. Как он меняется? Что происходит в случае Team Upload (dch --team)? Что в случае QA Upload(dch --qa)? NMU? Как автоматически отображать релиз в ченджлоге (dch -r)?

Спасибо за оценку.


На вопрос, думаю, смогу ответить спустя какое-то время, когда наберётся достаточная статистика по dpkg (пока что не было ни одного NMU или QA Upload).


Пока что вижу, что


  • не всякий коммит сопровождается записью в debian/changelog, что странно
  • имена авторов изменения в VCS и в debian/changelog изредка различаются, что тоже странно

Думаю, надо внимательно курить специфичную для Debian литературу (Policy Guide и т. д.).


Могу порекомендовать Вам поднять сборку dpkg, используя статью в кач-ве инструкции, и убедиться во всём воочию.

А вот в этом то и проблема. Запись в ченджлоге должна быть не с каждым коммитом (может там всего лишь identetion поправили), а одна запись на одну story или один bugfix. То есть законченная задача, связанная не столько с системой контроля версий, сколько с issue-трэкером — значит он тоже должен быть в связке.

Похоже, пора переводить статью на английский и писать в debian-devel@lists.d.o с просьбой прокомментировать.

Андрей Рахматуллин из проекта Debian комментирует:


If you use dpkg-buildpackage then the specifics of the last changelog entry don't matter.
Doesn't matter потому что он говорит про «entry». Но версию то менять надо. На ее основе будет собран пакет с этой версией и отправлен в репозиторий. Если версию не поменять автоматически, то он перетрет старый пакет в репо. В результате все машины, настроенные на этот репозиторий выкинут ошибку о неконсистентной чексумме. А даже если им всем сделать apt-get clean/update, то все равно апдейтиться на эту версию они не станут, так как у них уже эта версия стоит (хотя по факту она предыдущая).

Я понял.


Т. е. вопрос скорее в контексте не continuous integration, а continuous delivery. Тогда это не вопрос ко мне или к разработчикам Debian, а задача для автора tcDebRepository, причём имеющая смысл исключительно для сборки пакетов из основной поставки Debian GNU/Linux.


Если я собираю свой пакет на своём сервере, я не вижу проблем в том, чтобы просто сделать инкремент версии в случае, эквивалентном, скажем, binNMU.


Или я что-то упустил?

Да, это откровенно continuous delivery (даже если это деливери в QA). Но .deb — это вообще continuous delivery всегда по определению :)

По поводу своего пакета — тогда врядли актуально. Я тоже собираю свои пакетики для инфраструктуры. Changelog меняю руками. Вполне хватает рук, автоматика не нужна. Все вышесказанное актуально для пакетов основного приложения, которое тестируют, деплоят и обновляют. Где важен конвейер.

Добрые у Вас названия агентов, однако. :-)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации