Flexberry / rfcs

RFCs for changes to Flexberry
https://github.com/flexberry-app-sandbox
2 stars 8 forks source link
rfc-process

Flexberry RFC

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

Однако некоторые изменения являются более "существенными" и соответственно требуют предварительного проектирования и согласования с основной командой разработки платформы Flexberry.

Процесс запросов на комментарии (RFC - Request For Comments) обеспечивает возможность согласованного и контролируемого принятия существенных изменений, касающихся платформы Flexberry.

Список обсуждаемых RFC

Когда необходимо использовать RFC

Необходимо использовать процесс RFC в случае желания или необходимости внести более "существенные" изменения в любые фреймворки, подсистемы, библиотеки или документацию, входящие в состав платформы Flexberry.

Понятие "существенных" изменений формируется нормами сообщества, но обычно включает в себя следующее:

Примеры изменений, которые не требуют RFC:

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

Получение обратной связи перед созданием RFC

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

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

Что представляет собой процесс RFC

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

Жизненный цикл RFC

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

Кроме того, активный статус RFC ничего не говорит о приоритете его реализации. Также этот статус не говорит о том, что кто-то вообще работает над реализацией соответствующего функционала RFC.

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

Реализация RFC

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

Если Вы заинтересованы реализовать активный RFC, но не знаете, работает ли кто-то над соответствующим RFC, не стесняйтесь спросить об этом (например, оставив комментарий в обсуждении (issue), связанным с соответствующим RFC).

Проверка RFC

Каждую неделю основная команда разработки старается проверить некоторые из открытых пулл реквестов с RFC.

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

Примеры

Создание процесса RFC платформы Flexberry вдохновлено процессом RFC фреймворка Ember.js.