Я хочу исправить ошибку. С чего начать?

47

Хотя я не профессиональный программист, я написал программу или две. Тем не менее, в настоящее время каждый инженер и ученый также немного учатся программировать, и поэтому я привык писать программы на Python, C и MATLAB. Теперь я хочу немного рассказать об Ubuntu и его замечательных людях и исправить ошибку!

Я взглянул на список кампании по кусочкам и обнаружил, что большинство из них мне не так легко исправить, так как я подозреваю, что им требуется много времени, чтобы разобраться в этом вопросе, а у меня его нет. Тем не менее, я обнаружил этот, и он выглядит управляемым и как классная функция для меня.

Поскольку я никогда раньше не писал патчи и не выпускал программы в дикой природе, я понятия не имею, с чего начать. Каким должен быть мой первый шаг к решению этой проблемы?

Итог: где и как я могу починить этого парня?

Инго
источник
1
какой у тебя опыт? Вы знакомы с системами контроля версий? В практике упаковки?
pygabriel
Нет, еще не знаком с этим! Возможны изменения ...
Инго

Ответы:

31

Ответ на этот вопрос может быть длинным и сложным, поэтому я вместо этого собираюсь указать вам на доступные ресурсы, а не перефразировать их здесь.

Документация

  1. Подготовка к разработке Ubuntu
  2. Как исправить ошибки

Учебники

Мы проводим мероприятия на протяжении всего цикла, чтобы помочь таким же людям, как и вы, в частности, проводим Ubuntu Developer Week в IRC, которая представляет собой живое руководство и семинар «Вопросы и ответы». В конце февраля появится один, если вы хотите присоединиться!

Вот два журнала из прошлого сеанса, чтобы дать вам представление:

Места для поиска возможностей

  • Сбор урожая - этот инструмент просматривает все патчи и пакеты в Launchpad (и даже просматривает другие дистрибутивы) на наличие патчей. Многие из них можно поймать, применить, протестировать, а затем исправить в Ubuntu, а затем отправить в апстрим.
  • Cleansweep - Список патчей, находящихся на Launchpad, которые кто-то прикрепил к сообщению об ошибке. Они могут быть полезны или нет, но на них все же стоит обратить внимание.

Получать помощь

Обращение в MOTU по списку рассылки или IRC - хороший способ получить помощь по отдельным проблемам, с которыми вы столкнулись:

Обратная связь

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

Хорхе Кастро
источник
19

Обобщенный ответ Хорхе - отличное введение в процесс разработки Ubuntu, но давайте попробуем немного подробнее рассмотреть конкретную проблему ...

Основной разработчик Apport и сопровождающий Ubuntu - это одно и то же. Это немного упрощает для вас вещи. Вместо того, чтобы узнавать о системах пакетов и исправлений, самый простой путь - работать непосредственно с исходным кодом.

Разработка Apport размещена на Launchpad . Он использует распределенную систему управления версиями Bazaar для управления своим исходным кодом. Первым шагом к исправлению вашей ошибки является получение исходного кода. Если вы не пользовались базаром раньше, базар за пять минут будет хорошим началом.

Установите базар с:

sudo apt-get install bzr

Извлеките исходный код apport:

bzr branch lp:apport

Теперь вы можете начать взлом. Как и в большинстве VCS, при работе с базаром рекомендуется вносить только одно изменение за коммит. Вы также должны сделать ваши сообщения коммитов информативными. Это делает ваши изменения намного проще для обзора. Когда вы будете готовы сделать свой первый коммит, запустите:

bzr commit -m "My commit message. Did foo to bar in order to achieve baz."

Продолжайте вносить изменения и фиксировать, пока не убедитесь, что ваша ошибка исправлена. С вашим последним коммитом вы также можете пометить его как исправляющий ошибку, добавив --fixes lp:<bug_number>к нему команду коммита. Теперь вы готовы представить свои изменения для просмотра и включения.

Во-первых, вам нужно отправить его на Launchpad, чтобы сделать его общедоступным:

bzr push lp:~<launchpad_username>/apport/<branch_name>

Ваш филиал теперь можно найти по адресу:

https://code.launchpad.net/~<launchpad_username>/apport/<branch_name>/

Запуск bzr lp-openв ветке откроет это место в браузере.

Теперь мы хотим предложить слияние. На этой странице выберите «Предложить слияние».

предложить для слияния

На следующей странице выберите целевую ветку и дайте обзор ваших изменений.

описать слияние

Теперь у вас будет активное предложение о слиянии.

активный обзор

Сопровождающие рассмотрят ваши изменения. Если они уместны, они будут объединены и будут доступны в следующем выпуске. В качестве альтернативы, в предложении может быть указано «Требуется работа», и сопровождающие обсудят с вами дополнительные изменения, которые следует внести перед слиянием. Если это произойдет, пожалуйста, не воспринимайте это как личный отказ от вашей работы. При первом участии в новом проекте часто бывают такие мелочи, как стиль кодирования, о которых вы можете не знать.

andrewsomething
источник