FAQ: вклад в код

Как я могу начать вносить свой вклад в код Django?

Спасибо за вопрос! Мы написали обширную документацию по этому вопросу. Это называется " Вклад в Django" .

Несколько недель назад я отправил исправление в систему продажи билетов. Почему ты проигнорировал мое исправление?

Не волнуйтесь: мы вас не игнорируем!

Важно понимать разницу между «заявка игнорируется» и «заявка еще не обработана». Система тикетов Django содержит сотни открытых тикетов с разной степенью влияния на функциональность конечного пользователя, и разработчикам Django необходимо проанализировать их и расставить приоритеты.

Кроме того, все люди, работающие над Django, - добровольцы. В результате время, которое они тратят на работу с Django, ограничено и меняется еженедельно в зависимости от их свободного времени. Если они заняты, они не могут тратить на Django столько времени, сколько им хотелось бы.

Лучший способ гарантировать, что билеты не упадут по пути, - сделать их легкими для понимания и проверки даже для тех, кто не очень знаком с областью задействованного кода:

  • Есть ли подробные инструкции, как воспроизвести ошибку? Если это влияет на конкретную библиотеку (например, Pillow), модуль contrib или базу данных, достаточно ли точны инструкции даже для тех, кто с ними не знаком?
  • Если к заявке прикреплено несколько исправлений, легко ли увидеть, что делает каждое исправление, какие из них можно пропустить, а какие представляют интерес?
  • Включает ли исправление модульные тесты? Если нет, есть ли точное объяснение того, почему? Тест лаконично объясняет природу проблемы и показывает, что исправление действительно ее устраняет.

Если ваше исправление не может быть включено в Django, мы не будем его игнорировать, а просто закроем заявку. Так что, если ваш билет все еще открыт, это не значит, что вас игнорируют; у нас просто еще не было времени его просмотреть.

Когда и как мне следует обсудить с командой разработчиков исправление, которое мне близко?

Вежливое и своевременное сообщение в список рассылки - один из способов привлечь внимание. Чтобы определить подходящее время, нужно внимательно следить за планированием. Если вы отправите сообщение прямо перед поступлением нового сообщения, вы, вероятно, не получите должного внимания.

Тонкие обратные вызовы в IRC также могут работать - опять же, стратегически размещенные во времени. Например, во время спринта по исправлению ошибок.

Еще один способ привлечь внимание - сгруппировать несколько связанных заявок. Когда кто-то намеревается перечитать ошибку в месте, к которому они не прикасались долгое время, ему требуется время, чтобы вспомнить каждую мелочь того, как работает эта область кода. Если вы объедините несколько мелких исправлений ошибок в общие темы, вы создадите привлекательную цель, поскольку стоимость обновления одной области кода может быть распределена между несколькими тикетами.

Воздержитесь от отправки личных писем или повторения одной и той же проблемы. Такое поведение не привлечет к вам больше внимания - и уж тем более внимания, которое вам нужно, чтобы справиться с ошибкой.

Но я несколько раз отправлял вам напоминания, а вы продолжаете игнорировать мое исправление!

Очень серьезно: мы вас не игнорируем. Если ваше исправление не будет включено в Django, мы закроем заявку. Для всех остальных билетов мы должны расставить приоритеты в наших усилиях, что иногда означает, что одни билеты будут обрабатываться позже других.

Одним из критериев, используемых для определения приоритетности исправлений ошибок, является количество людей, которых может коснуться данная ошибка. Ошибки, которые потенциально могут повлиять на многих людей, обычно имеют приоритет над более незначительными ошибками.

Другая причина, по которой на какое-то время ошибки можно игнорировать, заключается в том, что ошибка является симптомом более серьезной проблемы. Хотя мы можем потратить время на написание, тестирование и применение множества мелких исправлений, иногда правильным решением является восстановление. Если было предложено или выполняется перестройка или рефакторинг конкретного компонента, вы обнаружите, что ошибкам, влияющим на этот компонент, будет уделяться мало внимания. Опять же, это делается только ради того, чтобы уделять приоритетное внимание ограниченным ресурсам. Сосредоточившись на восстановлении, мы можем закрыть все мелкие ошибки сразу и, надеюсь, предотвратить появление новых мелких ошибок в будущем.

Какой бы ни была причина, имейте в виду, что хотя вы можете сталкиваться с определенной ошибкой на регулярной основе, это не обязательно означает, что каждый пользователь Django столкнется с одной и той же ошибкой. Разные люди используют Django по-разному, подчеркивая разные части кода в разных условиях. Когда мы оцениваем относительные приоритеты, мы обычно стараемся учитывать потребности всего сообщества, а не только важность конкретного пользователя. Это не означает, что мы думаем, что ваша проблема не важна - только то, что в то ограниченное время, которое имеется в нашем распоряжении, мы всегда будем уделять приоритетное внимание возможности удовлетворить 10 человек, а не только одного.

Copyright ©2020 All rights reserved