Организация проекта Django¶
Принципы¶
Проект Django управляется командой добровольцев, преследующих три цели:
- Руководит разработкой веб-фреймворка Django,
- Содействие развитию экосистемы программного обеспечения, связанного с Django-технологиями,
- Руководство сообществом Django в соответствии с ценностями, описанными в Кодексе поведения Django.
Проект Django не является юридическим лицом. Некоммерческая организация Django Software Foundation занимается финансовыми и юридическими вопросами, связанными с проектом Django. В остальном, Django Software Foundation позволяет Django Project управлять развитием фреймворка Django, его экосистемы и сообщества.
Слияния¶
Роль¶
Mergers - это небольшое количество людей, которые объединяют запросы на pull request в Django Git repository.
Прерогативы¶
Mergers hold the following prerogatives:
- Слияние любого запроса на исправление, который представляет собой minor change (достаточно маленький, чтобы не требовать использования DEP process). Слиятель не должен сливать изменение, автором которого является в первую очередь этот слиятель, если только запрос не был одобрен:
- другое слияние,
- a technical board member,
- член triage & review team, или
- член security team.
- Инициировать обсуждение незначительного изменения в соответствующем месте и попросить других слиятелей воздержаться от его слияния, пока идет обсуждение.
- Запрос голосования технического совета относительно любого незначительного изменения, если, по мнению Слияния, обсуждение не привело к консенсусу.
- Запрос голосования технического совета, когда major change (достаточно значимый, чтобы потребовать использования DEP process) достигает одного из этапов реализации и предназначен для слияния.
Членство¶
The technical board выбирает Слияния по мере необходимости, чтобы поддерживать их число на уровне не менее трех, чтобы распределить нагрузку и избежать перегрузки или истощения каждого отдельного Слияния. Верхнего предела числа Слияний не существует.
Это не обязательное условие, чтобы Merger был также Django Fellow, но Django Software Foundation имеет право использовать финансирование позиций Fellow как способ сделать роль Merger устойчивой.
На роль Слияния распространяются следующие ограничения:
- Лицо не может одновременно являться членом технического совета. Если в состав технического совета избирается слияние, оно перестает быть слиянием сразу после вступления в члены технического совета.
- Один человек может одновременно выполнять функции Освободителя и Слияния.
Процесс отбора, когда возникает вакансия или когда технический совет считает необходимым отобрать дополнительных лиц на эту роль, происходит следующим образом:
- Любой член с хорошей репутацией на соответствующей дискуссионной площадке или совет Django Software Foundation, действующий с подачи стипендиального комитета DSF, может предложить кандидатуру на рассмотрение.
- Технический совет рассматривает выдвинутые предложения, а затем любой член технического совета официально выдвигает кандидата на эту роль.
- The technical board votes on nominees.
Слиятели могут отказаться от своей роли в любое время, но должны постараться предупредить об этом заранее, чтобы можно было выбрать замену. Расторжение контракта Django Fellow со стороны Django Software Foundation временно приостанавливает роль мерча до того момента, когда технический совет сможет проголосовать по его кандидатуре.
В противном случае слияние может быть устранено путем:
- Дисквалификация в связи с избранием в технический совет.
- Дисквалификация из-за действий, предпринятых комитетом по соблюдению кодекса поведения Django Software Foundation.
- A vote of the technical board.
Релизеры¶
Роль¶
Релизёры - это небольшой круг людей, которые имеют право загружать упакованные релизы 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, может предложить кандидатуру на рассмотрение.
- Технический совет рассматривает выдвинутые предложения, а затем любой член технического совета официально выдвигает кандидата на эту роль.
- The technical board votes on nominees.
Релизеры могут отказаться от своей роли в любое время, но должны постараться предупредить об этом заранее, чтобы можно было выбрать замену. Прекращение контракта Django Fellow со стороны Django Software Foundation временно приостанавливает роль релизера этого человека до того момента, когда технический совет сможет проголосовать по его кандидатуре.
В противном случае, освободитель может быть удален путем:
- Дисквалификация из-за действий, предпринятых комитетом по соблюдению кодекса поведения Django Software Foundation.
- A vote of the technical board.
Технический совет¶
Роль¶
The technical board is a group of experienced contributors who:
- обеспечивать надзор за процессом разработки и выпуска Django,
- помогать в определении направления развития и выпуска функций,
- принимать участие в выполнении определенных ролей, и
- иметь право решающего голоса, когда другие процессы принятия решений не работают.
Their main concern is to maintain the quality and stability of the Django Web Framework.
Прерогативы¶
The technical board holds the following prerogatives:
- Принятие обязательного решения по любому вопросу, касающемуся технических изменений в Django.
- Наложение вето на слияние любого конкретного фрагмента кода в Django или распоряжение об отмене любого конкретного слияния или фиксации.
- Объявляется конкурс предложений и идей для будущего технического направления Django.
- Установление и корректировка графика релизов Django.
- Выбор и удаление слияний и высвобождений.
- Участие в отстранении членов технического совета, когда это будет сочтено целесообразным.
- Назначение выборов технического совета, помимо тех, которые проводятся автоматически, в случаях, когда технический совет считает выборы необходимыми.
- Участие в изменении управления Django (см. Изменение организации).
- Отказ от голосования по вопросу, который, по мнению технического совета, не созрел для принятия обязательного решения, или который, по мнению технического совета, выходит за рамки его полномочий.
- Принятие на себя руководства другими техническими командами в рамках проекта Django с открытым исходным кодом и соответствующее управление этими командами.
Членство¶
The technical board is an elected group of five experienced contributors who demonstrate:
- История технического вклада в Django или экосистему Django. Эта история должна начинаться не менее чем за 18 месяцев до выдвижения кандидатуры в технический совет.
- История участия в разработке Django за пределами вкладов, слитых в Django Git repository. Это может включать, но не ограничиваться:
- Участие в обсуждениях в списке рассылки django-developers или Django forum.
- Рассмотрение и предложение отзывов на запросы на изменение исходного кода в репозитории Django.
- Assisting in triage and management of the Django bug tracker.
- История недавнего участия в направлении и развитии Django. Такое участие должно происходить в течение периода не более двух лет до выдвижения кандидатуры в технический совет.
A new board is elected after each release cycle of Django. The election process works as follows:
- Технический совет поручает одному из своих членов письменно уведомить секретаря Django Software Foundation о начале выборов и условиях, которые их вызвали. Секретарь публикует в соответствующих местах - списке рассылки django-developers и Django forum - объявление о выборах и их сроках.
- Как только объявляются выборы, DSF Board начинают период регистрации избирателей. Все individual members of the DSF автоматически регистрируются и не нуждаются в явной регистрации. Все остальные лица, которые считают себя имеющими право голоса, но еще не зарегистрировались, могут подать заявление в Совет ДФС о предоставлении им избирательных прав. Форма регистрации избирателей и список избирателей хранятся в Правлении DSF. Совет DSF может оспорить и отклонить регистрацию избирателей, которые, по его мнению, регистрируются недобросовестно или, по его мнению, фальсифицировали свои квалификационные данные или иным образом не соответствуют требованиям.
- Регистрация избирателей заканчивается через неделю после объявления выборов. В этот момент начинается регистрация кандидатов. Любое квалифицированное лицо может зарегистрироваться в качестве кандидата. Форма регистрации кандидатов и реестр кандидатов ведутся Советом ФУБ, и кандидаты должны предоставить доказательства своей квалификации в рамках регистрации. Совет DSF может оспорить и отклонить регистрацию кандидатов, которые, по его мнению, не соответствуют квалификации членов Технического совета, или которые, по его мнению, регистрируются недобросовестно.
- Регистрация кандидатов заканчивается через неделю после ее открытия. Через неделю после окончания регистрации кандидатов секретарь DSF публикует список кандидатов в списке рассылки django-developers и в Django forum, и начинаются выборы. Совет DSF предоставляет форму для голосования, доступную зарегистрированным избирателям, и является хранителем голосов.
- Голосование проводится путем тайного голосования с использованием списка кандидатов и всех соответствующих материалов, касающихся кандидатов, в случайном порядке. Каждый избиратель может проголосовать не более чем за пять кандидатов в бюллетене.
- Выборы завершаются через неделю после их начала. Затем Совет DSF подсчитывает голоса и составляет сводку, включающую общее число поданных голосов и число голосов, полученных каждым кандидатом. Эти итоги утверждаются большинством голосов Совета DSF, затем секретарь DSF публикует их в списке рассылки django-developers и на форуме Django. Пять кандидатов с наибольшим количеством голосов сразу же становятся новым техническим советом.
Член технического совета может быть отстранен от должности путем:
- Дисквалификация из-за действий, предпринятых комитетом по соблюдению кодекса поведения Django Software Foundation.
- Определение того, что они не обладают квалификацией члена технического совета. Это определение должно быть вынесено совместно другими членами технического совета и DSF Board. Действительное определение неправомочности требует, чтобы все остальные члены технического совета и все члены Совета DSF, которые могут голосовать по данному вопросу (пострадавшее лицо, если оно является членом Совета DSF, не должно голосовать) проголосовали «за» на предложение о том, что данное лицо неправомочно.
Изменение организации¶
Изменения в этом документе требуют использования DEP process, с изменениями, описанными в DEP 0010.