Перейти к содержанию

Предложение новой функции

Мы всегда открыты для предложений и идей по поводу новых функций или документации для BeeWare. Но как вы можете отправить свою идею на рассмотрение?

Прежде чем начать

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

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

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

Предложение новой функциональности

Самое очевидное предложение — это новый API или функционал. Если у вас есть сценарий использования, который BeeWare в настоящее время не поддерживает, или есть встроенная функция платформы, которую BeeWare в настоящее время не может использовать, вы можете предложить изменение, чтобы устранить этот пробел.

При предложении новой функции имейте в виду, что набор инструментов BeeWare поддерживает несколько платформ. Это означает, что любая новая функция должна:

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

Это не означает, что вы должны отвечать за реализацию функции на каждой платформе. Если у вас нет доступа к оборудованию Apple, неразумно ожидать от вас реализации функции в macOS или iOS. Однако в рамках процесса проектирования мы должны убедиться, что реализация функции в том виде, в котором вы ее описываете, возможна.

Предложение новой документации

Еще одно предложение, которое вы можете сделать, касается улучшения документации. Если у вас есть идеи по улучшению документации для BeeWare, обратите внимание на следующие моменты:

  • Ваше предложение дублирует существующую документацию? Вы предлагаете новое руководство или дополнение к существующему руководству?
  • Как это вписывается в остальную часть экосистемы BeeWare? Является ли этот проект подходящим местом для документирования идеи? Или нам следует документировать функцию в другом проекте и добавить ссылку на эту документацию?
  • Есть ли какая-то высокоуровневая концепция, которую необходимо объяснить, прежде чем какие-либо конкретные инструкции будут иметь смысл?
  • Имеет ли смысл объяснять эту тему, или кто-то уже осветил ее где-то, и мы можем сослаться на эту информацию?

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

Предложение по функционалу

Предложение новой функции

Итак, у вас есть идея по улучшению BeeWare — как вы можете подать эту идею на рассмотрение?

Проведите исследование

Первый шаг — это поиск в системе отслеживания проблем BeeWare существующих проблем с функциональностью (проблемы с тегом «enhancement»), проблем с документацией (проблемы с тегом «documentation») или теמות для обсуждения, чтобы проверить, не было ли эта идея предложена ранее. Если да, и у вас есть новый контекст или идеи, добавьте их в существующую ветку. Если вам нужна помощь в поиске, вы можете обратиться в канал #dev на BeeWare Discord. Мы можем указать вам существующие ветки, предоставить контекст, о котором вы, возможно, не знаете, или связать вашу идею с другой идеей, которая на первый взгляд может показаться не связанной.

Обсудить идею

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

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

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

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

Это не значит, что идея была плохой! Возможно, есть технические причины, по которым ее нельзя реализовать. Например, мы можем отклонить идею, если:

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

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

Преобразовать в официальный запрос на добавление функции

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

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