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

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

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

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

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

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

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

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

  1. разветвил репо,

  2. клонировал раздвоенное репо,

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

  4. commit + push,

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

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

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


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

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

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

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

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

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

18
задан 20 November 2013 в 12:10

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 заменяется вашим номером ошибки, предполагая, что это ошибка, о которой сообщалось на Launchpad, а не где-либо еще. вместо этого.

bzr commit --fixes=lp:000000

Замечание о рабочем процессе «по умолчанию»

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

0
ответ дан 20 November 2013 в 12:10

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

  1. Создать учетную запись Launchpad. Это будет включать имя пользователя 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 .

0
ответ дан 20 November 2013 в 12:10

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

Похожие вопросы: