Организация проекта 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). Слиятель не должен сливать изменение, автором которого является в первую очередь этот слиятель, если только запрос не был одобрен:
- другое слияние,
- a steering council member,
- член triage & review team, или
- член security team.
- Инициировать обсуждение незначительного изменения в соответствующем месте и попросить других слиятелей воздержаться от его слияния, пока идет обсуждение.
- Requesting a vote of the steering council regarding any minor change if, in the Merger’s opinion, discussion has failed to reach a consensus.
- Requesting a vote of the steering council when a major change (significant enough to require the use of the DEP process) reaches one of its implementation milestones and is intended to merge.
Роль в проекте¶
The steering council selects Mergers as necessary to maintain their number at a minimum of three, in order to spread the workload and avoid over-burdening or burning out any individual Merger. There is no upper limit to the number of Mergers.
Это не обязательное условие, чтобы Merger был также Django Fellow, но Django Software Foundation имеет право использовать финансирование позиций Fellow как способ сделать роль Merger устойчивой.
На роль Слияния распространяются следующие ограничения:
- A person must not simultaneously serve as a member of the steering council. If a Merger is elected to the steering council, they shall cease to be a Merger immediately upon taking up membership in the steering council.
- Один человек может одновременно выполнять функции Освободителя и Слияния.
The selection process, when a vacancy occurs or when the steering council deems it necessary to select additional persons for such a role, occur as follows:
- Любой член с хорошей репутацией на соответствующей дискуссионной площадке или совет Django Software Foundation, действующий с подачи стипендиального комитета DSF, может предложить кандидатуру на рассмотрение.
- The steering council considers the suggestions put forth, and then any member of the steering council formally nominates a candidate for the role.
- The steering council votes on nominees.
Mergers may resign their role at any time, but should endeavor to provide some advance notice in order to allow the selection of a replacement. Termination of the contract of a Django Fellow by the Django Software Foundation temporarily suspends that person’s Merger role until such time as the steering council can vote on their nomination.
В противном случае слияние может быть устранено путем:
- Becoming disqualified due to election to the steering council.
- Дисквалификация из-за действий, предпринятых комитетом по соблюдению кодекса поведения Django Software Foundation.
- A vote of the steering council.
Релизеры¶
Роль¶
Релизёры - это небольшой круг людей, которые имеют право загружать упакованные релизы Django на Python Package Index и на сайт djangoproject.com.
Прерогативы¶
Releasers build Django releases и загрузите их на Python Package Index, а также на сайт djangoproject.com.
Роль в проекте¶
The steering council selects Releasers as necessary to maintain their number at a minimum of three, in order to spread the workload and avoid over-burdening or burning out any individual Releaser. There is no upper limit to the number of Releasers.
Не обязательно, чтобы релизер был также Django Fellow, но Django Software Foundation имеет право использовать финансирование позиций Fellow как способ сделать роль релизера устойчивой.
Один человек может одновременно выполнять функции Освободителя и Слияния.
The selection process, when a vacancy occurs or when the steering council deems it necessary to select additional persons for such a role, occur as follows:
- Любой член с хорошей репутацией на соответствующей дискуссионной площадке или совет Django Software Foundation, действующий с подачи стипендиального комитета DSF, может предложить кандидатуру на рассмотрение.
- The steering council considers the suggestions put forth, and then any member of the steering council formally nominates a candidate for the role.
- The steering council votes on nominees.
Releasers may resign their role at any time, but should endeavor to provide some advance notice in order to allow the selection of a replacement. Termination of the contract of a Django Fellow by the Django Software Foundation temporarily suspends that person’s Releaser role until such time as the steering council can vote on their nomination.
В противном случае Освободитель может быть удален путем:
- Дисквалификация из-за действий, предпринятых комитетом по соблюдению кодекса поведения Django Software Foundation.
- A vote of the steering council.
Руководящий совет¶
Роль¶
The steering council is a group of experienced contributors who:
- обеспечивать надзор за процессом разработки и выпуска Django,
- помогать в определении направления развития и выпуска функций,
- принимать участие в выполнении определенных ролей, и
- иметь право решающего голоса, когда другие процессы принятия решений не работают.
Их основной задачей является поддержание качества и стабильности Django Web Framework.
Прерогативы¶
The steering council holds the following prerogatives:
- Принятие обязательного решения по любому вопросу, касающемуся технических изменений в Django.
- Наложение вето на слияние любого конкретного фрагмента кода в Django или распоряжение об отмене любого конкретного слияния или фиксации.
- Объявляется конкурс предложений и идей для будущего технического направления Django.
- Установление и корректировка графика релизов Django.
- Выбор и удаление слиятелей и освободителей.
- Participating in the removal of members of the steering council, when deemed appropriate.
- Calling elections of the steering council outside of those which are automatically triggered, at times when the steering council deems an election is appropriate.
- Участие в изменении управления Django (см. Изменение организации).
- Declining to vote on a matter the steering council feels is unripe for a binding decision, or which the steering council feels is outside the scope of its powers.
- Принятие на себя руководства другими техническими командами в рамках проекта Django с открытым исходным кодом и соответствующее управление этими командами.
Роль в проекте¶
The steering council is an elected group of five experienced contributors who demonstrate:
- История существенного вклада в Django или экосистему Django. Эта история должна начинаться не менее чем за 18 месяцев до выдвижения кандидатуры в Руководящий совет и включать существенный вклад по крайней мере в двух из этих пунктов: - Внесение кода в проекты Django или основные пакеты сторонних разработчиков в экосистеме Django - Рассмотрение запросов на внесение изменений и/или обработка тикетов по проектам Django - Документация, учебники или сообщения в блогах - Обсуждение Django в списке рассылки django-developers или на форуме Django - Проведение мероприятий или групп пользователей, связанных с Django.
- История взаимодействия с направлением и будущим Django. Это не обязательно должно быть недавним, но кандидаты, которые не участвовали в этом в течение последних трех лет, должны продемонстрировать понимание изменений и направления развития Django в течение этих трех лет.
A new council is elected after each release cycle of Django. The election process works as follows:
- The steering council directs one of its members to notify the Secretary of the Django Software Foundation, in writing, of the triggering of the election, and the condition which triggered it. The Secretary post to the appropriate venue – the django-developers mailing list and the Django forum to announce the election and its timeline.
- Как только объявляются выборы, DSF Board начинают период регистрации избирателей. Все individual members of the DSF автоматически регистрируются и не нуждаются в явной регистрации. Все остальные лица, которые считают себя имеющими право голоса, но еще не зарегистрировались, могут подать заявление в Совет ДФС о предоставлении им избирательных прав. Форма регистрации избирателей и список избирателей хранятся в Правлении DSF. Совет DSF может оспорить и отказать в регистрации избирателям, которые, по его мнению, регистрируются недобросовестно или, по его мнению, фальсифицировали свою квалификацию или иным образом не соответствуют требованиям.
- Registration of voters close one week after the announcement of the election. At that point, registration of candidates begin. Any qualified person may register as a candidate. The candidate registration form and roster of candidates are maintained by the DSF Board, and candidates must provide evidence of their qualifications as part of registration. The DSF Board may challenge and reject the registration of candidates it believes do not meet the qualifications of members of the Steering Council, or who it believes are registering in bad faith.
- Регистрация кандидатов заканчивается через неделю после ее открытия. Через неделю после окончания регистрации кандидатов секретарь DSF публикует список кандидатов в списке рассылки django-developers и в Django forum, и начинаются выборы. Совет DSF предоставляет форму для голосования, доступную зарегистрированным избирателям, и является хранителем голосов.
- Голосование проводится путем тайного голосования с использованием списка кандидатов и любых соответствующих материалов, касающихся кандидатов, в случайном порядке. Каждый избиратель может проголосовать не более чем за пять кандидатов в бюллетене.
- The election conclude one week after it begins. The DSF Board then tally the votes and produce a summary, including the total number of votes cast and the number received by each candidate. This summary is ratified by a majority vote of the DSF Board, then posted by the Secretary of the DSF to the django-developers mailing list and the Django Forum. The five candidates with the highest vote totals are immediately become the new steering council.
A member of the steering council may be removed by:
- Дисквалификация из-за действий, предпринятых комитетом по соблюдению кодекса поведения Django Software Foundation.
- Determining that they did not possess the qualifications of a member of the steering council. This determination must be made jointly by the other members of the steering council, and the DSF Board. A valid determination of ineligibility requires that all other members of the steering council and all members of the DSF Board vote who can vote on the issue (the affected person, if a DSF Board member, must not vote) vote «yes» on a motion that the person in question is ineligible.
Изменение организации¶
Изменения в этом документе требуют использования DEP process, с изменениями, описанными в DEP 0010.