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 должным образом назначит им внесенные ими изменения.