Organizaçaõ do Projeto Django¶
Princípios¶
O Projeto Django é gerenciado por um time de voluntários perseguindo três objetivos:
Dirigir o desenvolvimento do Framework Web Django.
Fomentar o ecossistema de softwares relacionados ao Django.
Liderar a comunidade Django seguindo os princípios descritos no Código de Conduta Django.
O Projeto Django não é uma entidade jurídica. A Django Software Foundation, uma organização sem fins lucrativos, lida com questões financeiras e legais relacionadas ao Projeto Django. Além disso, a Django Software Foundation permite que o Projeto Django gerencie o desenvolvimento do framework Django, seu ecossistema e sua comunidade.
O core team do Django toma as decisões, nomeia seus novos membros, e elege seu corpo técnico. Embora ele tenha poder de decisão em teoria, na prática ele busca usar esse poder o mínimo possível. Consenso custoso deve ser a norma e voto formal uma exceção.
Core team¶
Perfil¶
O core team é um grupo de voluntários confiáveis que gerenciam o Projeto Django. Eles assumem mutis perfis requeridos para atingir os objetivos do projeto, especialmente os que necessitam de um alto nível de confiança. Eles tomam as decisões que moldam o futuro do projeto.
Espera-se dos membros do core team agir como modelos para a comunidade e guardiões de um projeto, em nome da comunidade e de todos aqueles que confiam no Django.
Eles irão intervir, quando necessário, em discussões online ou em eventos oficiais do Django nas raras ocasiões que uma situação que requeira intervenção ocorrer.
Eles têm autoridade sobre a infraestrutura do Projeto Django, incluindo o website do Projeto Django em si, o GitHub do Django e repositórios, o rastreador de bugs Trac, as listas de email, os canais IRC, etc.
Prerrogativas¶
Os membros do core team podem participar de votos formais, tipicamente para nomear novos membros e para eleger o corpo técnico.
Algumas contribuições não precisam de permissão de commit. Dependendo das razões pelas quais um voluntário se une ao time, eles podem ou não ter permissões de commit ao repositório do Django.
Entretanto, caso a necessidade surja, qualquer membro do time pode solicitar permissão de commit escrevendo para a lista de email do core team. O acesso será dado a não ser que a pessoa retire a sua solicitação ou que o corpo técnico vete a proposta.
Membros do core team que tenham permissão de commit são chamados de “committers” ou “core developers”.
Outras permissões, tais como acesso aos servidores, são dadas para aqueles que precisarem delas pelo mesmo processo.
Membros¶
O core team iniciou com as quatro pessoas que criaram o Django. Ele cresceu para menos de uma dúzia de pessoas através da cooptação de voluntários que demonstraram:
uma boa compreensão da filosofia do Projeto Django
um histórico sólido de ser construtivo e prestativo
contribuições significativas para os objetivos do projeto, de qualquer forma
vontade de dedicar algum tempo para melhorar o Django
À medida em que o projeto amadurece, contribuições vão além do código. Segue uma lista incompleta de áreas onde contribuições podem ser consideradas para entrar no core team, sem uma ordem em particular:
Trabalhar no gerenciamento da comunidade e alcance
Fornecer suporte nas listas de email e no IRC
Triangulando tickets
Escrever patches (código, documentação ou testes)
Revisão de patches (código, documentação ou testes)
Participação em decisões de projeto
Fornecer expertise em uma área de conhecimento em particular (segurança, i18n, etc)
Gerenciar a infraestrutura de integração contínua
Gerenciar os servidores (website, tracker, documentação, etc.)
Manutenção de projetos relacionados (site djangoproject.com, ex-contrib apps, etc.)
Criação de design visual
pouquíssimas áreas são reservadas para membros do core team:
Revisão de relatórios de segurança
Mesclar patches (código, documentação, ou testes)
Gerando as releases
A adesão ao core team pressupõe esforços contínuos e valorosos que se alinhem bem com a filosofia e os objetivos do Projeto Django.
Ela é dada por uma maioria de quatro quintos dos votos expressos em uma votação do core team e nenhum veto pelo conselho técnico.
Membros do core team estão sempre procurando por voluntários promissores, ensinando a eles como o projeto é gerenciado, e indicando os seus nomes a voto pelo core team quando eles estão prontos. Se você gostaria de se juntar ao core team, você pode contatar um membro privadamente ou pedir apoio na lista de email Django Core Mentorship.
Não existe prazo máximo para adesão ao core team. Entretanto, para conseguir dar ao público em geral uma ideia razoável de como tantas pessoas mantém o Django, membros do core team que tenham parado de contribuir são encorajados a se autodeclararem como “membros antigos do time”. Aqueles que não tenham feito qualquer contribuição não trivial em até dois anos podem ser solicitados a mudar para esta categoria, e são movidos para lá caso eles não respondam. Membros antigos do time perdem os seus privilégios como direito a votar e permissão de commit.
Conselho Técnico¶
Perfil¶
O conselho técnico é um grupo de commiters experientes e ativos que guiam as escolhas técnicas. A sua principal preocupação é manter a qualidade e a estabilidade do Framework Web Django.
Prerrogativas¶
O conselho técnico possui duas prerrogativas:
Fazer grandes escolhas técnicas quando nenhum consenso é encontrado de outra forma. Isso acontece na lista de email django-developers.
Vetar a permissão de “commits” ou remover uma permissão de “commit”. Isso acontece na lista de e-mails
django-core
.
Nos dois casos, o conselho técnico é o último recurso. Nessas questões, ele preenche uma função similar ao antigo Ditador Benevolente Vitalício.
Quando o conselho quer fazer uso de uma dessas prerrogativas, ele precisa manter uma maioridade simples e privada dos votos na resolução. O quorum é o full committee – cada membro deve dar um voto ou se abster explicitamente. Depois o conselho comunica o resultado, e se possível as razões, na lista de email apropriada. Não existe recurso para essas decisões.
Adicionalmente, a sua própria discrição, o conselho técnico podem atuar de forma consultiva em decisões não técnicas.
Membros¶
o conselho técnico é um grupo eleito por cinco committers. Espera-se que eles sejam experientes mas não há requisitos formais para isso. Sua composição atual é publicada aqui.
Um novo conselho é eleito após cada feature release do Django. O processo de eleição é gerenciado por um returns officer nomiado pelo conselho técnico de saída. O processo de eleição ocorre da seguinte maneira:
Candidatos divulgam suas candidaturas para conselho técnico
Eles já devem ser committers. Não existe prazo limite para membros do conselho técnico.
Cada membro do time pode votar entre 0 e 5 pessoas entre os candidatos. Candidatos são rankeados pelo número total de votos que eles receberem.
No caso de um empate, a pessoa que entrou no core team primeiro vence.
Tanto a candidatura quanto o período de votação duram entre uma e duas semanas, dependendo do critério do conselho técnico de saída.
Mudando a organização¶
Mudanças neste documento requerem uma maioria de quatro quintos dos votos expressos em uma votação do core team e nenhum veto pelo conselho técnico.