Участие в программном обеспечении с открытым исходным кодом может стать большим подспорьем в карьере. Многие технологические компании перечисляют вклады с открытым исходным кодом либо в качестве требования к работе, либо в качестве плюса для потенциальных кандидатов на должности инженеров. Кроме того, женщины-разработчики, согласно недавнему опросу GitHub, только около 3% участников Open Source идентифицируют себя как женщины. Помня об этих фактах, я принял решение окунуться в свое первое приключение с открытым исходным кодом.

После нескольких месяцев работы в мужестве, чтобы внести свой вклад в проект программного обеспечения с открытым исходным кодом (OSS), я сделал решительный шаг и отправил свой первый запрос на включение. Чтобы помочь другим новым участникам, пытающимся внедриться в Open Source, я собрал пошаговое руководство по выбору проекта, устранению проблемы и отправке запроса на перенос.

Шаг 0: не паникуйте

Проще сказать, чем сделать. Сделайте глубокий вдох, наденьте немного Kenny G, все будет хорошо.

Шаг 1. Найдите проект

Для меня это был, пожалуй, самый сложный шаг. Я должен был десятки раз гуглить «лучшие проекты с открытым исходным кодом для новых участников». Исходя из моего опыта, я не рекомендую использовать Google в качестве основного ресурса для поиска проектов. Вместо этого ознакомьтесь с одним из этих ресурсов:

  • Сортировка кода: на этом сайте перечислены тысячи проектов с открытым исходным кодом, которым нужны разработчики, отсортированные по количеству открытых проблем. Вы можете отфильтровать список по языку программирования и даже подписаться, чтобы ежедневно получать сообщения о проектах по электронной почте на ваш почтовый ящик. Это однозначно было моим любимым местом для исследовательских проектов; простой в использовании пользовательский интерфейс снимает нагрузку с процесса поиска.
  • GitHub - отлично подходит для новых участников: этот список меньше, чем список проектов с открытым исходным кодом на CodeTriage, но это демонстрация проектов, курируемых GitHub, которые известны тем, что приветствуют новых участников. Если вы находите огромные списки ошеломляющими, начните здесь.
  • up-for-grabs.net: Сайт со списком проектов, в которых задачи отмечены для новых участников. Вы можете отфильтровать список по тегам, таким как язык программирования или тип программного обеспечения, а в готовых предложениях отображается количество проблем новичков, открытых в настоящее время для каждого проекта. Обратной стороной является то, что этот список не является самым актуальным, а некоторые из показанных проектов не очень активны.

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

Теперь, когда у вас есть проект, переходите к шагу 2.

Шаг 2. Убедитесь, что проект активен

Этот шаг довольно прост и сразу же удалит большое количество проектов. Перейдите на страницу проекта на GitHub и ответьте на этот список вопросов:

  • Сколько открытых вопросов у этого проекта? (Проверьте вкладку «Проблемы» в верхней части главной страницы проекта.)
  • Когда был отправлен последний коммит? (Проверьте страницу «Код», чтобы найти последнюю фиксацию)
  • Сколько участников? (Количество участников также будет указано на странице «Код» проекта)
  • Есть ли у проекта активный чат Slack, IRC, Gitter или других участников? (Обычно вы можете найти это в руководстве для участников проекта)

Если вы окажетесь на странице проекта, где есть только одна нерешенная проблема, а последняя фиксация была сделана шесть месяцев назад, вы не сможете найти только пару участников и ни один чат-форум участников, не связанный с проектом OSS. Вернитесь к шагу 1. Или, если вы начинаете паниковать, вернитесь к шагу 0. Дышите.

После того, как вы нашли проект со значительным количеством открытых проблем (я думаю, что 100+ - это хорошее количество, чтобы убедиться, что у вас есть множество проблем, из которых можно выбирать) и прочную базу постоянных участников, пора переходите к шагу 3.

Шаг 3. Убедитесь, что проект удобен для новичков

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

