バグレポートと機能のリクエスト

重要

セキュリティイシューは security@djangoproject.comのみ 報告してください。これは長年にわたり信頼性の高いDjango開発者のみに公開されているプライベートなリストであり、そのアーカイブは公開されていません。詳細は our security policies を見てください。

そうでなければ、 ticket tracker にバグ報告や新機能提案をする前に、以下のことを検討してください:

  • ticket tracker で、 searching または custom queries を動かすことで、ほかの人がバグや機能のリクエストをファイルしていないことを確認してください。
  • ticketシステムをサポート問い合わせに使用しないでください。 django-users リスト、もしくはIRCチャンネルにて #django を使用してください。
  • "wontfix" とマークされた issue は、django-developers に相談せずに reopen しないでください。
  • Don't use the ticket tracker for lengthy discussions, because they're likely to get lost. If a particular ticket is controversial, please move the discussion to django-developers.

バグレポート

Well-written bug reports are incredibly helpful. However, there's a certain amount of overhead involved in working with any bug tracking system so your help in keeping our ticket tracker as useful as possible is appreciated. In particular:

  • あなたの疑問が一般的なものである可能性がある際は、 FAQ を読んでください。
  • Do ask on django-users or #django first if you're not sure if what you're seeing is a bug.
  • Do write complete, reproducible, specific bug reports. You must include a clear, concise description of the problem, and a set of instructions for replicating it. Add as much debug information as you can: code snippets, test cases, exception backtraces, screenshots, etc. A nice small test case is the best way to report a bug, as it gives us a helpful way to confirm the bug quickly.
  • Don't post to django-developers only to announce that you have filed a bug report. All the tickets are mailed to another list, django-updates, which is tracked by developers and interested community members; we see them as they are filed.

以前に作成されたticketのライフサイクルを理解するため、ドキュメントの triaging-tikets を参照してください。

ユーザーインターフェイスのバグや機能について報告する

あなたが報告するバグや機能が何らかの視覚的に確認できるものである場合は、以下の追加のガイドラインに従ってください。

  • 最小限のテストケースを視覚的に表現することができるため、チケットにスクリーンショットを加えるようにしてください。問題を投稿するときは、ブラウザのカスタマイズを必ず無効化して確認してください。
  • 問題をスクリーンショットで示すのが難しい場合は、 簡潔な スクリーンキャストを撮影することを検討してください。可能なソフトウェアなら、問題に関連する領域のみを撮影するようにしてください。
  • 見た目や Django の UI を変更するようなパッチを提供する場合、変更前 および 変更後のスクリーンショット/スクリーンキャストを 絶対に 添付しなければなりません。これらの情報が不足しているチケットは、早期に解決することが難しいです。
  • Screenshots don't absolve you of other good reporting practices. Make sure to include URLs, code snippets, and step-by-step instructions on how to reproduce the behavior visible in the screenshots.
  • チケットに UI/UX フラグを設定するのを忘れないでください。このフラグがあると、関係する人たちがチケットをすぐに発見することができます。

機能のリクエスト

We're always trying to make Django better, and your feature requests are a key part of that. Here are some tips on how to make a request most effectively:

  • Make sure the feature actually 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.
  • First request the feature on the django-developers list, not in the ticket tracker. It'll get read more closely if it's on the mailing list. This is even more important for large-scale feature requests. We like to discuss any big changes to Django's core on the mailing list before actually working on them.
  • Describe clearly and concisely what the missing feature is and how you'd like to see it implemented. Include example code (non-functional is OK) if possible.
  • 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.

If there's a consensus agreement on the feature, then it's appropriate to create a ticket. Include a link the discussion on django-developers in the ticket description.

As with most open-source projects, code talks. If you are willing to write the code for the feature yourself or, even better, if you've already written it, it's much more likely to be accepted. Fork Django on GitHub, create a feature branch, and show us your work!

Documenting new features. も参照してください。

どのように決定が下されるか

Whenever possible, we strive for a rough consensus. To that end, we'll often have informal votes on django-developers about a feature. In these votes we 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: "I love the idea and I'm strongly committed to it."
  • +0: "Sounds OK to me."
  • -0: "I'm not thrilled, but I won't stand in the way."
  • -1: "I strongly disagree and would be very unhappy to see the idea turn into reality."

Although these votes on django-developers are informal, they'll be taken very seriously. After a suitable voting period, if an obvious consensus arises we'll follow the votes.

However, consensus is not always possible. If consensus cannot be reached, or if the discussion toward a consensus fizzles out without a concrete decision, the decision may be deferred to the technical board.

Internally, the technical board will use the same voting mechanism. A proposition will be considered carried if:

  • There are at least three "+1" votes from members of the technical board.
  • There is no "-1" vote from any member of the technical board.

Votes should be submitted within a week.

Since this process allows any technical board member to veto a proposal, a "-1" vote should be accompanied by an explanation of what it would take to convert that "-1" into at least a "+0".

Votes on technical matters should be announced and held in public on the django-developers mailing list.