{"title":"FAQ: Contributing code","version":"dev","locale":"en","docname":"faq/contributing","url":"/en/dev/faq/contributing/","canonical":"https://djangodocs.dev/en/dev/faq/contributing/","summary":"How can I get started contributing code to Django? Link to this heading # Thanks for asking! We’ve written an entire document devoted to this question. It’s titled…","html":"<h1>FAQ: Contributing code<a class=\"heading-anchor\" href=\"#faq-contributing-code\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"how-can-i-get-started-contributing-code-to-django\">\n<span id=\"new-contributors-faq\"></span><h2>How can I get started contributing code to Django?<a class=\"heading-anchor\" href=\"#how-can-i-get-started-contributing-code-to-django\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Thanks for asking! We’ve written an entire document devoted to this question.\nIt’s titled <a class=\"reference internal\" href=\"/en/dev/internals/contributing/\"><span class=\"doc\">Contributing to Django</span></a>.</p>\n</section>\n<section id=\"i-submitted-a-bug-fix-several-weeks-ago-why-are-you-ignoring-my-contribution\">\n<h2>I submitted a bug fix several weeks ago. Why are you ignoring my contribution?<a class=\"heading-anchor\" href=\"#i-submitted-a-bug-fix-several-weeks-ago-why-are-you-ignoring-my-contribution\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Don’t worry: We’re not ignoring you!</p>\n<p>It’s important to understand there is a difference between “a ticket is being\nignored” and “a ticket has not been attended to yet.” Django’s ticket system\ncontains hundreds of open tickets, of various degrees of impact on end-user\nfunctionality, and Django’s developers have to review and prioritize.</p>\n<p>On top of that: the people who work on Django are all volunteers. As a result,\nthe amount of time that we have to work on the framework is limited and will\nvary from week to week depending on our spare time. If we’re busy, we may not\nbe able to spend as much time on Django as we might want.</p>\n<p>The best way to make sure tickets do not get hung up on the way to checkin is\nto make it dead easy, even for someone who may not be intimately familiar with\nthat area of the code, to understand the problem and verify the fix:</p>\n<ul class=\"simple\">\n<li><p>Are there clear instructions on how to reproduce the bug? If this\ntouches a dependency (such as Pillow), a contrib module, or a specific\ndatabase, are those instructions clear enough even for someone not\nfamiliar with it?</p></li>\n<li><p>If there are several branches linked to the ticket, is it clear what each one\ndoes, which ones can be ignored and which matter?</p></li>\n<li><p>Does the change include a unit test? If not, is there a very clear\nexplanation why not? A test expresses succinctly what the problem is,\nand shows that the branch actually fixes it.</p></li>\n</ul>\n<p>If your contribution is not suitable for inclusion in Django, we won’t ignore\nit – we’ll close the ticket. So if your ticket is still open, it doesn’t mean\nwe’re ignoring you; it just means we haven’t had time to look at it yet.</p>\n</section>\n<section id=\"when-and-how-might-i-remind-the-team-of-a-change-i-care-about\">\n<h2>When and how might I remind the team of a change I care about?<a class=\"heading-anchor\" href=\"#when-and-how-might-i-remind-the-team-of-a-change-i-care-about\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>A polite, well-timed message in the forum/branch is one way to get attention.\nTo determine the right time, you need to keep an eye on the schedule. If you\npost your message right before a release deadline, you’re not likely to get the\nsort of attention you require.</p>\n<p>Gentle reminders in the <code class=\"docutils literal notranslate\"><span class=\"pre\">#contributing-getting-started</span></code> channel in the\n<a class=\"reference external\" href=\"https://chat.djangoproject.com\">Django Discord server</a> can work.</p>\n<p>Another way to get traction is to pull several related tickets together. When\nsomeone sits down to review a bug in an area they haven’t touched for\na while, it can take a few minutes to remember all the fine details of how\nthat area of code works. If you collect several minor bug fixes together into\na similarly themed group, you make an attractive target, as the cost of coming\nup to speed on an area of code can be spread over multiple tickets.</p>\n<p>Please refrain from emailing anyone personally or repeatedly raising the same\nissue over and over again. This sort of behavior will not gain you any\nadditional attention – certainly not the attention that you need in order to\nget your issue addressed.</p>\n</section>\n<section id=\"but-i-ve-reminded-you-several-times-and-you-keep-ignoring-my-contribution\">\n<h2>But I’ve reminded you several times and you keep ignoring my contribution!<a class=\"heading-anchor\" href=\"#but-i-ve-reminded-you-several-times-and-you-keep-ignoring-my-contribution\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Seriously - we’re not ignoring you. If your contribution is not suitable for\ninclusion in Django, we will close the ticket. For all the other tickets, we\nneed to prioritize our efforts, which means that some tickets will be\naddressed before others.</p>\n<p>One of the criteria that is used to prioritize bug fixes is the number of\npeople that will likely be affected by a given bug. Bugs that have the\npotential to affect many people will generally get priority over those that\nare edge cases.</p>\n<p>Another reason that a bug might be ignored for a while is if the bug is a\nsymptom of a larger problem. While we can spend time writing, testing and\napplying lots of little changes, sometimes the right solution is to rebuild. If\na rebuild or refactor of a particular component has been proposed or is\nunderway, you may find that bugs affecting that component will not get as much\nattention. Again, this is a matter of prioritizing scarce resources. By\nconcentrating on the rebuild, we can close all the little bugs at once, and\nhopefully prevent other little bugs from appearing in the future.</p>\n<p>Whatever the reason, please keep in mind that while you may hit a particular\nbug regularly, it doesn’t necessarily follow that every single Django user\nwill hit the same bug. Different users use Django in different ways, stressing\ndifferent parts of the code under different conditions. When we evaluate the\nrelative priorities, we are generally trying to consider the needs of the\nentire community, instead of prioritizing the impact on one particular user.\nThis doesn’t mean that we think your problem is unimportant – just that in the\nlimited time we have available, we will always err on the side of making 10\npeople happy rather than making a single person happy.</p>\n</section>\n<section id=\"i-m-sure-my-ticket-is-absolutely-100-perfect-can-i-mark-it-as-ready-for-checkin-myself\">\n<h2>I’m sure my ticket is absolutely 100% perfect, can I mark it as “Ready For Checkin” myself?<a class=\"heading-anchor\" href=\"#i-m-sure-my-ticket-is-absolutely-100-perfect-can-i-mark-it-as-ready-for-checkin-myself\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sorry, no. It’s always better to get another set of eyes on a ticket. If\nyou’re having trouble getting that second set of eyes, see questions above.</p>\n</section>","rootId":"faq-contributing-code","toc":[{"title":"How can I get started contributing code to Django?","anchor":"how-can-i-get-started-contributing-code-to-django","children":[]},{"title":"I submitted a bug fix several weeks ago. Why are you ignoring my contribution?","anchor":"i-submitted-a-bug-fix-several-weeks-ago-why-are-you-ignoring-my-contribution","children":[]},{"title":"When and how might I remind the team of a change I care about?","anchor":"when-and-how-might-i-remind-the-team-of-a-change-i-care-about","children":[]},{"title":"But I’ve reminded you several times and you keep ignoring my contribution!","anchor":"but-i-ve-reminded-you-several-times-and-you-keep-ignoring-my-contribution","children":[]},{"title":"I’m sure my ticket is absolutely 100% perfect, can I mark it as “Ready For Checkin” myself?","anchor":"i-m-sure-my-ticket-is-absolutely-100-perfect-can-i-mark-it-as-ready-for-checkin-myself","children":[]}],"breadcrumbs":[{"docname":"faq/index","title":"Django FAQ","url":"/en/dev/faq/"}],"prev":{"docname":"faq/admin","title":"FAQ: The admin","url":"/en/dev/faq/admin/"},"next":{"docname":"faq/troubleshooting","title":"Troubleshooting","url":"/en/dev/faq/troubleshooting/"},"formats":{"html":"/en/dev/faq/contributing/","markdown":"/en/dev/faq/contributing.md","json":"/en/dev/faq/contributing.json"},"source":"https://github.com/django/django/blob/main/docs/faq/contributing.txt","official":"https://docs.djangoproject.com/en/dev/faq/contributing/","inVersions":["dev","6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9","1.8"],"inLocales":["en"]}