Любой проект с открытым исходным кодом, который стремится привлечь новых участников, должен иметь следующее:

  • Ясно опубликованная лицензия с открытым исходным кодом - Называть проект с открытым исходным кодом без лицензии на программное обеспечение с открытым исходным кодом - большое запрещение. Вы не хотите вносить свой код в программное обеспечение, в котором ненадлежащим образом используется термин открытый исходный код. Найдите на странице проекта GitHub файл LICENSE.md и название лицензии, указанное в заголовке проекта. Некоторые из наиболее популярных лицензий включают Apache, GNU GPL, MIT и Mozilla Public License.
  • Тщательно детализированная документация - посмотрите раздел README на странице проекта. Прочтите документацию и попробуйте следовать инструкциям по использованию программного обеспечения. Убедитесь, что вы прошли настройку и понимаете назначение программного обеспечения. Если README ссылается на другие страницы с дополнительной документацией, проверьте и эти страницы. Не торопитесь с этой частью, чтение документов может быть немного сухим и утомительным, но поможет вам стать лучшим помощником.
  • Руководство для нового участника / руководство по стилю - Вы сможете найти его в документации проекта в разделах «Примите участие», «Для авторов» или «Участие» и т. д. Это руководство предоставит вам информацию о том, что шаги, которые необходимо предпринять, чтобы внести свой первый вклад. Вы также должны увидеть рекомендации по стилю добавления кода в проект.
  • Подробная информация о рабочем процессе Git. Git - это мощный инструмент, который также может серьезно поднять ваш код, если вы используете неправильные команды. По этой причине в каждом проекте в руководстве для участников должно быть указано, как разработчики хотели бы, чтобы участники использовали git.
  • Кодекс поведения. Кодекс поведения, запрещающий дискриминацию, домогательства и полную глупость, является обязательным. Это не помешает людям время от времени грубить вам, но кодекс поведения означает, что сопровождающие с большей вероятностью уволят людей из проекта, если они нарушат правила.
  • Дискуссионный форум или групповой чат. Найдите в документации новых участников форум, где люди могут задавать вопросы, обсуждать способы решения проблем, предлагать изменения и т. д. Обычно у проектов есть канал в Slack, IRC, или Гиттер. Также присоединяйтесь к каналу и прочитайте некоторые разговоры на форуме. Уважительны ли люди? Ободряюще ли отвечают на вопросы сопровождающие? Если нет, переходите к другому проекту.
  • Проблемы, зарезервированные / отмеченные для новых участников - На вкладке «Проблемы» проекта нажмите кнопку «Ярлыки». Вы должны увидеть список меток, которые этот проект использует для обозначения проблем. В документации для новых участников должно быть указано, какие из этих ярлыков лучше всего подходят для новичков, но некоторые из наиболее распространенных ярлыков, которые вы можете встретить, - это «требуется помощь», «новичок», «сложность / низкая», «только для новичков», «новичок». «… Вы поняли.

Если в проекте, который вы изучаете, отсутствует один из этих компонентов, вернитесь к шагу 1 - в море много рыбы с открытым исходным кодом. Ах да, и не паникуйте.

Шаг 4. Познакомьтесь с git.

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

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

Шаг 5. Выберите проблему для работы

Для вашего первого запроса на вытягивание (PR) выберите небольшую проблему, которую вы полностью понимаете. Попытка стать частью сообщества проекта и изучить рабочий процесс git - достаточно стрессовая задача - не добавляйте лишнего стресса, связанного с попыткой решить сложную проблему, пытаясь прочитать незнакомую кодовую базу.

Несколько примеров отличных первых проблем:

  • Исправьте орфографическую или грамматическую ошибку
  • Исправить неработающую ссылку
  • Помогите написать проектную документацию
  • Выполните рефакторинг или добавьте комментарии к коду, чтобы следовать рекомендациям
  • Переименуйте переменные для лучшей читаемости или согласованности

Проверьте проблему на GitHub, чтобы узнать, не было ли она уже назначена или решена кем-то другим. Это убережет вас от дублирования или наступления на пальцы ног. Выбор хорошей проблемы для новичков может быть непростым шагом, потому что есть много новых участников с открытым исходным кодом, которые тестируют воду. Держись! Не сдавайся; вы найдете, над чем поработать, это требует времени и усилий.

