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

Имея опыт работы с 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, потому что, поскольку пересечение обширное, я думаю, что это довольно по теме здесь.

2 ответа

Это проект Launchpad?

(Если вы уже знаете, что это проект Launchpad, вы можете пропустить это.)

Не все проекты, найденные на Launchpad, на самом деле размещаются и разрабатываются там - некоторые являются зеркалами кода, размещенного в другом месте (GitHub/Gitorious/etc), другие - из Debian. Эти исходные источники известны как "исходящие" проекты, и обычно лучше всего отправлять исправления в исходный код и позволять изменениям поступать "вниз по течению" в Ubuntu (обычно в следующем выпуске).

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

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

Как отправить патч

Общий способ отправки патча заключается в том, что вы делаете свою ветку, фиксируете ее локально и отправляете обратно на Launchpad:

bzr push lp:~user/project/branch-name

Затем вы можете предложить вашему филиалу объединиться с родительским, с которого вы ответили, либо через веб-сайт, либо с помощью bzr lp-propose команда.

Если вы подали ошибку, и ваша ветка исправляет ее, обязательно сделайте следующее при фиксации, где 000000 заменяется вашим номером ошибки, при условии, что это ошибка, о которой сообщалось на панели запуска, а не в другом месте.

bzr commit --fixes=lp:000000

Примечание о рабочем процессе по умолчанию

Это довольно типичный современный рабочий процесс, который вы можете сравнить с GitHub. Тем не менее, Launchpad существует немного дольше, поэтому этот рабочий процесс эволюционировал после факта, а не был встроен в систему с самого начала, поэтому некоторые старые проекты могут полагаться на другие методы принятия исправлений. Большинство всех новых проектов полагаются на этот рабочий процесс, хотя на GitHub всегда присутствовали "запросы на извлечение", и люди просто использовали его по умолчанию, потому что на GitHub никогда не было способа сделать что-то другое.

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

  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 для ветви, в которую вы хотите внести предложение, и нажмите " Отправить".

Другие вопросы по тегам