Spec-Zone.ru › Ruby 3.2

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

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

Spec-Zone.ru

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