Организация проекта Django

Принципы

Проект Django управляется командой добровольцев, преследующих три цели:

  • Руководство разработкой веб-фреймворка Django,
  • Содействие развитию экосистемы программного обеспечения, связанного с Django-технологиями,
  • Руководство сообществом Django в соответствии с ценностями, описанными в Кодексе поведения Django.

Проект Django не является юридическим лицом. Некоммерческая организация Django Software Foundation занимается финансовыми и юридическими вопросами, связанными с проектом Django. В остальном, Django Software Foundation позволяет Django Project управлять развитием фреймворка Django, его экосистемы и сообщества.

Слияния

Роль

Mergers - это небольшое количество людей, которые объединяют запросы на pull request в Django Git repository.

Прерогативы

Слияния имеют следующие прерогативы:

  • Слияние любого запроса на исправление, который представляет собой minor change (достаточно маленький, чтобы не требовать использования DEP process). Слиятель не должен сливать изменение, автором которого является в первую очередь этот слиятель, если только запрос не был одобрен:
  • Инициировать обсуждение незначительного изменения в соответствующем месте и попросить других слиятелей воздержаться от его слияния, пока идет обсуждение.
  • Запрос голосования технического совета относительно любого незначительного изменения, если, по мнению Слияния, обсуждение не привело к консенсусу.
  • Запрос голосования технического совета, когда major change (достаточно значимый, чтобы потребовать использования DEP process) достигает одного из этапов реализации и предназначен для слияния.

Роль в проекте

The technical board выбирает Слияния по мере необходимости, чтобы поддерживать их число на уровне не менее трех, чтобы распределить нагрузку и избежать перегрузки или истощения каждого отдельного Слияния. Верхнего предела числа Слияний не существует.

Это не обязательное условие, чтобы Merger был также Django Fellow, но Django Software Foundation имеет право использовать финансирование позиций Fellow как способ сделать роль Merger устойчивой.

На роль Слияния распространяются следующие ограничения:

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

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

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

Слиятели могут отказаться от своей роли в любое время, но должны постараться предупредить об этом заранее, чтобы можно было выбрать замену. Расторжение контракта Django Fellow со стороны Django Software Foundation временно приостанавливает роль мерча до того момента, когда технический совет сможет проголосовать по его кандидатуре.

В противном случае слияние может быть устранено путем:

  • Дисквалификация в связи с избранием в технический совет.
  • Дисквалификация из-за действий, предпринятых комитетом по соблюдению кодекса поведения Django Software Foundation.
  • Голосование технического совета.

Релизеры

Роль

Релизёры - это небольшой круг людей, которые имеют право загружать упакованные релизы Django на Python Package Index и на сайт djangoproject.com.

Прерогативы

Releasers build Django releases и загрузите их на Python Package Index, а также на сайт djangoproject.com.

Роль в проекте

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

Не обязательно, чтобы релизер был также Django Fellow, но Django Software Foundation имеет право использовать финансирование позиций Fellow как способ сделать роль релизера устойчивой.

Один человек может одновременно выполнять функции Освободителя и Слияния.

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

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

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

В противном случае Освободитель может быть удален путем:

  • Дисквалификация из-за действий, предпринятых комитетом по соблюдению кодекса поведения Django Software Foundation.
  • Голосование технического совета.

Технический совет

Роль

Технический совет - это группа опытных участников, которые:

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

Их основной задачей является поддержание качества и стабильности Django Web Framework.

Прерогативы

Технический совет обладает следующими прерогативами:

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

Роль в проекте

The technical board - это избранная группа из пяти опытных участников, которые демонстрируют:

  • История технического вклада в Django или экосистему Django. Эта история должна начинаться не менее чем за 18 месяцев до выдвижения кандидатуры в технический совет.
  • История участия в разработке Django за пределами вкладов, слитых в Django Git repository. Это может включать, но не ограничиваться:
    • Участие в обсуждениях в списке рассылки django-developers или Django forum.
    • Рассмотрение и предложение отзывов на запросы на изменение исходного кода в репозитории Django.
    • Помощь в обработке и управлении трекером ошибок Django.
  • История недавнего участия в направлении и развитии Django. Такое участие должно происходить в течение периода не более двух лет до выдвижения кандидатуры в технический совет.

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

  1. Технический совет поручает одному из своих членов письменно уведомить секретаря Django Software Foundation о начале выборов и условиях, которые их вызвали. Секретарь публикует в соответствующих местах - в списке рассылки django-developers и Django forum - объявление о выборах и сроках их проведения.
  2. Как только объявляются выборы, DSF Board начинают период регистрации избирателей. Все individual members of the DSF автоматически регистрируются и не нуждаются в явной регистрации. Все остальные лица, которые считают себя имеющими право голоса, но еще не зарегистрировались, могут подать заявление в Совет ДФС о предоставлении им избирательных прав. Форма регистрации избирателей и список избирателей хранятся в Правлении DSF. Совет DSF может оспорить и отказать в регистрации избирателям, которые, по его мнению, регистрируются недобросовестно или, по его мнению, фальсифицировали свою квалификацию или иным образом не соответствуют требованиям.
  3. Регистрация избирателей заканчивается через неделю после объявления выборов. В этот момент начинается регистрация кандидатов. Любое квалифицированное лицо может зарегистрироваться в качестве кандидата. Форма регистрации кандидатов и реестр кандидатов ведутся Советом ФУБ, и кандидаты должны предоставить доказательства своей квалификации в рамках регистрации. Совет DSF может оспорить и отклонить регистрацию кандидатов, которые, по его мнению, не соответствуют квалификации членов Технического совета, или которые, по его мнению, регистрируются недобросовестно.
  4. Регистрация кандидатов заканчивается через неделю после ее открытия. Через неделю после окончания регистрации кандидатов секретарь DSF публикует список кандидатов в списке рассылки django-developers и в Django forum, и начинаются выборы. Совет DSF предоставляет форму для голосования, доступную зарегистрированным избирателям, и является хранителем голосов.
  5. Голосование проводится путем тайного голосования с использованием списка кандидатов и любых соответствующих материалов, касающихся кандидатов, в случайном порядке. Каждый избиратель может проголосовать не более чем за пять кандидатов в бюллетене.
  6. Выборы завершаются через неделю после их начала. Затем Совет DSF подсчитывает голоса и составляет сводку, включающую общее число поданных голосов и число голосов, полученных каждым кандидатом. Эти итоги утверждаются большинством голосов Совета DSF, затем секретарь DSF публикует их в списке рассылки django-developers и на форуме Django. Пять кандидатов с наибольшим количеством голосов сразу же становятся новым техническим советом.

Член технического совета может быть отстранен от должности путем:

  • Дисквалификация из-за действий, предпринятых комитетом по соблюдению кодекса поведения Django Software Foundation.
  • Определение того, что они не обладают квалификацией члена технического совета. Это определение должно быть вынесено совместно другими членами технического совета и DSF Board. Действительное определение неправомочности требует, чтобы все остальные члены технического совета и все члены Совета DSF, которые могут голосовать по данному вопросу (пострадавшее лицо, если оно является членом Совета DSF, не должно голосовать) проголосовали «за» на предложение о том, что данное лицо неправомочно.

Изменение организации

Изменения в этом документе требуют использования DEP process, с изменениями, описанными в DEP 0010.

Вернуться на верх