Мы во «Фланте» любим Open Source — причем не только пишем свои открытые инструменты (werf, shell-operator, grafana-statusmap, сommunity-версия Deckhouse), но и активно участвуем в разработке различных проектов — участвуем в KEP’ах Kubernetes, в составе небольшой группы разрабатываем Dex, вносим вклад в Istio, передаем патчи и сведения о найденных багах в Cilium.
Поэтому мы решили написать несколько материалов о том, какие возможности для контрибьюторов предлагают известные в мире Open Source- и Free Software-организации. В этом материале мы рассмотрим Linux Foundation, его дочку — CNCF и европейское отделение Free Software Foundation. Сразу отметим, что участвовать в Open Source-проектах можно, даже не будучи программистом, — есть немало задач, связанных с продвижением, контентом, переводами, менеджментом.
Linux Foundation
Точка входа для контрибьюторов Linux Foundation — страница Open Source Guides. Participating in Open Source Communities. Тут дана выжимка из огромного опыта участников LF при работе над открытыми проектами.
Зачем вносить вклад в Open Source. Это краткий гайд для компаний о том, какую выгоду они извлекут, работая над Open Source-проектами и выкладывая свои проекты в Open Source.
Как и кем управляются Open Source-проекты. Тут кратко описаны структура и основные роли в Open Source-проектах: лидер, хранители, коммитеры, контрибьюторы, пользователи.
Как работает контрибьюшен. Здесь изложены основные, общие для всех проектов Linux Foundation принципы или даже стратегии — причем основная часть посвящена тому, что у каждого проекта свои законы. Например, отмечается, что для присоединения к конкретному проекту и понимания его правил надо для начала ознакомиться с его README и лицензией, именно там точка правды.
Что для компаний означает быть контрибьютором в Open Source. Этот пункт частично повторяет идеи из первого блока и развивает их. Кстати, этот блок оказался задублированным — видимо, ошибка во время верстки. А так как мы чтим принципы Open Source, то тут же сообщили об этой ошибке по указанным на сайте контактам — это просто удобно подвернувшийся пример того, что можно понимать под контрибьюшеном.
Как правильно вести себя в работе над Open Source-проектами. Тут даются советы о том, как не стать в сообществе изгоем, какого этикета стоит придерживаться, не подавляя при этом свою индивидуальность. Советы, кстати, очень практичные. Например, авторы руководства предлагают для начала «затаиться» и посмотреть, как принято общаться в сообществе, начинать с малых дел и разобраться в системе управления конкретного проекта, понять, как в конкретном проекте принимаются решения и какой логикой руководствуется лидер проекта.
Лучшие практики по работе с Upstream. В этом пункте эксперты LF делятся своим опытом о том, как компаниям — разработчикам Open Source-проектов правильно принимать правки от сообщества, следовать своим же гайдам, почему вносить изменения в Upstream необходимо до того, как они попадут в собственные продукты компании, основанные на Open Source.
11 советов по разработке гайдов для Open Source-проекта. Это советы для компаний по построению правильных принципов управления Open Source-проектами и разработки четкой, понятной документации для будущих контрибьюторов их проектов.
На самом деле это максимально практичное вступление — неважно, работаете вы над одним из проектов Linux Foundation, делаете что-то свое или участвуете в стороннем проекте. Написали его Stormy Peters (Senior Manager, Community Leads, Red Hat) и Nithya Ruff (Senior Director, Open Source Practice, Comcast).
Страница с гайдами по Open Source для Enterprise
На эту страницу сложно попасть с предыдущей страницы — оказалось, что ссылка неправильная (в ней прописан «внутренний» адрес, под которым она разрабатывалась или существовала во время разработки), но мы нагуглили правильный вариант ссылки — вот она.
Здесь собраны подробные руководства для компаний о том, как запускать Open Source-проекты, как сворачивать Open Source-проекты, как повышать эффективность разработки ПО с открытым исходным кодом, проектировать стратегию работы с Open Source и интегрироваться в сообщество, какие инструменты и практики использовать для управления Open Source-проектами.
Повторимся, руководства очень подробные и максимально практичные, без воды.
Раздел Linux Foundation на GitHub с руководствами и кейсами
Это тоже в первую очередь раздел для компаний, которые хотят работать с Open Source или запускать свои Open Source-проекты. Помимо гайдов, которые есть на предыдущей странице, здесь можно найти успешные кейсы по работе с Open Source от мировых техногигантов: Microsoft, Autodesk, Salesforce, RedHat.
Что еще есть в Linux Foundation
Страница для контрибьюторов на этом заканчивается. Однако на сайте Linux Foundation есть еще несколько интересных страниц, о которых стоит сказать в контексте вклада в Open Source.
Список всех проектов Linux Foundation. На этой странице можно найти тот проект, который вам понравится больше. Все проекты находятся в Open Source, и к каждому из них можно присоединиться. Особый интерес представляет раздел «Избранные проекты» — в нем как раз собраны крупные инициативы и организации, существующие в рамках Linux Foundation. И ядро Linux, конечно, — титульный проект LF.
Как передать свой проект на поддержку в Linux Foundation. На этой странице перечисляются варианты проектов LF:
Проекты, которые используют только техническую инфраструктуру Фонда (пример — OpenBMC).
Проекты, которым, помимо этого, нужна еще и финансовая поддержка (пример — Node.js).
Проекты, которые полностью находятся под управлением LF (пример — CNCF).
На этой же странице можно скачать подробный гайд в pdf о том, как захостить свой проект в Linux Foundation, а также протестировать инфраструктуру Linux Foundation для управления открытым проектом — LXF. В конце страницы можно заполнить заявление на передачу своего проекта в Linux Foundation.
LXF Community Forums. Поддомен LXF, на котором можно найти обсуждение открытых проектов Фонда и присоединиться к ним.
Карьера в Linux Foundation. Для тех, кто хочет работать с Open Source на фултайм. Здесь есть ссылки на открытые вакансии Фонда и его проектов и перечисляются основные принципы работы в LF. Вакансии описаны достаточно подробно и конкретно — кстати, конкретика и практичность, похоже, принципы контента Linux Foundation.
Резюме
Конкретных инструкций для контрибьюторов Фонд не дает — только практические рекомендации, относящиеся ко всем проектам сразу. Это объяснимо, потому что в рамках Linux Foundation существует множество проектов, у каждого из которых может быть своя собственная политика в отношении контрибьюторов, и даже отдельные крупные организации вроде CNCF.
А уже на уровне отдельных инициатив и проектов Фонда есть программы амбассадоров, конкретные инструкции по работе с проектами, списки рассылок или группы общения.
Cloud Native Computing Foundation
Несколько лет назад CNCF запустил лендинг — единую точка входа для всех, кто хотел бы участвовать в работе над проектами и технологиями организации (например, над теми же Kubernetes, Prometheus или Istio). Лендинг будет полезен как частным лицам, так и компаниям.
Основная навигация на странице — два больших блока со ссылками «Я хочу быть или уже являюсь контрибьютором» и «Я хочу быть или уже являюсь хранителем (в оригинале — maintainer)». Рассмотрим, что полезного можно найти на лендинге и как лучше всего присоединиться к контрибьюторам CNCF.
Страница для контрибьюторов
Контрибьютор в терминах CNCF — это любой, кто вносит вклад в проект: кодом, координацией, выполнением непрограммистских задач, написанием issues и т. п.
Руководство по быстрому старту в Open Source. В этом руководстве авторы CNCF дают базовые советы о том, как начать контрибьютить в Open Source-проекты cloud native-экосистемы: руководства по Git и как делать PR’ы, как присоединиться к сообществу, почему стоит начать с маленьких задачек, как работать с SSH, где найти рабочие группы с менторами, какие задачи могут выполнять контрибьюторы-программисты и контрибьюторы-непрограммисты, как выбрать себе проект.
Словарь cloud native-терминов. В нем даются определения основным терминам, которые связаны с облачными технологиями. Кстати, прямо сейчас мы переводим его на русский язык и уже подготовили первые PR’ы с локализацией.
Различные программы с менторингом, в рамках которых можно начать вносить свой вклад в проекты CNCF:
Секция для тех, кто хочет найти себе проект, со ссылками на CNCF Landscape — карту всех проектов CNCF, упорядоченных по зрелости и категориям; CLOTributor — инструмент для поиска «новичковых» задач в проектах CNCF; список всех проектов CNCF с краткой информацией о них и основным языком разработки.
Определение Technical Advisory Groups (TAGs). Это что-то вроде гильдий, которые занимаются обсуждением и составлением рекомендаций по разным направлениям, но не привязаны к конкретному проекту. Например, есть TAG, который занимается вопросами безопасности (TAG Security), или TAG, который занимается хранилищами (TAG Storage). Такие гильдии могут создавать общие рекомендации для всех проектов CNCF и даже выпускать свои White Paper, которые аккумулируют опыт всех участников и дают хороший, глубокий обзор проблем по тематике конкретного TAG, например Cloud Native Security Whitepaper. У каждого TAG есть свои открытые встречи и каналы в Slack-пространстве CNCF (список всех TAGs). Кстати, сам лендинг, который мы рассматриваем, — это результат работы TAG Contributor Strategy :)
Локальные сообщества CNCF. Это что-то вроде небольших групп энтузиастов на местах, которые занимаются продвижением cloud native-технологий и проектов CNCF, проводят митапы и т. п.
Раздел, посвященный программе амбассадоров CNCF. Эта программа похожа на Google Developer Experts — в ее рамках специалисты получают почетный статус CNCF Ambassador в качестве признания своего опыта, знаний, а также вклада в развитие и продвижение технологий и проектов CNCF. Подробности о программе можно почитать на отдельной странице.
Список проектов CNCF. Они делятся на разные категории по степени зрелости, а напротив каждого проекта указываются основной язык разработки и назначение.
Страница для мейнтейнеров
На этой странице собраны инструкции для мейнтейнеров, то есть создателей или основных «двигателей» проекта. Ниже мы перечислим эти инструкции.
Советы по управлению сообществом проекта. В них включаются краткое руководство о том, как сделать проект вендоро нейтральным, гайд по Customer Relationship Management в контексте Open Source-сообществ, методика измерения здоровья проекта и сообщества вокруг него, а также фреймворк по увеличению количества активных разработчиков проекта.
Справочник для менеджеров и руководителей проектов CNCF. Он рассказывает о том, как правильно выращивать лидеров в рамках проекта, как определять миссию, ценности и принципы, а также предлагает верхнеуровневый взгляд на то, что такое управление в контексте проектов CNCF.
Инструкция по обеспечению безопасности проектов. Рассматривает технические и организационные вопросы: как работать с ветками, как выстроить политику прав доступа, как и куда сообщать об уязвимостях, в каких случаях и каким образом правильно раскрывать информацию о них в публичном пространстве и т. п.
Шаблоны. В этом разделе собрано все, что необходимо для старта проекта, — примеры readme-файлов, файлов с информацией о лицензии, все, что касается организационных файлов (списки контрибьюторов, руководства для участников, шаблоны с принципами управления проектами и т. п.).
Главное меню лендинга
Оно располагается на самом верху страницы, и в нем, помимо ссылок на странички для контрибьюторов и мейнтейнеров, есть справка о TAG Contributor Strategy (раздел About) и страничка с полезными материалами. Самое интересное в нем — раздел TAG Contributor Strategy Videos. В этом разделе собраны доклады и выступления членов TAG Contributor Strategy. Координаторы Open Source-проектов точно найдут тут много полезной и интересной информации.
Резюме
У TAG Contributor Strategy получился довольно простой с точки зрения структуры и логичный сайт о том, как внести вклад в развитие и распространение технологий и проектов CNCF. Новички в Open Source с его помощью довольно быстро разберутся в принципах и основных определениях CNCF, найдут себе задачу по интересам и способностям, а также смогут начать общение с более опытными участниками сообщества, чтобы максимально комфортно и быстро влиться в ряды контрибьюторов.
Мы и сами активно участвуем в разработке ряда проектов CNCF (например, Kubernetes и Dex), переводим документацию Kubernetes на русский язык, а также отправляем многочисленные issues и патчи в проекты cloud native-экосистемы. Кроме того, в начала 2023 года мы передали в CNCF разработанную во «Фланте» утилиту werf. Так что будем рады, если кто-то из читателей этой статьи тоже вольется в ряды контрибьюторов CNCF и внесет даже небольшой вклад в облачные технологии.
Free Software Foundation Europe
Инструкции и сайт FSFE сильно отличаются от Linux Foundation и CNCF — европейское отделение FSF нацелено скорее на распространение идей и маркетинг, а не на разработку конкретных проектов. Но и такой вклад во Free Software тоже является полноценным контрибьюшеном, важной частью создания и развития свободного ПО.
Погружение в сообщество FSF Europe начинается со страницы с лаконичным названием Contribute. Страница построена по степени вовлеченности в проекты Фонда — есть четыре степени вовлеченности:
На расстоянии пары кликов: купить мерч, подписаться на рассылку, заказать промо FSF, чтобы распространять его среди своих знакомых, стать спонсором.
Готовы пойти глубже: анонсы событий FSF, международное сообщество и местные группы FSF.
Безудержное желание стать волонтером.
Присоединиться к фонду на фултайм.
По сути, FSFE в первую очередь ищет именно энтузиастов свободного ПО, которые готовы помочь в распространении и «упаковке» идей Фонда, а не разработчиков. Хотя в команде сайта всегда нужны толковые программисты. Но — все по порядку.
На расстоянии пары кликов от FSF
В разделе «Будьте в курсе последних новостей» все достаточно стандартно: есть контакты пресс-центра FSF и возможность подписаться на новостную рассылку. Но есть и кое-что более любопытное — два небольших ролика, объясняющих, что такое FSF и чем отличаются Free Software и Open Source:
Кроме того, под роликами даются ссылки на более «философские» материалы о роли свободного ПО в мире, а также на «прагматичные» странички вроде той, на которой можно скачать логотипы FSF в разных форматах.
Следующий раздел — Spread the word. Здесь размещены форма заказа промоматериалов FSF для разных языков (можно выбрать даже русский язык) и примеры этих самых материалов с техническими подробностями: форматы, размер, лицензия, тип и превью материала. Промоматериалы в основном «пропагандистские» — с лозунгами и философскими заявлениями.
Вот несколько примеров
Среди промоматериалов есть еще много всего интересного — рекомендуем заглянуть и посмотреть весь ассортимент.
Магазин мерча
Тут все довольно стандартно: футболки, шоперы, значки, стикеры, магнитики на холодильник. Но есть одна интересная позиция — забавный детский нагрудник «Я — форк».
Страница для спонсоров
На этой странице можно оформить постоянные или разовые пожертвования — как от частных лиц, так и от компаний.
Готовы пойти дальше
В этом разделе — информация для тех, кто пока не готов вносить существенный вклад в продвижение идей Free Software или в кодовую базу многочисленных свободных проектов, но хотел бы больше общаться с энтузиастами мира свободного ПО. Тут три подраздела: события FSF (в основном анонсы FSFCon в разных странах и городах), контакты сообщества (в отличие от странички с новостными рассылками, здесь вы найдете контакты XMPP-сообществ, списки рассылок, а также аккаунты FSF в специфических свободных соцсетях и мессенджерах — аналогах Twitter и Discord), контакты и сайты местных сообществ и двух особенных объединений — Translators и Women.
Если вы не найдете сообщество из своей страны, можете попробовать организовать свое. На этой же странице размещены ссылка на инструкцию по созданию новой группы, контактные данные координатора программы групп, а также список групп, которые больше не проявляют активности и которые можно оживить.
В руководстве для местных сообществ предлагается ставить стенды не только на ИТ-событиях, но и на «гражданских» фестивалях, где можно встретить и познакомить с идеями FSF много людей не из технической тусовки. Кроме того, кураторы FSF рекомендуют ставить баннеры на улицах, организовывать совместные просмотры фильмов и проводить криптовечеринки — причем они никак не связаны с криптовалютами, на них рассказывается о безопасности в интернете.
Стать полноценным волонтером
В этом разделе FSFE разместили следующие возможности:
Помощь с переводами. Особенно актуальны для FSF перевод новостей, листовок, пресс-релизов, сайта. Общие принципы переводов описаны в wiki, кроме того, тут же можно найти контактные данные координаторов международной команды перевода.
Организация стендов FSF на различных мероприятиях и конференциях. Тут все достаточно солидно, есть FAQ для стендистов (что чаще всего спрашивают посетители), правила оформления стенда, правила поведения на стенде и общения с посетителями и довольно подробно расписанный таймлайн по подготовке стенда — когда и что должно быть готово, о чем надо позаботиться, что важно не упустить из виду.
Участие в работе над сайтом FSFE. Чтобы погрузиться в работу над сайтом, авторы предлагают для начала присоединиться к обсуждениям и спискам рассылок команды сайта. Далее идет перечисление основных технологий, с которыми необходимо уметь работать, чтобы помогать в развитии сайта (XHTML, Git, Bash, Apache). В конце страницы — ссылка на руководство по редактированию wiki-страниц.
Разработка дизайна для проектов FSFE. На страничке с полезными материалами для дизайнеров — гайд по дизайну FSFE, логотипы, списки рассылки.
Стать сотрудником FSFE
Как заявляют авторы, в этом разделе можно подать заявку на присоединение к команде FSFE — в качестве постоянного сотрудника или только на стажировку. В начале страницы можно более подробно разобраться, чем вообще занимается FSFE и какие проекты и инициативы на постоянной основе развивает. Для заявок на участие в стажировках сделана отдельная страничка — на ней рассказывается, чем занимаются стажеры, на какие направления они нужны и как правильно податься на стажировку.
А вот тем, кто хочет работать в FSFE, предлагают следить за новостной лентой сайта — в нее попадают и новые вакансии фонда. Хотя, пожалуй, лучший способ присоединиться к команде — начать контрибьютить в проекты FSFE, общаться с сотрудниками Фонда в мессенджерах, быть у них на виду, проявлять энтузиазм. Вовлеченные люди, которых уже все знают, всегда являются первыми кандидатами на открывшиеся вакансии.
Итоги
Как мы увидели, непосредственное участие в написании кода — лишь одна из многих опций, а свой вклад в Open Source и Free Software можно вносить, даже не будучи разработчиком. Работа над открытыми проектами — хороший способ отблагодарить мир за появление тех же Kubernetes или Linux, получить опыт взаимодействия с международной командой, прокачать свои навыки, найти новых друзей по всему миру или даже получить новую специальность и найти постоянную работу.
Компаниям работа с Open Source позволяет показать свою экспертность, привлечь талантливых разработчиков, усилить свои продукты за счет сообщества и его вклада в Open Source-версии этих продуктов, добиться технологического лидерства и сделать свои продукты более известными среди инженеров.
Все три представленных в статье организации на своих страницах предлагают довольно разные по концепции материалы. Это отражает их статус и задачи. Гигант Linux Foundation не может уходить в конкретику по каждому проекту — слишком их много в рамках Фонда, но берет очень практичными и максимально применимыми в жизни рекомендациями. CNCF, который управляет относительно небольшим, по сравнению с родительским Linux Foundation, пулом проектов, дает максимально подробные инструкции для конечных контрибьюторов — как вносить вклад в проекты, как лидировать проект, как стать амбассадором, где необходима помощь. А известные сильной философской составляющей представители FSF основной упор делают на распространении идей.
В следующих статьях цикла об Open Source мы посмотрим, как работают с контрибьтюторами Apache Foundation и Mozilla, как устроено и для чего создано сообщество TODO Group, рассмотрим принципы контрибьюшена в несколько конкретных Open Source-проектов и поделимся своим опытом работы с Open Source.
P.S.
Читайте также в нашем блоге: