contributing.txt 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. ======================
  2. FAQ: Contributing code
  3. ======================
  4. .. _new-contributors-faq:
  5. How can I get started contributing code to Django?
  6. ==================================================
  7. Thanks for asking! We've written an entire document devoted to this question.
  8. It's titled :doc:`Contributing to Django </internals/contributing/index>`.
  9. I submitted a bug fix several weeks ago. Why are you ignoring my contribution?
  10. ==============================================================================
  11. Don't worry: We're not ignoring you!
  12. It's important to understand there is a difference between "a ticket is being
  13. ignored" and "a ticket has not been attended to yet." Django's ticket system
  14. contains hundreds of open tickets, of various degrees of impact on end-user
  15. functionality, and Django's developers have to review and prioritize.
  16. On top of that: the people who work on Django are all volunteers. As a result,
  17. the amount of time that we have to work on the framework is limited and will
  18. vary from week to week depending on our spare time. If we're busy, we may not
  19. be able to spend as much time on Django as we might want.
  20. The best way to make sure tickets do not get hung up on the way to checkin is
  21. to make it dead easy, even for someone who may not be intimately familiar with
  22. that area of the code, to understand the problem and verify the fix:
  23. * Are there clear instructions on how to reproduce the bug? If this
  24. touches a dependency (such as Pillow), a contrib module, or a specific
  25. database, are those instructions clear enough even for someone not
  26. familiar with it?
  27. * If there are several branches linked to the ticket, is it clear what each one
  28. does, which ones can be ignored and which matter?
  29. * Does the change include a unit test? If not, is there a very clear
  30. explanation why not? A test expresses succinctly what the problem is,
  31. and shows that the branch actually fixes it.
  32. If your contribution is not suitable for inclusion in Django, we won't ignore
  33. it -- we'll close the ticket. So if your ticket is still open, it doesn't mean
  34. we're ignoring you; it just means we haven't had time to look at it yet.
  35. When and how might I remind the team of a change I care about?
  36. ==============================================================
  37. A polite, well-timed message in the forum/branch is one way to get attention.
  38. To determine the right time, you need to keep an eye on the schedule. If you
  39. post your message right before a release deadline, you're not likely to get the
  40. sort of attention you require.
  41. Gentle reminders in the ``#contributing-getting-started`` channel in the
  42. `Django Discord server`_ can work.
  43. Another way to get traction is to pull several related tickets together. When
  44. someone sits down to review a bug in an area they haven't touched for
  45. a while, it can take a few minutes to remember all the fine details of how
  46. that area of code works. If you collect several minor bug fixes together into
  47. a similarly themed group, you make an attractive target, as the cost of coming
  48. up to speed on an area of code can be spread over multiple tickets.
  49. Please refrain from emailing anyone personally or repeatedly raising the same
  50. issue over and over again. This sort of behavior will not gain you any
  51. additional attention -- certainly not the attention that you need in order to
  52. get your issue addressed.
  53. .. _`Django Discord server`: https://discord.gg/xcRH6mN4fa
  54. But I've reminded you several times and you keep ignoring my contribution!
  55. ==========================================================================
  56. Seriously - we're not ignoring you. If your contribution is not suitable for
  57. inclusion in Django, we will close the ticket. For all the other tickets, we
  58. need to prioritize our efforts, which means that some tickets will be
  59. addressed before others.
  60. One of the criteria that is used to prioritize bug fixes is the number of
  61. people that will likely be affected by a given bug. Bugs that have the
  62. potential to affect many people will generally get priority over those that
  63. are edge cases.
  64. Another reason that a bug might be ignored for a while is if the bug is a
  65. symptom of a larger problem. While we can spend time writing, testing and
  66. applying lots of little changes, sometimes the right solution is to rebuild. If
  67. a rebuild or refactor of a particular component has been proposed or is
  68. underway, you may find that bugs affecting that component will not get as much
  69. attention. Again, this is a matter of prioritizing scarce resources. By
  70. concentrating on the rebuild, we can close all the little bugs at once, and
  71. hopefully prevent other little bugs from appearing in the future.
  72. Whatever the reason, please keep in mind that while you may hit a particular
  73. bug regularly, it doesn't necessarily follow that every single Django user
  74. will hit the same bug. Different users use Django in different ways, stressing
  75. different parts of the code under different conditions. When we evaluate the
  76. relative priorities, we are generally trying to consider the needs of the
  77. entire community, instead of prioritizing the impact on one particular user.
  78. This doesn't mean that we think your problem is unimportant -- just that in the
  79. limited time we have available, we will always err on the side of making 10
  80. people happy rather than making a single person happy.
  81. I'm sure my ticket is absolutely 100% perfect, can I mark it as "Ready For Checkin" myself?
  82. ===========================================================================================
  83. Sorry, no. It's always better to get another set of eyes on a ticket. If
  84. you're having trouble getting that second set of eyes, see questions above.