Руководство по обработке багов
В данном руководстве рассматриваются рекомендации по обработке багов в системе отслеживания багов Ruby.
Баги с воспроизводимыми примерами
Это лучшие сообщения об ошибках. Сначала подумайте, является ли сообщенная ошибка действительной проблемой или это ожидаемое поведение Ruby. Если это ожидаемое поведение Ruby, обновите запись об ошибке, указав причину ожидаемого поведения, и установите статус в «Отклонено».
Если сообщенная ошибка, похоже, является действительной ошибкой, попробуйте воспроизвести ошибку с веткой master. Если вы не можете воспроизвести ошибку в ветке master, попробуйте воспроизвести ее в последней версии для ветки, в которой была сообщена ошибка. Если вы не можете воспроизвести ошибку ни в одном случае, обновите запись об ошибке, указав, что вы не можете воспроизвести ошибку, спросите репортера, может ли он воспроизвести ошибку с веткой master или более поздней версией, и установите статус в «Обратная связь».
Если вы можете воспроизвести пример с веткой master, попробуйте выяснить причину проблемы. Если вы чувствуете себя уверенно, попробуйте создать патч для решения проблемы, обновите запись об ошибке и прикрепите патч. Постарайтесь выяснить, кому из разработчиков следует назначить ошибку, назначьте их исполнителем и установите статус в «Назначено».
Если вы не можете воспроизвести пример с веткой master, но можете воспроизвести ошибку в последней версии для ветки, вероятно, ошибка уже была исправлена, но еще не перенесена в ветку. Попробуйте определить, какой коммит исправил ее, и обновите запись об ошибке, отметив, что ошибка исправлена, но еще не перенесена. Если версия Ruby находится на стадии поддержки безопасности или больше не поддерживается, измените статус на «Закрыто». Это изменение можно сделать без добавления примечания, чтобы избежать спама в списке рассылки.
Для проблем, которые могут потребовать несовместимых с предыдущими версиями изменений или могут извлечь выгоду от общего внимания или обсуждения со стороны разработчиков, подумайте о добавлении их в качестве пунктов повестки дня на следующее совещание разработчиков (bugs.ruby-lang.org/issues/14770).
Ошибки с аварийным завершением работы без воспроизводителей
Многие сообщенные ошибки содержат лишь отчет об аварийном завершении работы, часто без возможности воспроизвести проблему. Такие ошибки трудно обрабатывать, так как они часто не содержат достаточной информации.
Для таких ошибок, если версия Ruby находится в ветке master или является последней версией для ветки, а ветка находится в нормальной фазе поддержки, посмотрите стек вызовов и попробуйте определить причину проблемы. Если вы можете предположить причину проблемы, попробуйте составить воспроизводимый пример (это, как правило, довольно сложно). Если вы не можете предположить причину проблемы или не можете сами составить воспроизводимый пример, попросите репортера предоставить воспроизводимый пример и измените статус на «Обратная связь».
Если версия Ruby больше не актуальна (например, 2.5.0, когда последняя версия в ветке Ruby 2.5 — 2.5.5), добавьте в запись об ошибке примечание, прося репортера попробовать последнюю версию Ruby для ветки и сообщить результат, и измените статус на «Обратная связь». Если версия Ruby находится на стадии поддержки безопасности или больше не поддерживается, измените статус на «Закрыто». Это изменение можно сделать без добавления примечания.
Ошибки с аварийным завершением работы с расширениями на C от третьих сторон
Если аварийное завершение работы происходит внутри расширения на C от третьей стороны, попробуйте выяснить, в каком расширении на C это происходит, и добавьте в запись об ошибке примечание, чтобы сообщить об ошибке разработчикам этого расширения, и установите статус в «Проблема стороннего разработчика».
Сообщения, не являющиеся ошибками
Любые записи в системе отслеживания багов, которые не являются сообщениями о проблемах, должны быть изменены со статуса «Ошибка» на «Функция» (новые функции или улучшения производительности) или «Разное». Это изменение можно сделать без добавления примечания.
Застаревшие проблемы
Существует множество застаревших проблем, без обновлений в течение месяцев или даже лет. Для застарелых проблем со статусом «Обратная связь», где обратная связь не была получена, вы можете изменить статус на «Закрыто» без добавления примечания. Для застарелых проблем со статусом «Назначено» вы можете связаться с ответственным и посмотреть, может ли он обновить запись об ошибке. Если ответственный больше не является активным разработчиком, удалите его из исполнителей и измените статус на «Открыто».
Ruby Core © 1993–2020 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.