Имея опыт работы с Git / GitHub и очень мало зная о Bazaar VCS, я бы хотел периодически сообщать об ошибке проектам, размещенным на Launchpad, и даже отправлять патч. Я хотел бы сделать это «надлежащим» способом, чтобы он был готов к объединению или улучшению, не мешая.
Кажется, я не могу найти приличного простого How-to, подходящего для моих нужд.
Что я сделал до сих пор:
Я создал учетную запись Launchpad,
сообщил об ошибке,
установлен Bazaar и настройка ключей SSH и т. д.
Теперь, если бы это был GitHub, я бы
раскошелиться на репо,
клонировать раздвоенный репо,
создайте разумно названную ветвь и сделайте работу,
совершить + нажать,
создать запрос на получение с помощью 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 lp-propose
команды.Если вы подали ошибку, и ваша ветвь ее исправляет, обязательно сделайте следующее при фиксации, где она
000000
будет заменена вашим номером ошибки, при условии, что это ошибка, о которой сообщалось на Launchpad, а не в другом месте.Примечание о рабочем процессе по умолчанию
Это довольно типичный современный рабочий процесс, который вы можете сравнить с GitHub. Тем не менее, Launchpad существует немного дольше, поэтому этот рабочий процесс эволюционировал после факта, а не был встроен в систему с самого начала, поэтому некоторые старые проекты могут полагаться на другие методы принятия исправлений. Большинство всех новых проектов полагаются на этот рабочий процесс, хотя на GitHub всегда присутствовали «запросы на извлечение», и люди просто использовали его по умолчанию, потому что на GitHub никогда не было способа сделать что-то другое.
источник
Первоначальный ответ основан на ответе Доби здесь и ответе Хорхе Кастро на конкретный вопрос проекта. Редактирование / исправления / предложения приветствуются.
Создайте учетную запись 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
На вашей машине проверьте локальную ветку проекта
(Это создаст папку с именем,
PROJECT-NAME
содержащую последний код проекта.)Запустите проект. Вносить изменения. Проверьте свои изменения. (Эти шаги зависят от проекта и проблемы.)
Зафиксируйте ваши изменения, включая номер ошибки (
000000
).Откроется диалоговое окно фиксации, где вы можете добавить запись в журнал изменений, объясняющую ваши изменения.
Нажмите ваши изменения в Launchpad. (Это создаст новую удаленную ветку, связанную с вашей учетной записью.)
(
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.источник
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
работал