Relatando bugs e solicitando funcionalidades¶
Importante
Por favor relatar problemas de segurança somente em security@djangoproject.com. Esta é uma lista privada acessível apenas para desenvolvedores django veteranos e altamente confiáveis, seu conteúdo não está disponível publicamente. Para mais detalhes, por favor veja :doc: nossas políticas de segurança </internals/security>`.
Relatando bugs¶
Before reporting a bug on the ticket tracker consider these points:
Check that someone hasn’t already filed the bug report by searching or running custom queries in the ticket tracker.
Não utilize o sistema de tickets para fazer perguntas de suporte. Para isso, use o Fórum do Django ou o servidor Discord do Django.
Não reabra issues que foram marcados como “wontfix” sem encontrar consenso para fazê-lo no fórum do Django.
Não utilize o rastreador de tickets para discussões importantes, elas provavelmente serão perdidas. Se um ticket em particular é controverso, por favor mova a discussão para o fórum do Django.
Relatos de bugs bem escritos são incrivelmente úteis. Porém, existe uma certa quantidade de sobrecarga envolvida em trabalhar com qualquer sistema de rastreamento de bugs de modo que a sua ajuda em manter nosso rastreador de tickets o mais eficiente possível é muito apreciada. Em particular:
Leia a FAQ para saber se o seu problema não é uma questão recorrente.
Pergunte no fórum do Django ou no servidor Discord do Django primeiro se não tiver certeza se o que está vendo é um bug.
Escreva relatos de bugs que sejam reproduzíveis, completos, específicos. Você deve incluir uma descrição limpa, concisa do problema, e um conjunto de instruções para reproduzi-lo. Adicione o máximo de informações de debug que você puder: trechos de código, casos de teste, logs das exceções, screenshots, etc. A melhor forma de relatar um bug é escrevendo um bom e pequeno caso de teste, já que ele nos fornece uma maneira útil de confirmar o bug rapidamente.
Não poste no fórum do Django apenas para anunciar que você acabou de reportar um bug. Todos os novos tickets são enviados para outra lista, django-updates, que é monitorada por desenvolvedores e membros da comunidade interessados; assim que os tickets são criados nós somos avisados.
Para entender o ciclo de vida do seu ticket uma vez que você o tenha criado, veja Triagem de tickets.
Reporting user interface bugs¶
If your bug impacts anything visual in nature, there are a few additional guidelines to follow:
Inclua screenshots no seu ticket que são o equivalente visual de um teste de caso pequeno. Mostre o problema, não as incríveis customizações que você fez no seu navegador.
Se o problema for muito difícil de mostrar usando uma imagem, considere capturar um breve screencast. Se o seu software permitir isso, capture somente a área relevante da tela.
Se você esta oferecendo um patch que muda a aparência ou comportamento da UI do Django, você precisa anexar antes e depois screenshots/screencasts. Tickets sem esses requisitos são difíceis para os validadores acessarem rápido.
Screencasts não absolvem você de outras boas práticas ao reportar um bug. Certifique-se de incluir URLs, trechos de código, e instruções passo-a-passo sobre como reproduzir o comportamento exibido nas screenshots.
Certifique-se de incluir a tag UI/UX no ticket para que outras partes interessadas no problema possam encontrá-lo.
If the issue relates to accessibility, please link to the relevant accessibility standard if applicable.
Solicitando novas funcionalidades¶
Nós estamos sempre tentando deixar o Django melhor, e as suas solicitações por novas funcionalidades são uma peça chave nesse processo. Aqui vão algumas dicas sobre como fazer uma solicitação de forma eficiente.
Evaluate whether the feature idea requires changes in Django’s core. If your idea can be developed as an independent application or module — for instance, you want to support another database engine — we’ll probably suggest that you develop it independently. Then, if your project gathers sufficient community support, we may consider it for inclusion in Django.
Propose the feature in the new feature ideas GitHub project (not in the ticket tracker) by creating a new item in the Idea column. This is where the community and the Steering Council evaluate new ideas for the Django ecosystem. This step is especially important for large or complex proposals. We prefer to discuss any significant changes to Django’s core before any development begins. In some cases, a feature may be better suited as a third-party package, where it can evolve independently of Django’s release cycle.
Descreva claramente e de forma concisa qual é a funcionalidade que você não encontrou e como você gostaria que ela fosse implementada. Se possível inclua códigos como exemplos (código que não funciona é válido).
Explain why you’d like the feature. Explaining a minimal use case will help others understand where it fits in, and if there are already other ways of achieving the same thing.
Veja também: Documentando novas funcionalidades.
Requesting performance optimizations¶
Reports of a performance regression, or suggested performance optimizations, should provide benchmarks and commands for the ticket triager to reproduce.
See the django-asv benchmarks for more details of Django’s existing benchmarks.
Como nós tomamos decisões¶
Whenever possible, we aim for rough consensus. Emoji reactions are used on issues within the new feature ideas GitHub project to track community feedback. The following meanings are assigned to each reaction:
👍: I support this feature and would use it
👎: I oppose this feature or believe it would cause issues for me or Django
😕: I have no strong opinion on this feature
🎉: This feature seems like a straightforward and beneficial addition
The Steering Council will regularly review the ideas in the project, moving those with community support through the following stages:
Idea
Approved - Idea refinement - Team creation
In progress
Working solution - Review - Feedback
Needs maintainer (Django only)
Done
Occasionally, discussions on feature ideas or the direction of Django may take place on the Django Forum. These discussions may include informal votes, which follow the voting style invented by Apache and used on Python itself, where votes are given as +1, +0, -0, or -1. Roughly translated, these votes mean:
+1: “Eu adorei a ideia e estou fortemente comprometido com ela.”
+0: “Por mim OK.”
-0: “Não me animou, mas eu não vou ficar no caminho.”
-1: “Eu definitivamente não gostei e ficaria realmente chateado de ver essa ideia virando realidade.”
Although these votes are informal, they’ll be taken very seriously. After a suitable voting period, if an obvious consensus arises we’ll follow the votes.