После того, как вы выбрали проблему, большинство руководств для участников дадут инструкции о том, как попросить, чтобы вас назначили для работы над указанной проблемой. В проекте может быть бот или инструмент CI / CD, который помогает назначать проблемы. Если в документации проекта неясно, как запросить решение проблемы, спросите одного из модераторов, что делать.

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

Не паникуйте.

Шаг 6: Клонирование, разветвление и разветвление, о боже!

ОК - вернемся к git. Как упоминалось в шаге 4, каждый проект будет иметь свои собственные соглашения о передовых методах работы с git. Однако есть несколько вещей, которые вам нужно будет сделать независимо от того, какой проект вы выберете.

  • Убедитесь, что на вашем локальном компьютере установлен git. Если у вас Mac OS, менеджер пакетов homebrew сделает установку проще простого. Просто введите brew install git в командную строку вашего терминала. (Конечно, после установки homebrew.)
  • Клонируйте репозиторий вашего проекта в каталог по вашему выбору на локальном компьютере.
  • Разветвите репозиторий и добавьте пульт вашей вилки на локальный компьютер. Это позволяет вам отправлять и извлекать коммиты в вилку и обратно на GitHub.
  • Создайте новую ветку разработки для работы над выбранной вами проблемой. Не вносите изменения в файлы, находясь в основной ветке вилки.

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

Шаг 7. Устраните проблему

Если вы выбрали проблему для новичков, которую полностью понимаете, это, вероятно, будет самым простым шагом. В большом проекте может потребоваться некоторое время, чтобы найти каталог, в котором хранится ваша проблема. Здесь может быть полезна функция поиска GitHub. В репозитории проекта найдите на верхней панели навигации рядом с логотипом GitHub поле поиска с надписью «Этот репозиторий». Введите ключевые слова из вашей проблемы, например опечатку, которую вы пытаетесь исправить, или файл, содержащий искомую ошибку. Как только вы найдете нужный файл, Command F станет вашим лучшим другом.

А теперь исправьте эту ошибку / опечатку / неработающую ссылку! Это должно быть невероятно приятно теперь, когда вы потратили так много времени на шаги с 1 по 6.

Шаг 8. Зафиксируйте изменения

Сделайте себе одолжение, прежде чем вносить какие-либо изменения, выполнив быструю проверку ветки git. Как правило, вы должны вносить все изменения в ветку, созданную для назначенной задачи, а не в главную ветку. Проверяйте документацию вашего проекта на сообщения о коммитах и ​​следите за ними до «t». Некоторые проекты используют ботов для назначения, создания и закрытия проблем, и форматирование вашего сообщения о фиксации может иметь решающее значение для функциональности бота.

Перед фиксацией также неплохо проверить статус вашей ветки, чтобы узнать, нужно ли выгрузить какие-либо новые изменения из главной ветки. Как только ваша рабочая ветка будет обновлена ​​с помощью master, зафиксируйте свои изменения, отправьте код на GitHub и создайте запрос на перенос на странице проекта.

Тогда подожди ...

Шаг 9. Внесите требуемые исправления

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

Какой бы ни была ошибка, оставайтесь скромными и внимательными к отзывам. Не ругайте себя и не защищайтесь. В большинстве случаев (если ваш проект дружелюбен к новичкам) сопровождающие просят вас что-то изменить по уважительной причине. Если вам нужно пояснение, что вам нужно исправить или почему, просто спросите. Это так просто. Зафиксируйте запрошенные исправления, раздавите свои коммиты, если у вас есть несколько коммитов, относящихся к одной и той же небольшой проблеме, и снова отправьте свой код.

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

Шаг 10: праздновать

Это волнительный момент. Если вы достигли этого шага, значит ваш первый запрос на перенос был принят в проект с открытым исходным кодом! В вашем профиле GitHub на временной шкале будет отображаться праздничная картинка, так что подпрыгивайте и кричите «Ура!»

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

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