Spec-Zone.ru › Ruby 2.7

Руководство по обработке ошибок

В этом руководстве обсуждаются рекомендации по обработке ошибок в системе отслеживания ошибок 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–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API