Вклад в проекты с открытым исходным кодом имеет много достоинств. Внося свой вклад в такой проект, вы узнаете профессиональный путь развития, который используется крупными организациями. Такие навыки оказываются очень полезными для карьеры людей и помогают им изучать вещи, которые они не могут изучать во время обучения / работы.
Эта статья была разработана для начинающих и промежуточных разработчиков, желающих внести свой вклад в проекты с открытым исходным кодом. Я продемонстрирую вклад в проект Webmaker Фонда Mozilla , чтобы объяснить, как вы можете эффективно участвовать в проектах с открытым исходным кодом.
Пример из практики: Mozilla Webmaker
Мы пройдем через весь процесс участия в проекте: от понимания принципов участия, использования учетной записи GitHub и Git до эффективного использования Bugzilla. Этот урок продемонстрирует, как вы можете объединить свои патчи с основной кодовой базой проекта. Я буду использовать пример старой и простой ошибки, которую я исправил, когда я только начал вносить вклад с открытым исходным кодом.
Прежде всего, вам нужно будет найти репозиторий проекта. Например, мы будем работать над компонентом Profile Webmaker.
https://github.com/mozilla/webmaker-profile-2
Войдите в свою учетную запись GitHub и раскройте проект. После этого у вас будет разветвленный репозиторий, расположенный под вашим именем пользователя.
Например, у меня было следующее:
https://github.com/tanay1337/webmaker-profile-2
Вам нужно будет установить Git в вашей системе. Вы можете прочитать руководство о том, как это сделать .
В нижней правой части вы увидите поле, похожее на это:
Вы можете скопировать этот URL, чтобы клонировать хранилище в вашей системе. Теперь запустите Git в режиме командной строки и введите следующую команду.
git clone https://github.com/tanay1337/webmaker-profile-2.git
Это импортирует весь код в вашу систему в папке с именем webmaker-profile-2 . Руководящие указания обычно содержатся в файле с именем CONTRIBUTING.md
а инструкции по установке находятся в README.md
. Очень внимательно прочитайте эти два документа. Они содержат важную информацию для разработчиков.
Введите Bugzilla!
Теперь вам нужно будет найти несколько важных и простых ошибок для начала. Для любых проектов, связанных с Mozilla, вы можете использовать Bugs Ahoy для поиска хороших первых ошибок, а также исправленных ошибок, специфичных для вашего набора навыков. Mozilla использует Bugzilla для регистрации ошибок и управления ими, а также для обработки запросов функций. Вы можете войти в Bugzilla, используя Persona . Как только вы найдете соответствующую ошибку, вы должны прокомментировать эту ошибку, показывая вашу заинтересованность в ее исправлении.
Вы также можете обратиться за помощью в поиске определенного файла в исходном коде, где присутствует ошибка, от разработчиков в IRC Mozilla. Это действительно дружная группа людей, которые с радостью помогут вам решить вашу первую ошибку. Если никого нет в сети, попробуйте добавить needinfo
флаг для наставника, упомянутого в баге, и он вернется, чтобы помочь вам!
Теперь, предполагая, что вы исправили ошибку и внесли соответствующие изменения в файлы локально, вам нужно будет просмотреть файлы, которые были изменены локально с помощью системы контроля версий. Просто введите следующую команду в webmaker-profile-2
.
git status
Это даст подробную информацию об измененных файлах, а также о новых файлах, которые были добавлены в локальный репозиторий. Если вы удовлетворены файлами, которые были изменены, добавьте измененные / новые файлы в область подготовки.
git add names_of_files
Если все идет хорошо, то вы можете смело фиксировать файлы.
git commit -m " Your message here "
Очистка журнала коммитов и отправка изменений
Убедитесь, что ваш коммит не содержит ненужных пробелов или новых строк. Хорошей практикой считается называть сообщение чем-то вроде «Исправление ошибки 1040556», по причинам, которые я объясню вам позже в этой статье. Сопровождающие хранилища предпочитают, если у вас есть один коммит на запрос на извлечение. Итак, если у вас есть более одного коммита локально, вы должны перебазировать их.
git rebase -i HEAD~2
Приведенная выше команда предполагает, что у вас есть две фиксации, и -i
— флаг для интерактивной перебазировки. Он покажет две фиксации вместе с их сообщениями, к которым будет добавлен префикс pick
слова. Просто замените pick
на squash
на одном из коммитов, и все готово. Следующий экран просто объединяет сообщения коммита.
Поздравляем, вы успешно отклонили коммиты. Теперь вам просто нужно отправить изменения в ваш репозиторий GitHub.
git push
Или, если вы уже выдвинули первый коммит и выполнили его повторную перезагрузку, попробуйте следующую команду.
git push -f
Открытие запроса на извлечение
Теперь откройте свой онлайн-репозиторий и нажмите кнопку « Запросы на извлечение» и откройте новый запрос на извлечение.
Он автоматически заполняет заголовок запроса на получение из сообщения фиксации и показывает разницу (на рисунке ниже показан результат сравнения для моего запроса на получение).
Поздравляем, вы сделали свой первый запрос на извлечение. Но вам все равно нужно сделать еще несколько вещей. Скопируйте URL-адрес вашего запроса и откройте ошибку в Bugzilla. Выберите Добавить вложение и вставьте туда URL-адрес запроса на получение. Установите флажок с надписью patch и добавьте флаг проверки для своего наставника.
Предполагая, что ваш патч был корректным, ваш наставник объединит ваш запрос на извлечение с основным репозиторием, и ошибка будет автоматически устранена роботом github в Bugzilla (это происходит только в том случае, если имя запроса на фиксацию и извлечение содержит номер ошибки).
Нет ничего более радостного, чем видеть, как ваш код объединяется с основной кодовой базой и разворачивается на главном веб-сайте, который используется миллионами пользователей!
Я надеюсь, что вы смогли выполнить эти шаги, чтобы исправить вашу первую ошибку в Webmaker или любом другом подобном проекте с открытым исходным кодом.