Имея опыт работы с Git / GitHub и очень мало зная о Bazaar VCS, я бы хотел периодически сообщать об ошибке проектам, размещенным на Launchpad, и даже отправлять патч. Я хотел бы сделать это «надлежащим» способом, чтобы он был готов к слиянию или улучшению, не мешая ему.
Кажется, я не могу найти приличного простого How-to, подходящего для моих нужд.
Что я сделал до сих пор:
Я создал учетную запись Launchpad,
сообщил об ошибке,
установлены Bazaar и настройки ключей SSH и т. Д.
Теперь, если бы это был GitHub, я бы
разветвил репо,
клонировал раздвоенное репо,
создать разумно названную ветвь и выполнить работу,
commit + push,
создать запрос на получение с помощью GitHub WUI.
Но это не GitHub, и архитектуры Launchpad и Bazaar, похоже, сильно отличаются от своих аналогов GitHub / Git.
Так может ли добрая душа спасти меня от утопления в тоннах документов и составления простого шага, в основном второй части? Возможно, включение соответствующих команд CLI, когда они необходимы?
Редактировать: Мне кажется, мне следует уточнить, спрашиваю ли я конкретно о пакетах Ubuntu (что бы это ни значило) или проектах Launchpad.
Меня не особо волнует различие между пакетами Ubuntu и не-Ubuntu. Любое программное обеспечение может быть в Ubuntu сегодня и завтра, или наоборот. Развитие - это то, что имеет гораздо большее значение, чем распространение.
Итак, я предполагал, что
не каждый пакет, распространяемый в Ubuntu, размещен на Launchpad,
- «официальный» или « рабочий процесс по умолчанию для Launchpad существует (хорошо, если все разработчики могут договориться об использовании Bazaar, почему большинство из них не может согласиться с рабочим процессом исправления?),
, поэтому я спрашиваю о способ Launchpad, а не способ Ubuntu. И я выбрал AU, потому что, поскольку пересечение обширное, я думаю, что это довольно по теме здесь.
Это проект Launchpad?
(Если вы уже знаете, что это проект Launchpad, вы можете пропустить это.)
Не все проекты найдены на Launchpad на самом деле размещается и разрабатывается там - некоторые являются зеркалами кода, размещенного в другом месте (GitHub / Gitorious / etc), другие - из Debian. Эти исходные источники известны как «исходящие» проекты, и обычно лучше всего отправлять исправления в исходном коде и позволять изменениям поступать «вниз по течению» в Ubuntu (обычно в следующем выпуске).
На странице проекта должно быть четко указано, размещено ли оно в другом месте или на панели запуска. Если нет, просто спросите сопровождающих проекта, как они хотят получать изменения. Некоторые исходные проекты предпочитают простые файлы патчей, другие предпочитают отправку / отправку через соответствующие хосты.
Как специальное примечание, официальные пакеты Ubuntu (программное обеспечение, хранящееся в официальных репозиториях Ubuntu, которое вы можете установить из Центра программного обеспечения) имеют несколько различных способов отправки исправлений, так как многие из этих пакетов приходят непосредственно из Debian, и в идеале должны быть исправлено там, а не только в Ubuntu. (Это совсем другой вопрос.)
Как отправить патч
Общий способ отправки патча заключается в том, что вы делаете свою ветку, фиксируете ее локально и верните его обратно на Launchpad:
bzr push lp:~user/project/branch-name
Затем вы можете предложить ветке присоединиться к родительскому элементу, от которого вы разветвились, либо через веб-сайт, либо с помощью команды bzr lp-propose
.
Если вы подали ошибку, и ваша ветка исправляет ее, обязательно сделайте следующее при фиксации, где 000000
заменяется вашим номером ошибки, предполагая, что это ошибка, о которой сообщалось на Launchpad, а не где-либо еще. вместо этого.
bzr commit --fixes=lp:000000
Замечание о рабочем процессе «по умолчанию»
Это довольно типичный типичный современный рабочий процесс , который вы можете сравнить с GitHub. Тем не менее, Launchpad существует немного дольше, поэтому этот рабочий процесс эволюционировал после факта, а не был встроен в систему с самого начала, поэтому некоторые старые проекты могут полагаться на другие методы принятия исправлений. Большинство всех новых проектов полагаются на этот рабочий процесс, хотя на GitHub всегда были «вытягивающие запросы», и люди просто использовали его по умолчанию, потому что никогда не было способа сделать что-то другое на GitHub.
Первоначальный ответ, основанный на ответе Доби здесь и ответе Хорхе Кастро на конкретный вопрос проекта. Поправки / исправления / предложения приветствуются.
Создать учетную запись Launchpad. Это будет включать имя пользователя Launchpad (LP-USER
)
Добавьте ваш SSH-ключ на панель запуска по адресу https://launchpad.net/~LP-USER/+editsshkeys
На панели запуска обратите внимание на Название проекта (PROJECT-NAME
).
Сообщить о проблеме против проекта. Выпуску будет присвоен номер ошибки (000000
).
Убедитесь, что Bazaar установлен dpkg-query -l bzr
. Вы можете прочитать об интеграции Bazaar / Launchpad .
Сконфигурируйте bzr с помощью bzr whoami "Your Name <name@example.com>"
и bzr launchpad-login LP-USER
На вашем компьютере проверьте локальную ветку проекта
bzr branch lp:PROJECT-NAME
(Это создаст папку с именем PROJECT-NAME
, содержащую последний код проекта.)
Запустите проект. Вносить изменения. Проверьте свои изменения. (Эти шаги зависят от проекта и проблемы.)
Зафиксируйте ваши изменения, включая номер ошибки (000000
).
bzr commit --fixes=lp:000000
Откроется диалоговое окно фиксации, где вы можете добавить запись в журнал изменений, объясняющую ваши изменения.
Нажмите ваши изменения в Launchpad. (Это создаст новую удаленную ветку, связанную с вашей учетной записью.)
bzr push lp:~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME
(NEW-BRANCH-NAME
должно быть кратким описательным названием исправленной проблемы / добавленной функции)
Откройте ветку в вашем браузере с помощью bzr lp-open
или перейдя на https://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/
Предложите объединение с bzr lp-propose
или из URL на последнем шаге, выбрав «Предложить для слияния ", добавив описание, вставьте в lp:PROJECT-NAME
ветку, в которую вы хотите внести предложение, и нажмите Submit kbd>.