Основы этикета для проектов с открытым исходным кодом

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

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

Подумайте, почему вы вносите свой вклад в проект

Прежде чем начать вносить свой вклад в проект с открытым исходным кодом, спросите себя, почему вы хотите это сделать. Это нормально, если ответ на этот вопрос будет просто: «Мне скучно, и я хочу найти занятие, которое позволит мне сделать что-нибудь полезное в свободное время», но у вас может быть другая мотивация.

Более подходящие причины могут быть такими:

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

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

Вот некоторые не очень хорошие причины, чтобы начать вносить свой вклад:

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

Ваше присутствие в проекте должно быть продуктивным и не мешать другим продуктивно работать.

Будьте вежливы, будьте добры, избегайте провоцирующих или оскорбительных выражений

Мы могли бы сократить это до «будь добр». Это наш совет номер один для всех, кто начинает участвовать в проекте с открытым исходным кодом.

Будьте добры к другим участникам проекта, чтобы сделать его более приятным и продуктивным местом. Следуйте нижеприведенным правилам:

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

Вы и другие участники находятся (или должны быть) здесь, потому что хотите внести положительный вклад в проект, но помимо этого, вы можете многого не знать о них. Например, их:

  • Знание проекта и технологий, использованных при его создании.
  • Пол, сексуальная ориентация, возраст, языки, местоположение, политические взгляды, религия или другие личные качества.
  • Опыт работы с проектами с открытым исходным кодом
  • Уверенность
  • Ожидания
  • Чувство юмора

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

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

Имейте в виду, что в любом хорошем проекте с открытым исходным кодом существуют правила, защищающие его участников от дискомфорта, когда они вносят свой вклад. Обычно эти правила находятся в файле CODE_OF_CONDUCT.md на GitHub.

Например, репозитории MDN регулируются широко распространенными Рекомендациями по участию в сообществе Mozilla. Обычно при умеренно неподобающем поведении в репозиториях MDN (например, постоянное несоблюдение темы, нарушение работы или грубость) высылается предупреждение, за которым следует последнее предупреждение, а затем временный или постоянный бан. Более серьёзные поведенческие проблемы, такие как оскорбления или угрозы в адрес другого участника, недопустимы и, скорее всего, приведут к мгновенному бану.

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

Выбирайте полезные вклады в проект

Подумайте, чем вы хотите заниматься в проекте. Например, у нас есть большой список проблем, расположенный на https://github.com/mdn/content/issues, разбитый по различным категориям GitHub таких, как предполагаемое время на исправления, вид технологий и многое другое. Ещё одна хорошая категория, на которую стоит обратить внимание, — «good first issue». Она обычно присваивается задачам, которые довольно просты и удобны для начинающих, с которых можно начать работу над проектом. Мы также вскоре собираемся начать более тщательную сортировку наших проблем, добавляя другие категории, такие как индикаторы приоритета. Попробуйте выбрать несколько проблем, с которыми, по вашему мнению, вы сможете справиться, используя имеющееся у вас время, и попросите, чтобы вас назначили на них

Вы также можете внести свой вклад, открывая пулреквесты, чтобы исправить проблемы, с которыми вы сталкиваетесь при чтении статей MDN.

Большая часть работы над MDN вращается вокруг написания документации и примеров кода, но есть и другие способы внести свой вклад:

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

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

  • Обновление стиля кода только потому, что «вам больше нравится этот стиль».
  • Обновление стиля изложения «просто потому, что он вам больше нравится».
  • Замена страниц с американского английского на британский английский.
  • Добавление или удаление множества знаков препинания, когда на самом деле все в порядке.
  • Изменение фреймворка тестирования, который мы используем, на что-то другое, потому, что вам так больше нравится.

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

Читайте руководство

Хорошие проекты всегда делают документацию доступной для участников. В проектах GitHub она обычно находится в файле CONTRIBUTING.md репозитория или иногда в файле README.md проекта. Будучи проектом документации, в контентной части MDN есть README и приличный набор документов для участников на самом сайте (см. Участие в развитии MDN).

Хорошее правило: не бойтесь просить о помощи, но ВСЕГДА постарайтесь найти ответ на свой вопрос, прежде чем спрашивать. Таким образом вы улучшите свои знания о проекте и станете более независимыми и не возложите ненужное бремя на других участников.

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

Выясняйте, где задавать вопросы

Всегда выясняйте, где лучше всего задавать вопросы. Хорошие проекты всегда будут чётко указывать на это в своей документации (см. Раздел «Обратитесь за помощью»). Если вы хотите задать общие вопросы, всегда используйте эти каналы. Не создавайте ишью на GitHub для каждого простого вопроса, так как это добавляет шума в проект (см. «Делай прогресс, а не шум» ниже).

Делай прогресс, а не шум

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

Правильно делать так:

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

Не стоит:

  • Усложнять открытые ишью, пытаясь обсудить сразу несколько тем или делая комментарии не по теме.
  • Стараться втиснуть несколько исправлений в один пулреквест. Это значительно усложняет проверку и вызывает подозрения (некоторые люди могут подумать, что вы пытаетесь скрытно добавить вредоносный код).
  • Открывать много ишью, задавая расплывчатые вопросы.
  • Задавать вопросы, не пытаясь сначала решить проблему самостоятельно.

OSP — это демократия (почти)

OSP (проекты с открытым исходным кодом) довольно демократичны — многие решения принимаются на голосовании, и вы в значительной степени свободны вносить свой вклад, как хотите, при условии, что вы не препятствуете другим вносить свой вклад.

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

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

Будьте терпеливы и своевременны

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

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

Неразумно начинать требовать что-то в такой манере, как будто вы имеете право на быстрый ответ.

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

Смотрите также