Как поучаствовать в разработке Open Source проектов, какова их роль и что они могут дать вам как разработчику?
Начнём с того, что гордое название «Open Source» носят проекты с открытым исходным кодом, которые чаще всего разрабатываются и поддерживаются силами сообщества. Это значит, что устройство и принцип работы таких проектов прозрачны, а в разработке может принять участие любой желающий.
Участие в Open Source проектах — это возможность усовершенствовать свои навыки, создавая при этом что-то новое или улучшая уже существующее. При этом не имеет значения, изучаете вы основы PHP или являетесь продвинутым C++ разработчиком — открытых проектов уйма, на любой вкус и цвет. Начинающие программисты могут не только пополнить багаж знаний, научиться работать с чужим кодом и получать фидбек от опытных программистов, но также пополнить портфолио первой серьёзной работой.
Разбираемся, как поучаствовать в Open Source проекте и не ударить в грязь лицом.
1
Тут всё зависит от ваших целей и задач. Кто-то начинает работать с Open Source, чтобы глубже изучить определённый технологический стек, кто-то — потому что сам использует тот или иной инструмент в работе и считает, что может его улучшить. Кто-то, как мы в ABBYY в случае с нашей библиотекой NeoML, сначала создаёт инструмент для решения внутренних задач, а потом понимает, что от его выхода в Open Source выиграет и компания, и сообщество. Есть разные пути — решите, какой из них больше подходит именно вам.
Работа в Open Source может дать много, если подойти к ней с умом. Навык чтения чужого кода здорово выпрямляет руки, работа с кураторами подтянет английский. А чувство, что вы приложили руку к крупному проекту (которых в Open Source достаточно), может неплохо смотивировать вас в карьерном плане.
Антон Немкин, председатель совета фонда Цифровая долина Сочи
2
Как найти Open Source проект?
Для участия в Open Source проекте самое главное — определиться со сферой собственных интересов. Это крайне важно, так как вам предстоит выбрать проект, максимально подходящий под ваши интересы и компетенции. Делается это просто. Крупнейший сайт с проектами — это Github. Там вы делаете поисковый запрос по ключевым словам, соответствующим интересам, например «javascript gamification framework». В ответ получаете список проектов, в каждом из которых вы можете поучаствовать.
Никита Буйда, основатель и ведущий разработчик Datebox.app
Очевидный ответ, который напрашивается, — зайти на GitHub. Уже на месте стоит определиться с тематикой, хотя бы с точностью до крупной области. Затем погуглить, что есть на сайте на этот счёт.
Новичку я бы посоветовал обратить внимание на GitHub Trending, где постят небольшие проекты.
Начать просто: найдите проект, который вам по зубам, и предложите свои доработки. Вообще, нередко кураторы идут навстречу новичкам и охотно разъясняют, что упрощает процесс работы.
Антон Немкин, председатель совета фонда Цифровая долина Сочи
3
На что обращать внимание при выборе проекта?
Обратите внимание на ПО, которым пользуетесь сами: во-первых, вы уже знакомы с проектом как пользователь и хорошо понимаете, что стоит улучшить или изменить; во-вторых, вы будете вносить вклад в то, что важно для вас.
- Описание проекта — интересен ли он вам? Решает ли важную (интересную) проблему? Актуальна ли тема?
- Популярность проекта. На Github это можно оценить по количеству звёзд — местному аналогу лайка.
- Посмотрите на раздел с проблемами (issues): много ли там открытых и особенно закрытых проблем? Это поможет оценить простор для творчества.
- Изучите часть описания проекта, относящуюся к сторонним разработчикам (contributing). Там, как правило, описывается простой способ, как настроить среду разработки под этот конкретный проект и прислать свои изменения. Иногда просто пишут «pull requests are welcome», то есть «ждём не дождёмся ваших исправлений и предложений».
- Насколько давно были сделаны последние изменения в проекте, активно ли идёт разработка? Если да, то ваши изменения быстро рассмотрят и, возможно, примут. Если не активно — быть может, вы захотите взять продвижение проекта в свои руки?
- Есть ли активное комьюнити? Часто у проекта может быть чат, форум или группа в соцсети, где разработчики активно обсуждают проект. Кроме того, активность можно посмотреть в комментариях к проблемам и предлагаемым изменениям.
Никита Буйда, основатель и ведущий разработчик Datebox.app
Успех взаимодействия, конечно, зависит не только от разработчика. Важно, как выстроены процессы в команде, какая рабочая атмосфера, есть ли у нового специалиста возможность использовать именно тот стек технологий, который ему интересен. При обсуждении любых вопросов в команде, в чатах не должно быть токсичности — эффективна только конструктивная критика.
Илья Башилов, руководитель Frontend-направления SimbirSoft
4
Каковы особенности Open Source разработки?
- В каждом Open Source проекте есть свои правила и ограничения для организации кода, построения архитектуры. Обычно всё это описывается в разделе contributing в README.md или в файле CONTRIBUTING.md (чаще всего находится в корне репозитория проекта).
- Среди требований нередко встречается определённый код-стиль проекта, которого надо придерживаться.
- Во многих проектах для каждого изменения требуется написание юнит-тестов. Без них изменения не принимаются.
- Естественно, всё общение между участниками проекта ведётся на английском языке через систему pull-request, в специальных чатах или даже через email рассылки. Это также чаще всего описывается в разделе contributing.
Дмитрий Зайцев, эксперт по разработке ПО компании «Рексофт»
Не стоит забывать про ведение документации. Процесс, может, не такой захватывающий и интересный, как разработка, но документация крайне важна для остальных участников проекта.
5
Каких Open Source проектов стоит избегать?
У проектов с открытым кодом есть и свои неприятные особенности:
- Разработчик проекта может вести его в никуда. И такое бывает весьма часто! Если проект всё равно хорош, то вы можете сделать ответвление (fork) и разрабатывать его в правильном, по-вашему мнению, направлении.
- Разработчик проекта может медленно отвечать. Вы видите, что обновления кода идут, но коммуникации с разработчиком никакой. Это плохой признак и знак того, что ловить здесь нечего.
- Разработчик проекта может потерять интерес и забросить код. Это можно понять по количеству нерешённых проблем в репозитории и давним обновлениям кода.
Никита Буйда, основатель и ведущий разработчик Datebox.app
6
Что стоит сделать перед тем, как принять участие в Open Source проекте?
Основной инструмент для участия в Open Source проектах — это, конечно, система контроля версий Git. Поэтому в первую очередь стоит ознакомиться с ним. Также можете испытать возможности GitHub Copilot — инструмента, который помогает разработчикам писать код.
Есть несколько важных условий для того, чтобы начинающий специалист справился с Open Source — впрочем, как и вообще с любым проектом. Требования к хардскиллам очевидны — нужно уверенно владеть выбранным стеком технологий. Софтскиллы, в свою очередь, помогают успешнее погрузиться в новый проект. Ключевые личные качества на этом этапе — дисциплина, коммуникации, готовность к командной работе, обучению и самообучению. Наконец, самому разработчику при выборе проекта стоит внимательно оценивать порог входа — в Open Source бывают такие задачи, с которыми и сеньор не сразу справится.
Илья Башилов, руководитель Frontend-направления SimbirSoft
7
А как быть с внесением изменений в проект?
Pull request — запрос на изменение кода в репозитории. Перед началом работы обязательно создайте свою ветку, в которую вы будете вносить изменения. Если речь идёт о master-ветке, любые изменения стоит вносить только после согласования с куратором проекта.
Отличной практикой будет предварительный показ вашей работы кому-нибудь, ведь вы могли что-то упустить или просто свернуть не туда. В этом случае вас могут попросить изменить что-либо в вашем PR.
8
Как начать свой Open Source проект?
Это ещё один ответ на вопрос, как поучаствовать в Open Source проекте: создайте его сами. Но для начала определитесь с целью, взвесьте все «за» и «против», убедитесь, что готовы взять на себя ответственность за труд других людей и уверенно двигаться к релизу.
Если начинать свой Open Source проект, то необходимо привлечь к нему внимание через англоязычные порталы. Самый простой вариант — публиковать ссылки на портале Reddit в нужных подразделах с тематикой «программирование». Это обеспечивает больший отклик, чем публикация на любом русскоязычном сайте. Естественно, стоит рассказать о проекте и на таких ресурсах, как Хабр, DTF и в тематических группах ВК.
Дмитрий Зайцев, эксперт по разработке ПО компании «Рексофт»
Хотелось бы знать того кто делает проект в этом вопросе Владимир правильно заметил
Заходите на гитхаб, находите интересный для себя проект, смотрите вкладку contributors, там будут человеки, которые приложили руку к его развитию.
Нашёл я баг например, откуда мне знать что это именно баг а не фича
Перефразирую: Я нашел шарик например, откуда мне знать, что это именно шарик, а не куб?
Хз, что сказать, используйте свои когнитивные способности, что бы это осознать.
Прежде чем что-то делать надо всё равно наверное согласовать
И в чем проблема? Напишите в issues, что такой-то такой-то хочу сделать такую-то штуку, считаю, что она поможет проекту. Без ответа вы вряд ли останетесь.
Получается основной вопрос где познакомится с человеком для OpenSource проекта что бы не действовать разрозненно?
Как познакомиться со столяром? Надо попасть туда, где бывают столяры, тут по аналогии.
Он может француз или немец, нуб или школьник, через github искать и налаживать контакте наверное проблематично ))
Ну что за школьный нубский вопрос?)) https://translate.google.com.ua/ в помощь, в чем проблема то?
Чтобы проникнуть в мир API документации, нам нужно подумать о примерах API документации в нашем портфолио. Портфолио является ключом к работе технического писателя API документации. Без портфолио, содержащего убедительные примеры, будет сложно найти работу по документации API.
Избегаем «Уловки-22»
Поиск опен-сорс проекта с API
Практика: Поиск проекта с необходимостью документирования API
Понимание типа API, используемого в проекте
Содействие потребует навыков работы с Git
Не недооценивайте свои писательские навыки
Дополнительное чтение
Следующие шаги
Избегаем «Уловки-22»
Предположим, у нас нет опыта работы с API документацией, но мы пытаемся получить работу техписателя API документации. Работодатели будут готовы не обращать внимания на опыт, если мы сможем продемонстрировать примеры написания документации API. Но как мы получим примеры описания API без API-документации? И без примеров API документации как мы можем получить желаемую работу? Это может показаться невозможной ситуацией.
Обойти эту «Уловку-22» очень просто: создаем примеры документации API с помощью проектов с открытым исходным кодом, в которые мы внесли свой вклад. Вот где пригодится данное практическое занятие.
Вместо того, чтобы просто завершать модули и отслеживать свои успехи в завершении курса, выполняемые нами практические занятия помогут пополнить наш портфолио примерами документации API, помогая либо получить задание по документированию API, либо выполнить домашний запуск проект по API документации.
Поиск опен-сорс проекта с API
Если у вас уже есть проект API в вашей работе, или если вы разработчик, работающий над проектом API, просто выберите свой существующий API для курсовых работ. Однако, если вы развиваете свои навыки API документации с нуля, вам нужно найти проект документации API с открытым исходным кодом, в который вы можете внести свой вклад.
Поиск подходящего проекта может быть сложной задачей, но он важен для вашего портфолио и вашего успеха в проникновении в мир документации API. К счастью, почти все проекты с открытым исходным кодом используют GitHub, и GitHub предоставляет различные теги для документации и «help wanted» для привлечения добровольцев. (Задача настолько распространена, GitHub предоставляет советы по поиску проектов с открытым исходным кодом.)
Идеальный опен-сорс проект должен отвечать следующим критериям:
- проект содержит API (не нативную библиотеку API или какой-либо другой инструмент разработчика, который не является API);
- проект нуждается в документации API;
- проект не должен быть настолько технически сложным, чтобы вы не могли его изучить. (Если вы уже знакомы с языком программирования, вы можете ориентироваться на проекты, ориентированные на этот язык.);
- Проект должен быть активным, с недавними коммитами.
👨💻 Практика: Поиск проекта с необходимостью документирования API
Для поиска нужного проекта:
- Открываем расширенный поиск GitHub
- Скроллим экран и ищем раздел Issues Options. В поле With the labels вписываем
help wanted
. Это стандартный тег, который команды используют для привлечения добровольцев в свой проект (но некоторые команды, которым нужна помощь, могут его и не использовать). Скроллим вверх и замечаем, что надпись: «Требуется помощь» автоматически заполняется в поле Advanced Search. - В поле Advanced Search добавляем ключевые слова
documentation
иapi
перед тегомhelp wanted
- Нажимаем кнопку
Search
и видим результат.
В полученном списке можно поискать проект REST API (а не API нативной библиотеки, такой как Java API). Есть ли проекты, которые выглядят интересными или перспективными? Если так, отлично. Если нет, добавляем ключевые слова и продолжаем искать.
- Если поиск на GitHub не дал подходящих проектов, можно поискать на следующих ресурсах:
- Trending GitHub projects
- Crowdforge
- Up for Grabs
- Bus Factor
- Code Triage
- Changelog
- 24-hour Pull Requests
- Programmableweb.com API directory
Примечание. Можно потратить много времени на поиск, оценку и участие в проекте с открытым исходным кодом. Для этого упражнения хорошо бы сосредоточиться на проекте, который выглядит только слегка интересным. Не обязательно сразу коммититься, это можно сделать в любое время.
- После выбора проекта пометим следующее:
- Задействован ли REST API в проекте?
- Как в проекте помечены проблемы, связанные с документацией? Например, используется ли в нем ярлык «документация»?
- Определяем текущее состояние документации проекта: является ли она надежной, скудной, обширной, есть она вообще?
- Насколько активен проект? (Какова частота коммитов?)
- Сколько участников в проекте?
Примечание: Пока не нужно связываться или взаимодействовать с командой. Мы просто собираем информацию и анализируем потребности в документации здесь.
Понимание типа API, используемого в проекте
Во время поиска проекта API, нужно понять, что существует множество различных типов API. Многие из API-интерфейсов, с которыми мы работаем, могут быть исходными библиотеками API, которые не используют веб-протоколы для выполнения запросов и ответов (как это делают API-интерфейсы REST), а скорее подключают к проекту библиотеки для конкретного языка. Если кажется, что API фокусируется на определенном языке, а документация API выглядит автоматически, скорее всего это исходная библиотека API.
С другой стороны, если документация проекта содержит основные разделы конечных точек — это API REST.
Содействие потребует навыков работы с Git
Прежде чем вносить свой вклад в опен-сорс проект, нужно понять основной процесс Git Pull request. Для понимания рабочего процесса Git возможно придется освоить инструкции Git или вот Git на русском. Но лучший способа изучения Git, это активная практика в реальном проекте.
Не стоит переживать о Git сейчас. Можно изучить его позже, когда будет рабочий контент. Пока же просто ищем проект.
Не недооценивайте свои писательские навыки
Можно подумать, что слишком рано думать о присоединении к проекту, не говоря уже о внесении вклада в проект документации API, особенно когда мы только учимся этому. Когда мы взаимодействуем с командой разработки опен-сорс проекта, можно чувствовать страх, что нет навыков программирования. Однако не стоит недооценивать нашу роль в качестве автора документации (независимо от вклада). Проекты с открытым исходным кодом частенько сильно страдают от паршивой документации.
В обзоре GitHub Survey: Open Source Is Popular, Plagued by Poor Docs and Rude People, Дэвид Рамел резюмирует результаты опроса GitHub 2017 года:
Неполная или устаревшая документация является распространенной проблемой, наблюдаемой 93 процентами респондентов, однако 60 процентов участников говорят, что они редко или никогда не вносят свой вклад в документацию.
Также посмотрим Open source documentation is bad, but proprietary software is worse Мэтта Асаи. Мэтт выделяет результаты документации того же опроса GitHub:
93% респондентов скрежетали зубами от некачественной документации, но также признались, что практически ничего не сделали для улучшения ситуации. … Если вы считаете, что глубокая потребность в документации побудит большее количество разработчиков внести свою лепту и помочь, вы ошибаетесь: 60% разработчиков не могут потрудиться представить документацию.
Так что, да, как технические писатели, мы не исправляем ошибки в коде и не разрабатываем новые функции, но наша роль разработчика документации все еще крайне необходима и ценится. Мы — редкие птицы в лесу разработки.
Автору курса хорошо знакомо значение роли документации из его личного опыта написания документации для опен-сорс проектов. В какой-то момент, прежде чем сосредоточить свою энергию на этом курсе по API, он написал несколько руководств для документации по Jekyll. Том Джонсон добавил инструкции, которые включали много нового контента, и даже добавил раздел Tutorials.
Предполагалось, что другие разработчики будут продолжать создавать новые руководства, но они этого не делали. Разработчики, как правило, добавляют небольшие отрывки документации к страницам — предложение здесь, абзац там, обновление здесь, исправление там. Редко можно найти кого-то, кто пишет новую статью или учебник с нуля. Когда выпускается новый выпуск, часто не появляются заметки о выпуске — это просто ссылки на (загадочные) журналы проблем GitHub.
Поэтому нужно быть уверенным в ценности, которую мы можем внести в опен-сорс проект. Мы создаем необходимую документацию для проекта.
Дополнительное чтение
Дополнительные материалы к изучению:
- How to choose (and contribute to) your first open source project;
- Contribute to open-source projects through documentation
Справочник по GitHub Pull Request доступен в разделе Процесс Pull request на GitHub
Следующие шаги
Приступаем к следующему практическому занятию: Оценка ключевых элементов API документации
🔙
Go next ➡
Как поучаствовать в разработке Open Source проектов, какова их роль и что они могут дать вам как разработчику?
Начнём с того, что гордое название «Open Source» носят проекты с открытым исходным кодом, которые чаще всего разрабатываются и поддерживаются силами сообщества. Это значит, что устройство и принцип работы таких проектов прозрачны, а в разработке может принять желание любой желающий.
Участие в Open Source проектах — это возможность усовершенствовать свои навыки, создавая при этом что-то новое или улучшая уже существующее. Начинающие программисты могут не только пополнить багаж знаний, научиться работать с чужим кодом и получать фидбек от опытных программистов, но также пополнить портфолио первой серьёзной работой.
Разбираемся, как поучаствовать в Open Source проекте и не ударить в грязь лицом.
Чем может быть полезен Open Source?
«Тут всё зависит от ваших целей и задач. Кто-то начинает работать с Open Source, чтобы глубже изучить определённый технологический стек, кто-то — потому что сам использует тот или иной инструмент в работе и считает, что может его улучшить. Кто-то, как мы в ABBYY в случае с нашей библиотекой NeoML, сначала создаёт инструмент для решения внутренних задач, а потом понимает, что от его выхода в Open Source выиграет и компания, и сообщество. Есть разные пути — решите, какой из них больше подходит именно вам.»
«Работа в Open Source может дать много, если подойти к ней с умом. Навык чтения чужого кода здорово выпрямляет руки, работа с кураторами подтянет английский. А чувство, что вы приложили руку к крупному проекту (которых в Open Source достаточно), может неплохо смотивировать вас в карьерном плане.»
Антон Немкин, председатель совета фонда Цифровая долина Сочи
Как найти Open Source проект?
«Для участия в Open Source проекте самое главное — определиться со сферой собственных интересов. Это крайне важно, так как вам предстоит выбрать проект, максимально подходящий под ваши интересы и компетенции. Делается это просто. Крупнейший сайт с проектами — это Github. Там вы делаете поисковый запрос по ключевым словам, соответствующим интересам, например «javascript gamification framework». В ответ получаете список проектов, в каждом из которых вы можете поучаствовать.»
Никита Буйда, основатель и ведущий разработчик Datebox.app
«Очевидный ответ, который напрашивается, — зайти на GitHub. Уже на месте стоит определиться с тематикой, хотя бы с точностью до крупной области. Затем погуглить, что есть на сайте на этот счёт. Новичку я бы посоветовал обратить внимание на GitHub Trending, где постят небольшие проекты. Начать просто: найдите проект, который вам по зубам, и предложите свои доработки. Вообще, нередко кураторы идут навстречу новичкам и охотно разъясняют, что упрощает процесс работы.»
Антон Немкин, председатель совета фонда Цифровая долина Сочи
На что обращать внимание при выборе проекта?
Обратите внимание на ПО, которым пользуетесь сами: во-первых, вы уже знакомы с проектом как пользователь и хорошо понимаете, что стоит улучшить или изменить; во-вторых, вы будете вносить вклад в то, что важно для вас.
- Описание проекта — интересен ли он вам? Решает ли важную (интересную) проблему? Актуальна ли тема?
- Популярность проекта. На Github это можно оценить по количеству звёзд — местному аналогу лайка.
- Посмотрите на раздел с проблемами (issues): много ли там открытых и особенно закрытых проблем? Это поможет оценить простор для творчества.
- Изучите часть описания проекта, относящуюся к сторонним разработчикам (contributing). Там, как правило, описывается простой способ, как настроить среду разработки под этот конкретный проект и прислать свои изменения. Иногда просто пишут «pull requests are welcome», то есть «ждём не дождёмся ваших исправлений и предложений».
- Насколько давно были сделаны последние изменения в проекте, активно ли идёт разработка? Если да, то ваши изменения быстро рассмотрят и, возможно, примут. Если не активно — быть может, вы захотите взять продвижение проекта в свои руки?
- Есть ли активное комьюнити? Часто у проекта может быть чат, форум или группа в соцсети, где разработчики активно обсуждают проект. Кроме того, активность можно посмотреть в комментариях к проблемам и предлагаемым изменениям.
Никита Буйда, основатель и ведущий разработчик Datebox.app
«Успех взаимодействия, конечно, зависит не только от разработчика. Важно, как выстроены процессы в команде, какая рабочая атмосфера, есть ли у нового специалиста возможность использовать именно тот стек технологий, который ему интересен. При обсуждении любых вопросов в команде, в чатах не должно быть токсичности — эффективна только конструктивная критика.»
Илья Башилов, руководитель Frontend-направления SimbirSoft
Каковы особенности Open Source разработки?
- В каждом Open Source проекте есть свои правила и ограничения для организации кода, построения архитектуры. Обычно всё это описывается в разделе contributing в README.md или в файле CONTRIBUTING.md (чаще всего находится в корне репозитория проекта).
- Среди требований нередко встречается определённый код-стиль проекта, которого надо придерживаться.
- Во многих проектах для каждого изменения требуется написание юнит-тестов. Без них изменения не принимаются.
- Естественно, всё общение между участниками проекта ведётся на английском языке через систему pull-request, в специальных чатах или даже через email рассылки. Это также чаще всего описывается в разделе contributing.
Дмитрий Зайцев, эксперт по разработке ПО компании «Рексофт»
Не стоит забывать про ведение документации. Процесс, может, не такой захватывающий и интересный, как разработка, но документация крайне важна для остальных участников проекта.
Каких Open Source проектов стоит избегать?
У проектов с открытым кодом есть и свои неприятные особенности:
- Разработчик проекта может вести его в никуда. И такое бывает весьма часто! Если проект всё равно хорош, то вы можете сделать ответвление (fork) и разрабатывать его в правильном, по-вашему мнению, направлении.
- Разработчик проекта может медленно отвечать. Вы видите, что обновления кода идут, но коммуникации с разработчиком никакой. Это плохой признак и знак того, что ловить здесь нечего.
- Разработчик проекта может потерять интерес и забросить код. Это можно понять по количеству нерешённых проблем в репозитории и давним обновлениям кода.
Никита Буйда, основатель и ведущий разработчик Datebox.app
Что стоит сделать перед тем, как принять участие в Open Source проекте?
Основной инструмент для участия в Open Source проектах — это, конечно, система контроля версий Git. Поэтому в первую очередь стоит ознакомиться с ним.
Есть несколько важных условий для того, чтобы начинающий специалист справился с Open Source — впрочем, как и вообще с любым проектом. Требования к хардскиллам очевидны — нужно уверенно владеть выбранным стеком технологий. Софтскиллы, в свою очередь, помогают успешнее погрузиться в новый проект. Ключевые личные качества на этом этапе — дисциплина, коммуникации, готовность к командной работе, обучению и самообучению. Наконец, самому разработчику при выборе проекта стоит внимательно оценивать порог входа — в Open Source бывают такие задачи, с которыми и сеньор не сразу справится.
Илья Башилов, руководитель Frontend-направления SimbirSoft
А как быть с внесением изменений в проект?
Pull request — запрос на изменение кода в репозитории. Перед началом работы обязательно создайте свою ветку, в которую вы будете вносить изменения. Если речь идёт о master-ветке, любые изменения стоит вносить только после согласования с куратором проекта.
Отличной практикой будет предварительный показ вашей работы кому-нибудь, ведь вы могли что-то упустить или просто свернуть не туда. В этом случае вас могут попросить изменить что-либо в вашем PR.
Как начать свой Open Source проект?
«Это ещё один ответ на вопрос, как поучаствовать в Open Source проекте: создайте его сами. Но для начала определитесь с целью, взвесьте все «за» и «против», убедитесь, что готовы взять на себя ответственность за труд других людей и уверенно двигаться к релизу.
Если начинать свой Open Source проект, то необходимо привлечь к нему внимание через англоязычные порталы. Самый простой вариант — публиковать ссылки на портале Reddit в нужных подразделах с тематикой «программирование». Это обеспечивает больший отклик, чем публикация на любом русскоязычном сайте. Естественно, стоит рассказать о проекте и на таких ресурсах, как Хабр, DTF и в тематических группах ВК.»
Дмитрий Зайцев, эксперт по разработке ПО компании «Рексофт»
Источник: новость на Tproger
Зачем участвовать в опенсорс-проектах?
Участие в опенсорс-проектах может быть полезным способом изучать, обучать и приобретать опыт практически в любом навыке, который вы можете себе представить.
Зачем люди участвуют в опенсорсе? На то есть множество причин!
Улучшить используемые проекты
Многие опенсорс-контрибьюторы перед тем, как внести свой вклад в продукт, были обычными его пользователями. Если вы обнаружите баг в используемой вами опенсорс-программе, вы, возможно, захотите заглянуть в её исходный код, чтобы узнать, сможете ли вы исправить его самостоятельно. Если это так, то отправка патча — лучший способ убедиться, что ваши друзья (и вы сами, когда вы обновитесь до следующего релиза) смогут извлечь из него пользу.
Улучшить существующие навыки
Будь то программирование, дизайн пользовательского интерфейса, графический дизайн, написание текста или организационная работа, если вы ищете практику, для вас найдётся задача в проекте с открытым исходным кодом.
Познакомиться с людьми с общими интересами
Опенсорс-проекты с теплыми, гостеприимными сообществами заставляют людей возвращаться долгие годы. Многие люди завязывают дружбу на всю жизнь благодаря участию в открытых проектах, будь то встреча друг с другом на конференциях или поздних ночных онлайн-чатах о буррито.
Найти наставников и научить других
Работа с другими над общим проектом означает, что вам придется объяснять, как вы это делаете, а также просить помощи у других. Акты обучения и преподавания могут быть полезными для всех участников.
Создать общедоступные проекты, которые помогут вам повысить репутацию (и карьеру)
По определению, вся ваша работа с открытым исходным кодом является общедоступной, это значит, что у вас появляются примеры, которые можно использовать где угодно в качестве демонстрации того, что вы можете делать.
Изучить навыки работы с людьми
Опенсорс предлагает возможности практиковать лидерские и управленческие навыки, такие как разрешение конфликтов, организация групп людей и определение приоритетов в работе.
Возможность внести изменения, пусть даже небольшие
Необязательно становиться контрибьютором на протяжении всей жизни, чтобы получать удовольствие от участия в опенсорс-проектах. Вы когда-нибудь видели опечатку на сайте и хотели бы, чтобы кто-нибудь её исправил? В проекте с открытым исходным кодом вы можете это сделать. Опенсорс помогает людям чувствовать себя хозяевами своей жизни и того, как они воспринимают мир, и это само по себе отрадно.
Что значит внести свой вклад
Если вы новичок в опенсорсе, процедура участия в нём может быть пугающей. Как найти подходящий проект? Что делать, если вы не умеете программировать? Что если что-то пойдет не так?
Не беспокойтесь! Много чем можно заняться в опенсорс-проекте, и вот несколько подсказок, которые помогут вам определиться, чтобы извлечь максимальную пользу.
Необязательно помогать кодом
Распространенное заблуждение, касающееся участия в опенсорсе, состоит в том, что вам нужно писать код. Зачастую есть другие части проекта, которыми наиболее всего пренебрегают или упускают из виду. Вы окажете проекту огромную услугу, предложив поработать над ними!
Даже если вам нравится писать код, другие виды помощи — отличный способ поучаствовать в проекте и познакомиться с другими членами сообщества. Налаживание таких отношений даст вам возможность работать над другими частями проекта.
Нравится планировать мероприятия?
- Организуйте семинары или митапы по проекту, что и сделал @fzamperin в NodeSchool
- Организуйте конференцию проекта (если она есть)
- Помогите участникам сообщества найти подходящие конференции и подать заявку на доклад
Нравится дизайнить?
- Переделайте макеты, чтобы повысить удобство использования проекта
- Проведите исследование поведения пользователей, чтобы реорганизовать и улучшить навигацию или меню проекта, например, как предлагает Drupal
- Составьте руководство по стилю оформления, чтобы помочь проекту с соблюдением единообразного визуального дизайна
- Создайте принты для футболок или новый логотип, как это сделали участники hapi.js
Нравится писать?
- Напишите и улучшите документацию по проекту
- Создайте папку с примерами по использованию проекта
- Запустите рассылку новостей по проекту или освещайте самое важное из списка рассылки
- Составьте обучающие руководства по проекту, как это сделали участники PyPA
- Переведите документацию проекта
Нравится организовывать?
- Давайте ссылки на повторяющиеся ишью, предлагайте новые ярлыки для ишью, чтобы они были лучше огранизованы
- Пройдитесь по открытым ишью и предложите закрыть старые, как, например, сделал @nzakas в ESLint
- Задавайте уточняющие вопросы по недавно открывшимся ишью, чтобы продвинуть обсуждение вперед
Нравится кодить?
- Найдите открытую проблему для решения, что, например, @dianjin сделал в Leaflet
- Спросите, можете ли вы помочь с разработкой новой функциональности
- Автоматизируйте настройку проекта
- Улучшите инструменты и тестирование
Нравится помогать людям?
- Ответьте на вопросы о проекте, например, на Stack Overflow (как в этом примере с Postgres) или Reddit
- Отвечайте на вопросы людей по открытым ишью
- Помогите модерировать доски обсуждений или каналы в чатах
Нравится ли вам помогать другим кодить?
- Проверяйте код других людей
- Напишите учебные руководства по использованию проекта
- Предложите наставничество другому контрибьютору, как @ereichert сделал для @bronzdoc в Rust
Можно работать не только над программными проектами!
Хотя «опенсорс» часто относится к программному обеспечению, вы можете совместно работать практически над чем угодно. Есть книги, рецепты, списки и курсы, которые разрабатываются как опенсорс-проекты.
Например:
- @sindresorhus курирует список “классных” списков
- @h5bp ведет список потенциальных вопросов на собеседовании для кандидатов в разработчики интерфейсов
- @stuartlynn и @nicole-a-tesla сделали сборник забавных фактов о тупиках
Даже если вы разработчик программного обеспечения, работа над документацией проекта может помочь вам войти в опенсорс. Зачастую работа над проектами, не связанными с кодом, не так пугает, а процесс совместной работы поможет вам обрести уверенность и опыт.
Подготовка к новому проекту
Для чего-то большего, чем исправление опечатки, участие в открытом проекте похоже на поход к группе незнакомцев на вечеринке. Если вы начнете говорить о ламах, когда они были увлечены дискуссией о золотых рыбках, они, вероятно, будут смотреть на вас немного странно.
Прежде чем вслепую приступить к своим собственным предложениям, начните с изучения обстановки в сообществе. Это увеличивает шансы на то, что ваши идеи будут замечены и услышаны.
Анатомия опенсорс-проекта
Каждое сообщество с открытым исходным кодом отличается.
Потратить годы на один открытый проект означает, что вы познакомились с одним открытым проектом. Переходите к другому проекту, и вы можете обнаружить, что терминология, нормы и стили общения совершенно другие.
Тем не менее многие проекты с открытым исходным кодом следуют схожей организационной структуре. Понимание различных ролей сообщества и общего процесса поможет вам быстро сориентироваться в любом новом проекте.
Типичный проект с открытым исходным кодом состоит из следующих типов людей:
- Автор: Человек или организация, создавшие проект.
- Владелец: Лицо, которое имеет административные права на организацию или репозиторий (не всегда те же самые, что и первоначальный автор).
- Мейнтейнеры: Контрибьюторы, которые несут ответственность за формирование видения и управление организационными аспектами проекта (они также могут быть авторами или владельцами проекта).
- Контрибьюторы: Все, кто внес свой вклад в проект.
- Участники сообщества: Люди, использующие проект. Они могут быть активными в беседах или высказывать свое мнение о направлении проекта.
В более крупных проектах также могут быть подкомитеты или рабочие группы, занимающиеся различными задачами, такими как инструменты, сортировка, модерация сообщества и организация мероприятий. Поищите на сайте проекта или в репозитории “командную” или “организационную” страницу, чтобы найти эту информацию.
У проекта также есть документация. Эти файлы обычно находятся в корне репозитория.
- LICENSE: По определению, каждый опенсорс-проект должен иметь соответствующую лицензию. Если у проекта нет лицензии, его нельзя причислить к опенсорсу.
- README: README — это руководство-инструкция, которая приветствует новых членов сообщества в проекте. В этом файле объясняется назначение и применение проекта.
- CONTRIBUTING: В то время как README помогают людям использовать проект, документация по участию помогает людям вносить вклад в проект. В нем объясняется, какие виды помощи необходимы и как устроен процесс. Хотя не у каждого проекта есть файл CONTRIBUTING, его наличие свидетельствует о дружелюбном отношении к участникам.
- CODE_OF_CONDUCT: Кодекс поведения устанавливает основные правила поведения участников и помогает создать дружелюбную, гостеприимную атмосферу. Хотя не в каждом проекте есть файл CODE_OF_CONDUCT, его наличие свидетельствует о том, что это хороший проект, в который можно внести свой вклад.
- Другая документация: Может быть дополнительная документация, например обучающие материалы, пошаговые руководства или политики управления, особенно для более крупных проектов.
Наконец, в проектах с открытым исходным кодом для организации обсуждения используются следующие инструменты. Чтение архивов даст вам хорошее представление о том, как сообщество думает и работает.
- Список ишью (issue tracker): Место, где происходят обсуждения, связанные с проектом.
- Пул-реквесты (pull requests): Место, где рассматриваются запросы на изменение кода.
- Дискуссионные форумы или списки рассылки: Некоторые проекты могут использовать эти каналы для разговорных тем (например, “Как мне …“ или “Что вы думаете о …“ вместо отчётов об ошибках и внесения предложений с новыми возможностями). Другие используют ишью для всех дискуссий.
- Синхронный чат-канал: Некоторые проекты используют чаты (например, Slack или IRC) для спонтанного общения, совместной работы и быстрого обмена информацией.
Поиск проекта, в котором можно поучаствовать
Теперь, когда вы разобрались, как устроены опенсорс-проекты, пришло время найти проект, в который вы сможете внести свой вклад!
Если вы никогда раньше не имели дела с опенсорсом, прислушайтесь к совету президента США Джона Ф. Кеннеди, который однажды сказал: «Не спрашивайте, что ваша страна может сделать для вас, спросите, что вы можете сделать для своей страны».
Участвовать в опенсорсе могут все, независимо от уровня подготовки. Не ломайте сильно голову над тем, каким будет ваш первый вклад в опенсорс.
Вместо этого подумайте о проектах, которые вы уже используете или собираетесь использовать. Проекты, в которых вы будете активно участвовать, — это те, к которым вы будете возвращаться.
В этих проектах всякий раз, когда вы ловите себя на мысли, что что-то может быть лучше или иначе, действуйте в соответствии со своим инстинктом.
Опенсорс — это не закрытый клуб; им занимаются такие же люди, как вы. «Опенсорс» — это всего лишь причудливый термин для обозначения решаемых мировых проблем.
Можно просмотреть файл README, чтобы найти неработающую ссылку или опечатку. Или вы как новый пользователь заметили, что что-то работает неправильно, либо есть неточность в документации. Вместо игнорирования таких проблем или просьбы к кому-нибудь их исправить, посмотрите, удастся ли вам помочь и тем самым поучаствовать в проекте. В этом как раз и смысл опенсорса!
28% случайных вкладов в опенсорс представляют собой документацию, например, исправление опечатки, переформатирование или перевод.
Если вы ищете существующие ишью, которые можно исправить, то в каждом опенсорс-проекте есть страница /contribute
, где перечислены ишью, специально предназначенные для начинающих. Перейдите на главную страницу репозитория на GitHub и добавьте в конец URL-адреса /contribute
(например, https://github.com/facebook/react/contribute`).
Вы также можете использовать один из следующих ресурсов, чтобы открыть для себя новые проекты и внести свой вклад в них:
- GitHub Explore
- Open Source Friday
- First Timers Only
- CodeTriage
- 24 Pull Requests
- Up For Grabs
- Contributor-ninja
- First Contributions
- SourceSort
Чеклист перед тем, как принять участие
Когда вы нашли проект, в который хотели бы внести свой вклад, бегло осмотрите проект, чтобы убедиться, что он принимает стороннюю помощь. В противном случае ваш упорный труд может остаться незамеченным.
Вот удобный чеклист список, чтобы понять, подходит ли проект для новых контрибьюторов.
Попадает под определение опенсорса
Есть ли у него лицензия? Обычно в корне репозитория находится файл LICENSE.
Проект активно принимает стороннюю помощь
Посмотрите на коммиты в основной ветке. Узнать это вы можете на главной странице репозитория на GitHub.
Когда был последний коммит?
Сколько контрибьюторов у проекта?
Как часто люди коммитят в репозиторий? (На GitHub выяснить это можно, кликнув по ссылке «Commits» в верхней панели.)
Затем посмотрите на ишью проекта.
Сколько сейчас открытых ишью?
Быстро ли мейнтейнеры реагируют на ишью после того, когда они открываются?
Ведётся ли активное обсуждение ишью?
Есть ли недавно созданные ишью?
Есть ли закрытые ишью? (На странице Issues GitHub-репозитория щелкните на вкладку «Closed», чтобы увидеть закрытые ишью.)
Теперь выясните такую информацию про пул-реквесты проекта.
Сколько сейчас открытых пул-реквестов?
Быстро ли мейнтейнеры реагируют на пул-реквесты после их открытия?
Ведётся ли активное обсуждение пул-реквестов?
Есть ли недавно отправленные пул-реквесты?
Как давно были объединены пул-реквесты? (На странице Pull Request GitHub-репозитория щелкните на вкладку «Closed», чтобы увидеть закрытые пул-реквесты.)
Проект приветливый
Дружелюбный и доброжелательный проект свидетельствует о том, что в нём будут с пониманием относиться к новым контрибьюторам.
Отвечают ли охотно мейнтейнеры на вопросы в ишью?
Дружелюбны ли люди в вопросах, на дискуссионном форуме и в чате (например, IRC или Slack)?
Проверяются ли пул-реквесты?
Благодарят ли мейнтейнеры людей за их помощь?
Как сделать вклад
Вы нашли понравившийся проект и уже готовы поучаствовать в нём. Наконец-то! И вот как правильно это сделать.
Эффективное общение
Независимо от того, поучаствуете ли вы только один раз или же попытаетесь присоединиться к сообществу, совместная работа с другими людьми — один из самых важных навыков, который вы приобретете, занимаясь опенсорсом.
Прежде чем открыть ишью, пул-реквест или задать вопрос в чате, запомните эти советы, которые помогут эффективно воплотить ваши идеи в жизнь.
Дайте контекст. Помогите другим быстро освоиться. Если вы столкнулись с ошибкой, объясните, что вы пытаетесь сделать и как ее воспроизвести. Если вы предлагаете новую идею, объясните, почему вы думаете, что она будет полезна для проекта (не только для вас!).
😇 “Х не происходит, когда я делаю Y”
😢 “X не работает! Исправьте это.”
Попробуйте сначала разобраться сами. Не знать чего-то — это нормально, но покажите, что вы пробовали разобраться. Прежде чем обращаться за помощью, обязательно изучите README-файл проекта, документацию, ишью (открытые или закрытые), список рассылки и поищите ответ в Интернете. Люди оценят, если вы продемонстрируете, что попытались что-то узнать.
😇 “Я не знаю, как реализовать X. Я посмотрел документацию и не нашел никаких упоминаний об этом.”
😢 “Как мне сделать X?”
Пишите коротко и по делу. Как и при отправке электронного письма, каждая сторонняя работа, независимо от того, насколько она была простой или полезной, требует чьей-то проверки. Во многих проектах входящих запросов больше, чем людей, готовых помочь. Будьте лаконичны. Так вы увеличите вероятность того, что кто-то сможет вам помочь.
😇 “Я хотел бы написать руководство по API.”
😢 “На днях я ехал по шоссе и остановился заправиться, и тогда у меня возникла замечательная идея, чем мы должны заняться, но прежде чем я это объясню, позвольте мне показать вам …“
Ведите все обсуждения публично. Хотя это заманчиво, не обращайтесь к мейнтейнерам напрямую, если вам не нужно делиться конфиденциальной информацией (например, о проблеме безопасности или серьезном нарушении поведения). Если вы сделаете беседу публичной, больше людей смогут узнать о ней и извлечь из неё пользу. Обсуждения сами по себе могут быть вкладом.
😇 (в качестве комментария) «@-мейнтейнер Привет! Как нам поступить с этим пул-реквестом?»
😢 (по электронной почте) «Привет, извини, что побеспокоил тебя по электронной почте, но мне было интересно, была ли у тебя возможность просмотреть мой PR»
Не стесняйтесь задавать вопросы (но будьте терпеливы!). В какой-то момент каждый был новичком в проекте, и даже опытным контрибьюторам нужно время освоиться, когда они приходят в новый проект. Точно так же мейнтейнеры, давно поддерживающие проект, не всегда знакомы со всеми его частями. Проявите к ним такое же терпение, какое вы бы хотели, чтобы они проявили к вам.
😇 “Спасибо, что разобрались с этой ошибкой. Я последовал вашим предложениям. Вот результат.”
😢 “Почему вы не можете решить мою проблему? Разве это не ваш проект?”
Уважайте решения сообщества. Ваши идеи могут отличаться от приоритетов или видения сообщества. Члены сообщества могут высказать свои мнения или отказаться от реализации вашей идеи. Хотя всегда нужно обсуждать и искать компромисс, последнее слово за мейнтейнерами, потому что им в дальнейшем предстоит работать с вашим кодом. Если вы не согласны с их направлением, вы всегда можете работать над собственным ответвлением проекта (форком) или начать собственный проект.
😇 “Я разочарован, что вы не можете поддержать мой вариант использования, но, как вы объяснили, он затрагивает только небольшую часть пользователей, я понимаю почему. Спасибо за внимание.”
😢 “Почему вы не поддерживаете мой вариант использования? Это недопустимо!”
Главное, держите себя в руках. Опенсорсом занимаются люди со всего мира. Контекст теряется из-за разных языков, культур, регионов и часовых поясов. Кроме того, письменное общение затрудняет передачу тона или настроения. В таких обсуждениях исходите из благих намерений. Нет ничего плохого в том, чтобы вежливо оттолкнуться от идеи, попросить больше информации или дополнительно прояснить свою позицию. Просто постарайтесь сделать интернет лучше, чем когда вы его нашли.
Изучение обстановки
Прежде чем что-либо делать, убедитесь, что это больше нигде не обсуждалось. Пройдитесь по README-файлу проекта, ишью (открытые и закрытые), списку рассылки и Stack Overflow. Не тратьте много времени на это, достаточно поискать по нескольким ключевым словам.
Если вы не нашли обсуждение вашей идеи, можно начать действовать. Если проект находится на GitHub, вы, скорее всего, будете общаться, открывая ишью или пул-реквест:
- Ишью отлично подходят, чтобы завести беседу или обсуждение
- Запросы на изменение предназначены для начала работы над решением.
- Для легкого общения, например, уточняющего или практического вопроса, попробуйте задать вопрос в Stack Overflow, IRC, Slack или других чат-каналах, если они есть в проекте
Прежде чем открывать ишью или пул-реквест, ознакомьтесь с руководством по участию (обычно ему посвящен отдельный файл с именем CONTRIBUTING или соответствующий раздел в файле README), чтобы сделать всё правильно. Например, вас могут попросить представить информацию согласно шаблону или потребовать, чтобы вы написали тесты.
Если вы планируете сделать большое изменение, перед этим лучше откройте ишью. Полезно некоторое время понаблюдать за проектом (на GitHub для этого можно кликнуть по кнопке «Watch», чтобы получать уведомления обо всех активностях), а также познакомиться с некоторыми участниками сообщества.
Открытие ишью
Как правило, следует создать ишью, чтобы:
- Сообщить об ошибке, которую вы не можете исправить самостоятельно
- Обсудить общую тему или идею (например, связанную с сообществом, развитием или политикой проекта)
- Предложить реализовать новую функциональность или другую идею проекта
Советы по общению в ишью:
- Если видите открытую ишью, которую хотите решить, прокомментируйте её, чтобы люди знали, что вы занимаетесь ею. Таким образом, снизится вероятность, что кто-то ещё будет работать над ней.
- Если ишью была открыта давно, возможно, что она рассматривается в другом месте, либо уже решена, поэтому прокомментируйте её, чтобы подтвердить её актуальность.
- Если вы открыли ишью, но позже самостоятельно нашли ответ, прокомментируйте её, чтобы сообщить об этом людям, а затем закройте её. Даже фиксирование такого результата является вкладом в проект.
Открытие пул-реквеста
Как правило, следует создать пул-реквест, чтобы:
- Сделать незначительное исправление (например, исправить опечатку, неработающую ссылку или очевидную ошибку)
- Начать работать над тем, о чём уже было договорено или что обсуждалось в ишью
Пул-реквест не обязательно должен представлять законченную работу. Обычно лучше открывать пул-реквест на раннем этапе, чтобы люди могли наблюдать за вашим прогрессом или оставлять отзывы о нем. Только в названии такого пул-реквеста укажите “WIP” (от англ. Work in Progress — в процессе выполнения). Всегда позже можно отправить дополнительные коммиты.
Если проект находится на GitHub, выполните следующие шаги, чтобы создать пул-реквест:
- Форкните репозиторий и склонируйте его к себе локально. Затем в этом локальном репозитории добавьте оригинальный (upstream) репозиторий. Почаще загружайте изменения из исходного репозитория, чтобы ваш локальный репозиторий оставался в актуальном состоянии, — это снизит вероятность возникновения конфликтов при создании пул-реквеста. (См. более подробные инструкции здесь.)
- Создайте ветку для ваших правок.
- Ссылайтесь на любые относящиеся к делу ишью или подтверждающую документацию в своем PR (например, «Closes #37»).
- Добавьте скриншоты до и после, если ваши изменения затрагивают файлы HTML/CSS. Перетащите изображения в текстовую область пул-реквеста.
- Протестируйте свои изменения! Например, запустите тесты, если они есть, и при необходимости напишите новые. Даже если тестов нет, проверьте сами, что после ваших изменений всё работает, как и раньше.
- Соблюдайте стиль написания кода проекта в меру своих возможностей. Это может быть использование отступов, точек с запятой или комментариев иначе, чем вы привыкли, но мейнтейнерам это упростит слияние вашего пул-реквеста, а другим — облегчит понимание и поддержку в будущем.
Если это ваш первый пул-реквест, ознакомьтесь с сайтом Make a Pull Request, который @kentcdodds сделал в виде пошагового видео-руководства. Вы также можете попрактиковаться в создании пул-реквеста в репозитории First Contributions, созданном @Roshanjossey.
Что будет дальше после принятия участия
Вы сделали это! Поздравляем, вы стали контрибьютором в опенсорс. Надеемся, это будет далеко не первый раз.
После того, как вы отправите вклад, произойдет одно из следующих событий:
😭 Вы не получите ответ.
Предполагаем, вы проверили проект на наличие признаков активности перед тем, как внести свою лепту. Однако даже в активном проекте возможно, что ваш вклад не получит отклика.
Если вы не получили ответа в течение недели, вполне нормально вежливо ответить в той же теме и попросить кого-нибудь проверить вашу работу. Если вы знаете, кто может посмотреть ваш пул-реквест, упомяните его через @ в этой ветке.
Не обращайтесь напрямую к этому человеку; помните, что публичное общение жизненно важно для опенсорс-проектов.
Если после вежливого напоминания так никто и не ответил, есть вероятность, что никто и никогда не ответит. Это не самое приятное ощущение, но пусть оно вас не расстраивает. Такое с каждым случалось! Есть множество возможных причин, по которым вам могли не ответить, в том числе личные обстоятельства, на которые вы не можете повлиять. Попробуйте найти другой проект или способ участия. В любом случае, нет смысла тратить время на проект, пока члены его сообщества не проявят должного уровня вовлеченности и отзывчивости.
🚧 У вас могут запросить внести изменения.
Зачастую вас могут попросить что-то изменить, это может быть связано с самой идеей или её реализацией.
Когда кто-то запрашивает сделать изменения, относитесь к этому с пониманием и воспринимайте это должным образом. Люди нашли время, чтобы оценить ваш вклад. Открывать PR и бросать его на произвол судьбы — дурной тон. Если вы не знаете, как внести изменения, изучите проблему, а затем обратитесь за помощью, если она вам нужна.
Если у вас больше нет времени работать над проблемой (например, обсуждение длится уже несколько месяцев, а за это время обстоятельства поменялись), сообщите об этом мейнтейнеру, чтобы он не ожидал ответа. Возможно, кто-то другой с радостью завершит начатую вами работу.
👎 Ваш вклад не принят.
В итоге ваш вклад будет либо принят, либо нет. Надеюсь, вы потратили не слишком много усилий на него. Если вы не поняли, почему он не был принят, разумно попросить мейнтейнера дать пояснения. В конечном итоге, однако, вам стоит понять и смириться с их решением. Не спорьте и не злитесь по этому поводу. В случае чего вы всегда можете форкнуть репозиторий, чтобы работать над своей собственной версией продукта!
🎉 Ваш вклад принят.
Ура! Вы успешно сделали вклад в опенсорс!
Вы сделали это!
Независимо от того, сделали ли вы свой первый вклад в опенсорс или ищете новые способы сделать это, мы надеемся, что вы вдохновитесь на действия. Даже если ваш вклад был отклонён, не забудьте сказать спасибо, когда мейнтейнер постарался вам помочь. Опенсорс создается такими же людьми, которые создают ишью, отправляют пул-реквест, оставляют комментарии или приветствуют друг друга одновременно.