Ubuntu logo

Packaging Guide

7. Загрузка пакета

Как только Ваше предложение о слиянии рассмотрено и подтверждено, Вы захотите загрузить свой пакет либо в архив (если у Вас есть права), либо в свой Персональный Архив Пакетов Personal Package Archive (PPA). Также возможно Вы захотите выполнить загрузку, если спонсируете изменения, внесенные другим пользователем.

7.1. Выгрузка изменений, сделанных вами

Когда у Вас есть ветка с изменениями, которые Вы хотите загрузить, то нужно отправить это изменение обратно на исходную ветку, создать исходный пакет, а затем загрузить его.

Сначала Вам нужно убедиться, что у Вас самая последняя версия пакета в отладке древа пакета разработки:

$ cd tomboy/tomboy.dev
$ bzr pull

Это применит любые изменения, которые были внесены за время Вашей работы над фиксом. Начиная с этого момента у Вас есть несколько вариантов. Если Ваши изменения большие и Вы чувствуете, что их следует протестировать вместе с Вашими изменениями - то можно объединить их в ветке исправления багов и провести тестирование там. Если нет, то Вы можете продолжить процесс слияния в Вашей ветке исправления бага. Касательно bzr 2.5 и bzr-builddeb 2.8.1, это работает так же как и стандартная команда merge:

$ bzr merge ../bug-12345

Для более старых версий bzr можно использовать взамен команду merge-package:

$ bzr merge-package ../bug-12345

Эта команда сольёт два дерева и, возможно, сообщит о конфликтах, которые вам надо будет разрешить вручную.

Далее следует убедиться в правильности содержимого debian/changelog, то есть, что там правильно указан дистрибутив, номер версии и т.п.

Как только это сделано, Вы должны еще раз перепроверить изменения, которые хотите отправить, при помощи bzr diff. Это должно показать те же изменения, как показал бы debdiff до загрузки исходного пакета.

Следующий шаг — собрать и протестировать изменённый пакет исходного кода, как вы это обычно делаете:

$ bzr builddeb -S

Когда Вы наконец довольны своей веткой, убедитесь что отправили все изменения, а затем пометьте ветку номером версии лога изменений. Команда bzr tag сделает это автоматически, если не указано ни одного аргумента:

$ bzr tag

Этот тег сообщит импортирующему пакет, что содержимое ветка Bazaar идентично содержимому архива.

Теперь вы можете выгрузить командой push изменения обратно на Launchpad:

$ bzr push ubuntu:tomboy

(Измените место назначения, если вы выгружаете SRU или что-то подобное.)

Вам нужен один последний шаг, чтобы отправить свои изменения в Ubuntu или ваш PPA: вам нужно загрузить с помощью dput пакет исходного кода в соответствующее место. Например, чтобы загрузить изменения в PPA, сделайте следующее:

$ dput ppa:imasponsor/myppa tomboy_1.5.2-1ubuntu5_source.changes

или, если у вас есть права загрузки в основной архив:

$ dput tomboy_1.5.2-1ubuntu5_source.changes

Теперь Вы можете спокойно удалить ветвь, так как она уже объединена, и при необходимости ее можно заново скачать с Launchpad.

7.2. Поручительство над изменением

Поручительство над чьим-нибудь изменением похоже на вышеописанную процедуру, но вместо слияния из созданной вами ветки вы выполняете слияние из ветки, имеющейся в предложении слияния:

$ bzr merge lp:~subgenius/ubuntu/trusty/tomboy/bug-12345

Если при слиянии возникает множество конфликтов, возможно Вы захотите попросить разработчика их исправить. Смотрите в следующем разделе как отменить запланированное слияние.

Но если с изменениями все в порядке - подтвердите, а затем пройдите оставшуюся часть процесса загрузки:

$ bzr commit --author "Bob Dobbs <subgenius@example.com>"

7.3. Отмена выгрузки

В любое время до выполнения действия dput с исходным пакетом Вы можете отменить загрузку и откатить все изменения:

$ bzr revert

Вы можете сделать это если заметите, что требуется еще немного работы, либо если хотите попросить разработчика исправить конфликты (если выступаете его спонсором).

7.4. Поручительство над чем-нибудь и внесение своих собственных изменений

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

Если у Вас уже есть ветка, в которой Вы работаете над пакетом и Вы хотите включить все изменения - просто запустите bzr merge из этой ветки, вместо отладки пакета разработки. Затем Вы можете внести изменения и отправить, а затем продолжить работу с изменениями к пакету.

Если у Вас нет существующей ветки, но Вы знаете, что хотели бы внести изменения, основываюсь на данных разработчика, то Вы должны первым делом должны спарсить их ветку:

$ bzr branch lp:~subgenius/ubuntu/trusty/tomboy/bug-12345

затем работайте в этой новой ветке, а после этого выполните ее слияние с главной и загрузите таким образом, как если бы загружали собственную работу. Разработчик-участник все еще будет упомянут в логах изменений, и Bazaar должным образом назначит им внесенные ими изменения.