Как внести свой вклад в проект с открытым исходным кодом

Участие в проектах с открытым исходным кодом имеет массу преимуществ. Вы улучшаете любимые проекты, повышаете свою квалификацию, создаете портфолио, имеете наставников и приобретаете навыки общения с людьми. Однако вы, возможно, все еще задаетесь вопросом, как именно вносить свой вклад в проекты с открытым исходным кодом.

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

Что вам нужно для участия в проектах с открытым исходным кодом

Знать основы Git

Чтобы участвовать в проектах с открытым исходным кодом, необходимо иметь опыт работы с контролем версий, поскольку большинство проектов размещаются в хранилищах контроля версий, таких как GitHub, Bitbucket и GitLab.

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

Понять анатомию проекта

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

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

  • README.md — знакомит с проектом, его назначением и основными требованиями к установке;
  • CONTRIBUTING.md — дает четкие инструкции о том, как внести свой вклад в проект;
  • ROADMAP.md — делится видением проекта и задачами, которые необходимо выполнить;
  • LICENSE.md — предоставляет информацию о повторном использовании и разрешениях, связанных с кодом;
  • Другая документация — учебники, руководства или политики управления, в зависимости от проекта.

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

После проверки этих файлов постарайтесь понять структуру проекта: узнайте об иерархии файлов и папок и их структуре именования. Наконец, уделите время тому, чтобы понять стиль кодирования проекта и стандарты кодирования.

Контрольный список перед внесением вклада

Вот удобный контрольный список, позволяющий оценить, подходит ли проект для новых участников. Проверьте проект и ответьте на следующие вопросы:

  • [Основы] Есть ли у проекта лицензия с открытым исходным кодом?
  • [Основы] Принимает ли проект активный вклад?
  • [Commit activity] Когда был последний коммит?
  • [Commit activity] Сколько вкладчиков у проекта?
  • [Commit activity] Как часто люди делают коммиты в проект?
  • [Issues] Сколько существует открытых проблем?
  • [Issues] Быстро ли мейнтейнеры реагируют на открытые проблемы?
  • [Issues] Идет ли активное обсуждение проблем?
  • [Вопросы] Являются ли вопросы свежими?
  • [Вопросы] Закрываются ли вопросы?
  • [Pull requests] Сколько открытых запросов на исправление?
  • [Pull requests] Быстро ли сопровождающие отвечают на запросы на доработку, когда они открыты?
  • [Pull requests] Идет ли активное обсуждение запросов на доработку?
  • [Pull requests] Запросы на доработку появились недавно?
  • [Pull requests] Как недавно были объединены какие-либо запросы на исправление?
  • [Welcoming] Благодарят ли сопровождающие людей за их вклад?
  • [Welcoming] Дружелюбны ли люди на форуме проблем и обсуждений?

Как внести свой вклад

Эффективное общение

Работа с другими людьми — один из самых важных навыков, которые вы приобретете в open source. Поэтому перед тем, как открыть проблему или запрос на исправление, помните о следующем:

  • Дайте контекст. Если вы столкнулись с ошибкой, объясните, что вы пытаетесь сделать и как ее воспроизвести. Если вы предлагаете новую идею, объясните, почему она будет полезна для проекта.
  • Сначала проведите исследование. Прежде чем просить о помощи, проверьте README проекта, документацию и проблемы (открытые или закрытые). Люди оценят, если вы покажете, что пытаетесь учиться.
  • Запросы должны быть короткими и прямыми. Каждый вклад требует чьей-то оценки. Во многих проектах входящих запросов больше, чем людей, готовых помочь, поэтому будьте лаконичны. Так вы увеличите вероятность того, что кто-то сможет вам помочь.
  • Все общение должно быть публичным. Не обращайтесь к сопровождающим в частном порядке, если только вам не нужно поделиться конфиденциальной информацией (например, по вопросам безопасности). Больше людей смогут узнать и извлечь пользу из вашего обмена, если вы будете вести разговор публично.
  • Задавайте вопросы, но будьте терпеливы. Не забывайте, что даже давние сопровождающие не всегда знакомы со всеми частями проекта.
  • Уважайте решения сообщества. Ваши идеи могут отличаться от приоритетов сообщества. В результате они могут предложить свои замечания или принять решение не реализовывать вашу идею.
  • Всегда исходите из добрых намерений. В проекте с открытым исходным кодом участвуют специалисты со всего мира, и иногда контекст теряется из-за различий в языках, культурах и происхождении. Будьте терпеливы и помните, что при письменном общении сложнее передать тон.

Поиск и решение проблем

В GitHub в каждом репозитории есть вкладка issues, где вы можете увидеть текущие проблемы, ошибки и вопросы. Если репозиторий хорошо поддерживается, в нем также есть метки, которые помогут вам отфильтровать проблемы. Вот несколько советов по общению с проблемами:

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

Открытие запроса на исправление

Теперь, когда вы решили проблему, пришло время открыть запрос на исправление. Сопровождающие проекта просмотрят ваши изменения, и после одобрения ваш код будет объединен в базовую ветку. Вот несколько советов по открытию запроса на исправление:

  • Проверяйте свои изменения на существующих тестах и при необходимости создавайте новые.
  • Пишите коммиты в соответствии с проблемой, которую вы решили.
  • Ссылайтесь на соответствующие проблемы или вспомогательную документацию (например, «закрывает проблемы #22»).
  • Включите скриншоты «до» и «после» (если применимо).
  • Вносите вклад, следуя стилю кодирования и стандартам проекта.

Что происходит после внесения вклада

Вы не получаете ответа

Вы проверили проект на наличие признаков активности? Тем не менее, вы можете не получить ответа даже в активных проектах. Если вы не получаете ответа уже больше недели, вы можете ответить в теме, попросив кого-нибудь написать отзыв. Если вы все еще не получили ответа, никто не может ответить.

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

Ваш вклад не принят

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

Кто-то просит внести изменения в ваш вклад

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

Ваш вклад принят

Поздравляем, вы сделали это! Вы успешно внесли вклад в открытый исходный код! И неважно, сделали ли вы свой первый вклад в открытый код или это ваш сотый вклад, наслаждайтесь моментом.

[Live Talk] Поддержание качества кода в открытом исходном коде

Смотрите, как генеральный директор и соучредитель Codacy Хайме Хорхе в эксклюзивном прямом эфире обсуждает качество кода в открытом коде с Нилсом Лохманном, основателем JSON для современного C++ на GitHub.

Оцените статью
devanswers.ru
Добавить комментарий