Как отправить патч в проект Launchpad?

20

Имея опыт работы с Git / GitHub и очень мало зная о Bazaar VCS, я бы хотел периодически сообщать об ошибке проектам, размещенным на Launchpad, и даже отправлять патч. Я хотел бы сделать это «надлежащим» способом, чтобы он был готов к объединению или улучшению, не мешая.

Кажется, я не могу найти приличного простого How-to, подходящего для моих нужд.

Что я сделал до сих пор:

  1. Я создал учетную запись Launchpad,

  2. сообщил об ошибке,

  3. установлен Bazaar и настройка ключей SSH и т. д.

Теперь, если бы это был GitHub, я бы

  1. раскошелиться на репо,

  2. клонировать раздвоенный репо,

  3. создайте разумно названную ветвь и сделайте работу,

  4. совершить + нажать,

  5. создать запрос на получение с помощью GitHub WUI.

Но это не GitHub, и архитектуры Launchpad и Bazaar, похоже, сильно отличаются от своих аналогов GitHub / Git.

Так может ли добрая душа спасти меня от утопления в тоннах документов и составления простого шага, главным образом второй части? Возможно включение соответствующих команд CLI, когда они необходимы?


Изменить: Кажется, я должен уточнить, если я спрашиваю конкретно о пакетах Ubuntu (что бы это ни значило) или проекты Launchpad.

Меня не особо волнует различие между пакетами Ubuntu и пакетами не-Ubuntu. Любое программное обеспечение может быть в Ubuntu сегодня и завтра, или наоборот. Развитие - это то, что имеет гораздо большее значение, чем распространение.

Итак, я предполагал, что

  • не каждый пакет, распространяемый в Ubuntu, размещается на Launchpad,

  • существует «официальный» или «стандартный» рабочий процесс для Launchpad (хорошо, если все разработчики могут договориться об использовании Bazaar, почему большинство из них не может согласиться на исправление рабочего процесса?),

поэтому я спрашиваю о способе Launchpad, а не об Ubuntu. И я выбрал AU, потому что, поскольку пересечение обширное, я думаю, что это довольно по теме здесь.

Алоис Махдал
источник
этот краткий документ помогает? если это так, пожалуйста, не стесняйтесь расширять существующий ответ по мере необходимости doc.bazaar.canonical.com/bzr.dev/en/mini-tutorial
david.libremone

Ответы:

15

Это проект 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 никогда не было способа сделать что-то другое.

Добей
источник
8

Первоначальный ответ основан на ответе Доби здесь и ответе Хорхе Кастро на конкретный вопрос проекта. Редактирование / исправления / предложения приветствуются.

  1. Создайте учетную запись Launchpad. Это будет включать имя пользователя панели запуска ( LP-USER)

  2. Добавьте свой SSH-ключ на панель запуска по адресу https://launchpad.net/~LP-USER/+editsshkeys

  3. На панели запуска запишите название проекта ( PROJECT-NAME).

  4. Сообщить о проблеме против проекта. Выпуску будет присвоен номер ошибки ( 000000).

  5. Убедитесь, что Bazaar установлен dpkg-query -l bzr. Вы можете прочитать об интеграции Bazaar / Launchpad .

  6. Настройте bzr с помощью bzr whoami "Your Name <name@example.com>"иbzr launchpad-login LP-USER

  7. На вашей машине проверьте локальную ветку проекта

    bzr branch lp:PROJECT-NAME
    

    (Это создаст папку с именем, PROJECT-NAMEсодержащую последний код проекта.)

  8. Запустите проект. Вносить изменения. Проверьте свои изменения. (Эти шаги зависят от проекта и проблемы.)

  9. Зафиксируйте ваши изменения, включая номер ошибки ( 000000).

    bzr commit --fixes=lp:000000
    
  10. Откроется диалоговое окно фиксации, где вы можете добавить запись в журнал изменений, объясняющую ваши изменения.

  11. Нажмите ваши изменения в Launchpad. (Это создаст новую удаленную ветку, связанную с вашей учетной записью.)

    bzr push lp:~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME
    

    ( NEW-BRANCH-NAMEдолжно быть краткое описательное название исправленной проблемы / добавленной функции)

  12. Откройте ветку в вашем браузере с помощью bzr lp-openили перейдя наhttps://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/

  13. bzr lp-proposeНа последнем шаге предложите объединение с URL-адресом или из него, выбрав «Предложить слияние», добавив описание, вставив lp:PROJECT-NAMEветвь, в которую вы хотите внести предложение, и нажмите Submit.

david.libremone
источник
Вопрос: если мое «имя проекта» ubuntu/saucy/msttcorefontsя делаю bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnameили простоbzr push lp:~amandabee/msttcorefonts/actualbranchname
Аманда
Бывший: bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnameработал
Аманда