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 належним чином призначить їм внесені ними зміни.