Как поддерживать проекты с открытым исходным кодом

Вступление

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

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

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

Написать полезную документацию

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

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

Наряду с вашим кодом, есть несколько файлов документации, которые вы хотите сохранить в своем каталоге верхнего уровня:

  • ФайлREADME.md, содержащий краткое описание проекта и ваших целей.

  • CONTRIBUTING.md файл с инструкциями по внесению изменений.

  • Лицензия на ваше программное обеспечение, которая может способствовать большему вкладу. Read more about choosing an open-source license here.

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

  • Ageneral guide для ознакомления пользователей с проектом

  • Tutorials, чтобы познакомить людей с различными сценариями использования

  • FAQs для ответов на часто задаваемые вопросы, которые могут возникнуть у пользователей

  • Troubleshooting guides, чтобы помочь пользователям решить проблемы

  • API reference для предоставляет пользователям быстрый способ поиска информации API

  • Release notes с известными ошибками, чтобы пользователи знали, чего ожидать от каждого выпуска

  • Planned features, чтобы отслеживать и объяснять, что будет в будущем

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

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

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

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

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

Организовать вопросы

Issues - это обычно способ отслеживать или сообщать об ошибках, либо запрашивать новые функции для добавления в базу кода. Хостинговые сервисы с открытым исходным кодом, такие как GitHub, GitLab и Bitbucket, предоставят вам интерфейс для себя и других, чтобы отслеживать проблемы в вашем репозитории. Когда вы публикуете открытый исходный код для публики, вы должны ожидать, что сообщество пользователей обнаружит проблемы. Организация и расстановка приоритетов даст вам хорошую дорожную карту предстоящей работы над вашим проектом.

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

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

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

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

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

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

Сделать вклад Вознаграждение

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

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

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

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

Создайте свое сообщество

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

Кроме того, вы можете продвигать свой проект различными способами:

  • Ведение блога

  • Выпуск обзорного или пошагового видео

  • Ведение списка рассылки

  • Активность в социальных сетях

  • Сотрудничество с аналогичными или связанными проектами и их перекрестное продвижение

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

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

  • Вики, которые могут предоставить документацию, которая поддерживается на уровне сообщества

  • Форумы для обсуждения возможных функций и ответов на вопросы

  • Listserv для взаимодействия с сообществом по электронной почте

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

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

Заключение

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

Related