[Перевод] Как стать участником Open Source и зачем
Если ты хоть раз задавал себе этот вопрос, то ты на верном пути.
Многие приложения, которыми вы пользуетесь сегодня, содержат значительное количество программного обеспечения с открытым исходным кодом (OSS — Open Source Software), и число компаний, использующих открытый исходный код, постоянно растет. Несмотря на это, лишь ограниченное число людей вносят свой вклад в это и поддерживают его.
За открытым исходным кодом стоит большая работа, и нам могла бы пригодиться ваша помощь! Продолжайте читать, чтобы узнать о том, как вы можете внести свой вклад и с чего начать.
Вклад в Open Source может стать полезным способом учиться, преподавать и наращивать опыт практически в любом навыке, который вы только можете себе представить.
Зачем быть участником OSS
Есть много причин, по которым вы можете захотеть внести свой вклад в Open Source. В моем случае я начал после посещения KubeCon, где узнал о многих интересных проектах и захотел помочь и принять участие в сообществе CNCF.
Ваш случай может быть другим. Возможно, вы захотите найти наставника или отточить свои навыки, чтобы составить их резюме, испытать себя (scratch an itch ориг.) или по другим причинам.
Что нужно знать для начала
Большинство проектов с открытым исходным кодом будут размещены на GitHub, поэтому вам необходимо создать там учетную запись. Если вы не знакомы с GitHub, вы можете перейти непосредственно на официальную страницу, чтобы узнать, как начать работу.
Я предполагаю, что большинство людей, читающих этот пост в блоге, никогда не вносили свой вклад в проект с открытым исходным кодом, поэтому я рекомендую вам использовать только интерфейс GitHub вместо клонирования репозитория на свой локальный компьютер. Потому что, если вы это сделаете, вам нужно будет научиться использовать Git (что тоже очень важно), и это может быть слишком сложно сделать все сразу.
Если просмотр видео облегчает задачу, посмотрите мою прошлую прямую трансляцию, где я показываю, как вносить свой вклад с помощью интерфейса GitHub.
Если вы чувствуете в себе смелость и хотите внести свой вклад с помощью Git, у меня есть пошаговое видео для начинающих участников.
Помните, что любой проект, в который вы решите внести свой вклад, должен иметь канал сообщества (обычно на Slack или Discord). Обязательно присоединяйтесь к ним на случай, если вам понадобится задать вопросы или вы захотите встретиться с другими участниками.
Кроме того, большинство проектов поддерживаются добровольцами, поэтому иногда время ответа на вопросы / обзоры PR может занять некоторое время, в зависимости от графика и часового пояса каждого вовлеченного человека.
Способы для внесения своего вклада в OS
Существует так много способов внести свой вклад в Open Source. Вам даже не обязательно быть программистом. Вы можете делать много вещей, которые не связаны с кодированием и не (должны) занимать много времени.
Написание документации
Это часто упоминается как простой способ начать работу, поскольку вам не нужно много знать о программировании, чтобы внести свой вклад. Некоторые навыки, которые могут помочь, — это членораздельное письмо, внимание к деталям (например, орфография и грамматика), умение приводить хорошие примеры и т.д.
Способы, которыми вы можете помочь:
Прочтите документацию, чтобы убедиться, что она ясна и полна. Если нет, предложите предложения о том, как его улучшить. Или, по крайней мере, сообщите сопровождающим, что вам непонятно и почему.
Исправляйте мелкие ошибки, такие как опечатки или мертвые ссылки. * Добавьте недостающую информацию, особенно если это то, что вы должны были выяснить сами (с помощью сообщества или без него). У кого-то еще может возникнуть такая же проблема.
Добавляйте (ссылки на) соответствующие записи в блоге (даже свои собственные).
Просмотрите все открытые PR-запросы (pull requests) в документации. Обратите внимание на вышеупомянутые вещи: это ясно, полно, правильно? Видите ли вы какие-либо опечатки или другие ошибки? (Я уже упоминал, что трудно обнаружить опечатки в чем-то, над чем вы работали некоторое время?)
Перевод документации (она же локализация)
Если вы не знаете, как работает проект, перевод документации — отличный способ научиться. Так я впервые начал вносить свой вклад и узнавать о Kubernetes. Конечно, вам нужно [свободно] говорить на другом языке, чтобы перевод соответствовал оригинальному тексту.
Многие люди не говорят или не чувствуют себя комфортно, работая на английском языке, поэтому ваш вклад может иметь большое значение!
Популярные проекты с открытым исходным кодом:
*Более подробная информация об этих проектах в конце этого поста в блоге.
Приведенные ниже проекты используют инструмент под названием Crowding, который предоставляет внешний интерфейс для управления всеми переводами на разные языки:
Предположим, вы не обнаружите никаких проблем с локализацией. В этом случае вы можете создавать новые (например, добровольно перевести сообщение в блоге) и следить за ними, потому что каждый раз, когда появляется обновление на английском языке, вы можете добровольно перевести его на свой язык.
Отвечайте на вопросы
Как пользователь, вы, вероятно, можете помочь другим пользователям с проблемами, с которыми сталкивались раньше. Помните, что кто-то, вероятно, помогал вам в прошлом тем или иным способом. Поделитесь тем, что вы узнали!
И если вы заметили много похожих вопросов, подумайте о том, чтобы добавить их в документацию.
Пишите репорты
Самое меньшее, что вы можете сделать, если столкнетесь с проблемой, — это создать проблему. Сопровождающие могут не все использовать проект одинаково и могут не знать о проблеме, если вы не сообщите им об этом.
Перед созданием проблемы, пожалуйста, убедитесь, что для этой же проблемы нет открытой проблемы (предотвратите дублирование). Если есть, вы могли бы добавить дополнительную полезную информацию к этому вопросу.
Когда вы создаете проблему, пожалуйста, будьте как можно конкретнее и предоставьте достаточную информацию, чтобы помочь сопровождающим понять и воспроизвести вашу проблему. Многие проекты используют шаблоны, запрашивающие необходимый им тип информации; используйте их! Или, если они не используют шаблон, может быть, вы можете добавить его в проект?
И еще раз, если это то, что вы можете исправить сами, пожалуйста, сделайте!
Примечание: Если вы не уверены, что обнаружили ошибку, пожалуйста, свяжитесь с сообществом, чтобы спросить их. Часто таким образом будет быстрее получить помощь, и это также может привести к запуску диалога о проблеме, о том, как ее воспроизвести и т.д., Что облегчит ее исправление.
Проблемы с метками
Многие проекты на GitHub используют метки для обозначения типа проблем. Используемые ярлыки будут варьироваться в зависимости от проекта, но ярлыки могут помочь людям найти проблему, похожую на их (предотвращая создание повторяющихся проблем), или помочь людям найти проблемы, в решение которых они могли бы внести свой вклад. Добавление надлежащих меток к проблемам может помочь сопровождающим и пользователям проекта, на что у других сопровождающих может не хватить времени.
Примечание: Иногда вам нужны определенные разрешения для добавления меток в проект, но это стоит проверить.
Попробуйте воспроизвести проблему
Когда кто-то открывает проблему, сопровождающий должен взглянуть на нее, чтобы понять ее. Вот где вы можете помочь! Четко ли описана проблема и содержит ли она достаточную информацию для воспроизведения? Если вы сможете воспроизвести его, возможно, вы сможете предоставить дополнительную полезную информацию.
И если вы не можете, вы могли бы обратиться к первоначальному автору за дополнительной информацией. Или, может быть, вопрос может быть закрыт!
Просмотр кода (Анализ Pull requests)
Просмотр PR-материалов может быть большой работой. Если вы не слишком хорошо знакомы с базой кода, вы, возможно, не сможете ничего сказать об общей полезности или направлении PR, но вы все равно сможете помочь. Вы могли бы проверить читаемость кода, посмотреть, хорошо ли тестовое покрытие, поискать опечатки и т.д. В качестве альтернативы, вы могли бы создать ветку локально и протестировать ее, чтобы увидеть, решает ли она ту проблему, для решения которой она была разработана. Вы все равно можете просмотреть документацию, даже если не умеете читать код (см. вчерашний пост).
Добавить модульные тесты
Если вы знаете, как это сделать, вы могли бы попробовать добавить модульный тест, который воспроизводит проблему, который одновременно показывает, что проблема существует, и поможет ее устранить. И если вы можете, исправьте это сами!
Протестируйте новые функции
У сопровождающих и авторов не всегда есть время для тщательного тестирования новых функций или версий. Вот где вы можете помочь! Создайте новый проект, чтобы протестировать новую функцию, или обновите существующий проект до новой версии (даже если он все еще находится в разработке). Предоставьте обратную связь людям, которые работают над этим.
Примечание: возможно, для тестовой работы не зарегистрированы открытые проблемы. Это не значит, что это не нужно! Возможно, вы услышите о необходимости тестовой работы, когда станете более активным членом сообщества. Если вы хотели бы сделать это, но не знаете ни о чем, что нуждается в тестировании, спросите сообщество!
Очиститите код
Проекты также могут извлечь выгоду из рефакторинга или очистки кода. Существует множество способов улучшения кода, особенно если они разрабатывались в течение нескольких лет разными разработчиками.
Проверяйте актуальность используемые библиотек в проекте
Если вы заметили, что в проекте используются устаревшие зависимости, посмотрите, можете ли вы их обновить. Особенно, если более старые версии содержат уязвимости в системе безопасности. Обратите внимание, что в некоторых проектах могут быть внесены критические изменения, поэтому всегда убедитесь, что проект работает с обновленной зависимостью.
Другое
Возможно, у вас есть другие способы внести свой вклад. Даже если вы не программист, у вас могут быть другие навыки, ценные для проекта.
Если у вас есть способы внести свой вклад, которые здесь не упомянуты, пожалуйста, дайте мне знать в комментариях!
Где найти проект с открытым исходным кодом, в который можно внести свой вклад
Веб-сайты:
Если вы понятия не имеете, с чего начать, на нескольких веб-сайтах перечислены проекты, нуждающиеся в помощи:
Сам GitHub предлагает несколько рекомендаций по выбору проектов.
Ознакомьтесь с CodeTriage для проектов с открытыми проблемами
Ищите проблемы по проекту, пометке (например, «good first issue ») и/или тегу (например, ваш предпочтительный язык программирования) в разделе Актуальные (ориг. Up-for-grabs).
Вы также можете найти эти ссылки и многое другое на First Timers Only.
Проекты, которые вы используете сами:
Подумайте о том, чтобы помочь с проектом, который вы используете сами. Вы будете лучше знакомы с проектом и, возможно, даже сможете решить свои собственные проблемы. Если вы уже являетесь частью их сообщества, вы лучше поймете, что необходимо.
Сосредоточьтесь на гостеприимных сообществах!
Сосредоточьтесь на проектах, которые приветствуют новых участников. Некоторые из следующих действий могут помочь:
Посмотрите, есть ли какие-либо выпуски с пометкой «только для новичков», «хороший первый выпуск» или что-то подобное; это будет означать, что они открыты / ищут новых участников, и даст вам представление о том, с чего начать.
Посмотрите, как они реагируют на созданные проблемы или открытые PR (вежливо или враждебно они запрашивают дополнительную информацию, насколько конструктивна обратная связь по PR или проблемам)
Проверьте, существует ли кодекс поведения, руководящие принципы содействия или что-то в этом роде (и соблюдаются ли они).
Присоединяйтесь к каналу (каналам) связи, чтобы увидеть, как взаимодействует сообщество, Знайте, что существует множество проектов и сообществ, которые хотели бы, любят, ЛЮБЯТ вашу помощь!
Заблуждения об OSS или когда OS это не ваш путь
Работодатель или контракт этого не допускают
Это может быть веской причиной для того, чтобы вы не вносили свой вклад, особенно в код. Возможно, вы все еще сможете помочь сообществу, отвечая на вопросы других пользователей, делясь своим опытом, создавая проблемы или добавляя к ним соответствующую информацию.
Если ваш работодатель использует конкретный проект с открытым исходным кодом, подумайте о том, чтобы предложить ему стать спонсором. Несколько проектов принимают пожертвования через OpenCollective, Patreon или другие платформы. Это отличная идея, чтобы по-прежнему быть полезным!
«Не уверен, что это ошибка или как ее исправить»
Если у вас есть вопросы, пожалуйста, свяжитесь с сообществом. Во многих проектах есть активное сообщество пользователей, готовых вам помочь. Если вы не уверены, что нашли ошибку, просто спросите их. Они сообщат вам, следует ли регистрировать проблему. Они также запросят у вас информацию, необходимую им для ее исправления.
Если вы хотите добавить функцию, но не знаете как, возможно, найдутся люди, которые помогут вам начать. Они могли бы указать вам правильное направление относительно того, где внести изменения, или дать представление о том, как продвигается проект. Предложение вашего изменения до того, как вы проделаете большую работу над ним, также помешает вам создать функцию, которая может не соответствовать направлению проекта.
«У меня нет времени»
Опять же, достаточно справедливо. У вас могут быть другие приоритеты в вашей жизни. Не все взносы должны быть большими или занимать много времени. Возможно, есть небольшие вещи, которые вы можете сделать. Возможно, вы сможете выполнять их на работе, если они связаны с вашей работой (и ваш работодатель позволяет вам это!). Взаимодействие с сообществом, задавая вопросы и отвечая на них или регистрируя проблемы, также может принести пользу сообществу!
«Нет базовых знаний»
Пожалуйста, не стоит недооценивать ценность свежей пары глаз!
Документация, особенно руководства для начинающих, должна быть понятна даже новичкам в проекте. Сам проект должен быть простым в использовании. Если это не так, то это ваш шанс оставить ценный отзыв!
Если у вас возникли какие-либо проблемы при использовании проекта, свяжитесь с сообществом и сообщите им об этом. И если они находят время, чтобы помочь вам, почему бы не задокументировать то, что вы узнали, для следующего человека, который придет?
Даже если у вас сейчас нет никаких проблем, вы все равно можете прочитать документацию и оставить отзыв.
НАЧНИТЕ ПРЯМО СЕЙЧАС
Независимо от того, используете ли вы открытый исходный код, и как бы мало вы ни чувствовали, что должны внести свой вклад, есть множество небольших способов улучшить его.
Я надеюсь, что дал вам несколько идей, которые можно попробовать. Пожалуйста, найдите способ внести свой вклад в ваш любимый проект с открытым исходным кодом прямо сейчас и дайте мне знать, если у вас возникнут какие-либо вопросы!
Дополнительная информация об OS проектах
Глоссарий проекта CNCF
Глоссарий Cloud Native призван объяснить концепции облачных приложений ясным и простым языком, не требуя каких-либо предварительных технических знаний.
Есть много способов стать участником этого сообщества. Вы можете внести свой вклад, добавив новые термины или помогая перевести глоссарий. Любой может внести свой вклад, и все вклады одинаково важны и помогают сообществу расти.
Перейдите на официальную страницу «как внести свой вклад» для получения более подробной информации, такой как стили, лучшие практики и т.д.
По этой ссылке вы можете просмотреть все термины, ожидающие перевода (измените метку на свой язык. Например, хинди будет меткой: lang / hi, французский будет меткой: lang / fr)
Я рекомендую вам сначала ознакомиться с динамикой проекта, внеся свой вклад в перевод терминов, прежде чем предлагать новый термин.
Официальный репозиторий проекта на Github можно найти здесь.
Вы также можете напрямую взаимодействовать со всеми, кто участвует в CNCF slack. Присоединяйтесь к каналам локализации на вашем языке, например #глоссарий-локализация-португальский или #глоссарий-локализация-хинди.
Веб-сайт проекта Kubernetes
Здесь применима та же философия; любой желающий может внести свой вклад в документацию. Любое улучшение существующего контента и перевода приветствуется.
Тем не менее, это захватывающий проект, потому что это уникальная возможность помочь сообществу и узнать больше о Kubernetes.
На этой странице вы найдете руководство о том, как внести свой вклад в документацию Kubernetes.
Благодаря нашим выдающимся авторам, вы можете просматривать страницу на другом языке (измените его в правом верхнем углу).
Официальный репозиторий проекта на Github можно найти здесь
Вы также можете напрямую поговорить с вовлеченными людьми и с различными участниками через канал на slack. Опять же, присоединяйтесь к группе на вашем языке, например #kubernetes-docs-pt.
Заключение
Я надеюсь, что мой перевод был полезен и вы найдёте себя в каком-либо OS проекте или создадите свой!