ВОПРОСЫ И ОТВЕТЫ: Внесение кода¶
Как я могу начать вносить код в Django?¶
Спасибо за вопрос! Мы написали целый документ, посвященный этому вопросу. Он называется Contributing to Django.
Я отправил исправление ошибки несколько недель назад. Почему вы игнорируете мой вклад?¶
Не волнуйтесь: мы вас не игнорируем!
Важно понимать, что есть разница между «тикет игнорируется» и «тикет еще не рассмотрен». Система тикетов Django содержит сотни открытых тикетов, различной степени влияния на функциональность конечного пользователя, и разработчикам Django приходится рассматривать их и расставлять приоритеты.
Кроме того, все люди, работающие над Django, являются добровольцами. В результате, количество времени, которое у нас есть для работы над фреймворком, ограничено и будет меняться от недели к неделе в зависимости от нашего свободного времени. Если мы заняты, мы не сможем уделять Django столько времени, сколько нам хотелось бы.
Лучший способ убедиться, что билеты не зависнут на пути к регистрации, - это сделать так, чтобы даже человеку, который, возможно, не очень хорошо знаком с этой областью кода, было очень легко понять проблему и проверить ее устранение:
- Есть ли четкие инструкции о том, как воспроизвести ошибку? Если это касается зависимости (например, Pillow), модуля contrib или конкретной базы данных, достаточно ли ясны эти инструкции даже для человека, не знакомого с ними?
- Если с тикетом связано несколько веток, понятно ли, что делает каждая из них, какие из них можно игнорировать, а какие имеют значение?
- Включает ли изменение модульный тест? Если нет, то есть ли четкое объяснение, почему нет? Тест кратко описывает, в чем заключается проблема, и показывает, что ветвь действительно ее устраняет.
Если ваш вклад не подходит для включения в Django, мы не будем его игнорировать - мы закроем заявку. Итак, если ваша заявка все еще открыта, это не значит, что мы вас игнорируем; это просто означает, что у нас еще не было времени ее просмотреть.
Когда и как я могу напомнить команде об изменениях, которые меня волнуют?¶
Вежливое, своевременное сообщение на форуме / в ветке - один из способов привлечь внимание. Чтобы определить правильное время, вам нужно следить за расписанием. Если вы разместите свое сообщение непосредственно перед истечением срока публикации, вы вряд ли получите то внимание, которое вам требуется.
Могут сработать ненавязчивые напоминания в #contributing-getting-started
канале в Django Discord server.
Другой способ добиться успеха - объединить несколько связанных между собой билетов. Когда человек садится разбирать ошибку в области, к которой он давно не прикасался, ему может потребоваться несколько минут, чтобы вспомнить все тонкости работы этой области кода. Если вы соберете несколько мелких исправлений в группу с одинаковой тематикой, вы станете привлекательной мишенью, поскольку затраты на ознакомление с областью кода можно будет распределить на несколько заявок.
Пожалуйста, не пишите никому лично и не поднимайте один и тот же вопрос снова и снова. Подобное поведение не привлечет к вам дополнительного внимания - и уж точно не того внимания, которое необходимо для решения вашего вопроса.
Но я уже несколько раз напоминал вам об этом, а вы продолжаете игнорировать мой вклад!¶
Серьезно, мы не игнорируем вас. Если ваш вклад не подходит для включения в Django, мы закроем заявку. Что касается всех остальных заявок, нам нужно расставить приоритеты в наших усилиях, а это значит, что некоторые заявки будут рассмотрены раньше других.
Одним из критериев, который используется для определения приоритетности исправления ошибок, является количество людей, которые могут пострадать от данной ошибки. Ошибки, которые потенциально могут повлиять на многих людей, обычно получают приоритет над теми, которые являются крайними случаями.
Еще одна причина, по которой ошибка может быть проигнорирована на некоторое время, заключается в том, что она является симптомом более серьезной проблемы. Хотя мы можем потратить время на написание, тестирование и внесение множества мелких изменений, иногда правильным решением является перестройка. Если была предложена перестройка или рефакторинг определенного компонента или он уже выполняется, вы можете обнаружить, что ошибки, влияющие на этот компонент, не привлекут к себе должного внимания. Опять же, это вопрос приоритизации ограниченных ресурсов. Сосредоточившись на перестройке, мы сможем устранить все мелкие ошибки сразу и, надеюсь, предотвратить появление других мелких багов в будущем.
Какова бы ни была причина, пожалуйста, имейте в виду, что, хотя вы можете регулярно сталкиваться с определенной ошибкой, не обязательно, что каждый пользователь Django будет сталкиваться с той же ошибкой. Разные пользователи используют Django по-разному, нагружая разные части кода в разных условиях. Когда мы оцениваем относительные приоритеты, мы обычно стараемся учитывать потребности всего сообщества, вместо того, чтобы отдавать предпочтение влиянию на одного конкретного пользователя. Это не значит, что мы считаем вашу проблему неважной - просто в условиях ограниченного времени, которое у нас есть, мы всегда будем склоняться к тому, чтобы сделать счастливыми 10 человек, а не одного.
Я уверен, что мой билет абсолютно на 100% безупречен, могу ли я сам отметить его как «Готов к регистрации»?¶
К сожалению, нет. Всегда лучше получить еще один взгляд на билет. Если у вас возникли проблемы с получением второго взгляда, см. вопросы выше.