ВОПРОСЫ И ОТВЕТЫ: Внесение кода¶
Как я могу начать вносить код в Django?¶
Спасибо за вопрос! Мы написали целый документ, посвященный этому вопросу. Он называется Contributing to Django.
I submitted a bug fix several weeks ago. Why are you ignoring my contribution?¶
Не волнуйтесь: мы вас не игнорируем!
Важно понимать, что есть разница между «тикет игнорируется» и «тикет еще не рассмотрен». Система тикетов Django содержит сотни открытых тикетов, различной степени влияния на функциональность конечного пользователя, и разработчикам Django приходится рассматривать их и расставлять приоритеты.
Кроме того, все люди, работающие над Django, являются добровольцами. В результате, количество времени, которое у нас есть для работы над фреймворком, ограничено и будет меняться от недели к неделе в зависимости от нашего свободного времени. Если мы заняты, мы не сможем уделять Django столько времени, сколько нам хотелось бы.
Лучший способ убедиться, что билеты не зависнут на пути к регистрации, - это сделать так, чтобы даже человеку, который, возможно, не очень хорошо знаком с этой областью кода, было очень легко понять проблему и проверить ее устранение:
- Есть ли четкие инструкции о том, как воспроизвести ошибку? Если это касается зависимости (например, Pillow), модуля contrib или конкретной базы данных, достаточно ли ясны эти инструкции даже для человека, не знакомого с ними?
- If there are several branches linked to the ticket, is it clear what each one does, which ones can be ignored and which matter?
- Does the change include a unit test? If not, is there a very clear explanation why not? A test expresses succinctly what the problem is, and shows that the branch actually fixes it.
If your contribution is not suitable for inclusion in Django, we won’t ignore it – we’ll close the ticket. So if your ticket is still open, it doesn’t mean we’re ignoring you; it just means we haven’t had time to look at it yet.
When and how might I remind the team of a change I care about?¶
A polite, well-timed message in the forum/branch is one way to get attention. To determine the right time, you need to keep an eye on the schedule. If you post your message right before a release deadline, you’re not likely to get the sort of attention you require.
Мягкие напоминания в IRC также могут сработать - опять же, по возможности, в стратегически подходящее время. Например, во время баг-спринта это очень подходящее время.
Другой способ добиться успеха - объединить несколько связанных между собой билетов. Когда человек садится разбирать ошибку в области, к которой он давно не прикасался, ему может потребоваться несколько минут, чтобы вспомнить все тонкости работы этой области кода. Если вы соберете несколько мелких исправлений в группу с одинаковой тематикой, вы станете привлекательной мишенью, поскольку затраты на ознакомление с областью кода можно будет распределить на несколько заявок.
Пожалуйста, не пишите никому лично и не поднимайте один и тот же вопрос снова и снова. Подобное поведение не привлечет к вам дополнительного внимания - и уж точно не того внимания, которое необходимо для решения вашего вопроса.
But I’ve reminded you several times and you keep ignoring my contribution!¶
Seriously - we’re not ignoring you. If your contribution is not suitable for inclusion in Django, we will close the ticket. For all the other tickets, we need to prioritize our efforts, which means that some tickets will be addressed before others.
Одним из критериев, который используется для определения приоритетности исправления ошибок, является количество людей, которые могут пострадать от данной ошибки. Ошибки, которые потенциально могут повлиять на многих людей, обычно получают приоритет над теми, которые являются крайними случаями.
Another reason that a bug might be ignored for a while is if the bug is a symptom of a larger problem. While we can spend time writing, testing and applying lots of little changes, sometimes the right solution is to rebuild. If a rebuild or refactor of a particular component has been proposed or is underway, you may find that bugs affecting that component will not get as much attention. Again, this is a matter of prioritizing scarce resources. By concentrating on the rebuild, we can close all the little bugs at once, and hopefully prevent other little bugs from appearing in the future.
Какова бы ни была причина, пожалуйста, имейте в виду, что, хотя вы можете регулярно сталкиваться с определенной ошибкой, не обязательно, что каждый пользователь Django будет сталкиваться с той же ошибкой. Разные пользователи используют Django по-разному, нагружая разные части кода в разных условиях. Когда мы оцениваем относительные приоритеты, мы обычно стараемся учитывать потребности всего сообщества, вместо того, чтобы отдавать предпочтение влиянию на одного конкретного пользователя. Это не значит, что мы считаем вашу проблему неважной - просто в условиях ограниченного времени, которое у нас есть, мы всегда будем склоняться к тому, чтобы сделать счастливыми 10 человек, а не одного.
Я уверен, что мой билет абсолютно на 100% безупречен, могу ли я сам отметить его как «Готов к регистрации»?¶
К сожалению, нет. Всегда лучше получить еще один взгляд на билет. Если у вас возникли проблемы с получением второго взгляда, см. вопросы выше.