Что делать с заброшенными проблемами в GitHub?

48

Если кто-то открывает проблему на GitHub, но запрашивается дополнительная информация, чтобы воспроизвести ошибку и никогда не сообщается, какова обычная процедура? Пример .

Здесь автор утверждает, что «навигация разбивает». Хотя я полагаю, что это исправлено, я хотел бы, чтобы от автора было сказано, что мы говорим об одном и том же. Но иногда репортер проблемы просто исчезает. Является ли хорошей / распространенной практикой установка даты истечения срока действия для оставленных проблем?

Что-то вроде этих условий:

  • Вопрос поднят по проблеме, чтобы иметь возможность отладить ее.
  • Прошло более 2-6 месяцев с момента последнего оставшегося без ответа вопроса / комментария от команды разработчиков.
  • Ошибка не может быть воспроизведена во время ее закрытия (по любой причине, возможно, они никогда не смогут быть воспроизведены).
  • Предупреждение выдается за 2 недели до его закрытия.

Что обычно делают проекты? Я не смог ничего найти в Google. Кроме того, как бы я это задокументировал? Достаточно ли простого примечания в README.md с подробным описанием вышеприведенных пунктов и комментария к вопросу, объясняющего, почему он закрыт?

Примечание: это отличается от этого вопроса, так как ошибка все еще может быть актуальной (или нет), однако информации не хватает.

Франциско Презенсия
источник
3
Я считаю , что вы должны документировать где - то , что вы считаете , что проблема решена (но , возможно , не в README.md). Тем не менее, ваш вопрос может быть вопросом мнения.
Василий Старынкевич
17
Если отправитель проблемы не может быть достигнут для подтверждения того, что она исправлена, я просто закрыл бы проблему с комментарием, что исправление не было проверено исходным отправителем, после активной попытки связаться с ним для месяц. Но это только мое мнение.
Барт ван Инген Шенау
1
@BasileStarynkevitch извините, я хотел документировать в README.md эту процедуру. О закрытии вопроса я бы задокументировал в самой проблеме.
Франциско Presencia
7
Нет, ошибка, которая больше не актуальна, отличается от ошибки, для которой существует исправление, но репортер не отвечает.
dcorking

Ответы:

49

Это дилемма: вы не можете закрыть проблему как «исправленную», потому что вы на самом деле не знаете, была ли она исправлена, или, по крайней мере, даже если какая-то проблема была исправлена, вы на самом деле не знаете, была ли это проблема репортера говорил о. С другой стороны, вы не хотите оставлять проблему, которая могла быть исправлена, открытой, особенно если вы никогда не сможете закрыть ее, потому что вы никогда не получите подтверждение.

Таким образом, вы должны закрыть его, но, вероятно, не так, как "исправлено". Вы можете придумать собственную причину закрытия, которая может быть «исправлена» или «не подтверждена», если вы хотите быть положительным или «репортерным», если вы этого не сделаете. Вы также можете просто сказать «не удалось воспроизвести» и подождать, пока та же ошибка появится для более отзывчивого репортера.

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

Йорг Миттаг
источник
1
Теперь, когда я проверяю это, в профиле пользователя даже появляется сообщение «Удаленный пользователь», поэтому я думаю, что Призрак не ответит. Спасибо за ответ, я закрою с пользовательским тегом.
Франциско Presencia
34
Невоспроизводимый, кажется, подходит. Можете ли вы воспроизвести проблему из деталей в билете? Нет? Невоспроизводимый.
А.Б.Магил
1
В винном багзилле есть специальный статус ЗАПРЕЩЕНО: примеры .
Руслан
«Недействительный» - это еще одно хорошее, общее состояние. В GitHub это можно добавить как ярлык и впоследствии закрыть проблему.
Caterpillar
2
Закройте его как «AbandonedByOpener» или «RequiredInformationMissing». Именно так и произошло. И любой может ясно видеть, почему вы не решили эту проблему.
USR
12

На ваш главный вопрос уже был дан ответ, но вы также спросили о документировании процесса, и на него тоже нужно ответить.

Решение, которое я видел во многих проектах, заключается не в том, чтобы поместить его в README.md проекта, а в специальный вклад README - файл README для участников. Этот файл описывает все, что вы хотите, чтобы люди, участвующие в вашем проекте, знали - будь то код (соглашения об именах, организация модулей и т. Д.) Или процесс (как писать коммиты, как обрабатывать заявки и т. Д.). Этот файл может быть другим .MDфайлом в проекте или помещен в совершенно другой репозиторий (так что он может использоваться всеми вашими проектами). Только не забудьте ссылку на него с основного README.md!

Смысл отделения этой информации от основного README заключается в том, что, как правило, только часть пользователей проекта непосредственно вносит в нее свой вклад. Большинству пользователей не нужно скучать с этой информацией - им просто нужно знать, что делает ваш проект и как его использовать, и именно это должен содержать основной README. В случае вашего проекта раздел вклада очень мал, так что он не обременяет основной README - но если вы задокументируете все рабочие процессы, которым вы хотите, чтобы авторы следовали, он больше не будет подходить там ...

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

Идан Арье
источник
12
На Github можно специально использовать CONTRIBUTING.mdдокумент. Этот документ специально обрабатывается Github, а именно, он связан с верхней части открытой страницы выпуска, поэтому он является основным для репортеров. Смотрите: help.github.com/articles/…
cbojar
7

Я прочитал это как вопрос о том, как обрабатывать непроверенную ошибку (используя систему отслеживания проблем github), чем что-либо еще.

Для меня это довольно простой ответ, основанный на других трекерах, которые я использовал. Github никого не заставляет использовать какой-либо рабочий процесс, и это делает его очень гибким ... и довольно бесполезным в конфигурации по умолчанию.

Глядя на рабочий процесс Bugzilla по умолчанию, мы получаем:

введите описание изображения здесь

Я собираюсь указать на очень важную вещь - она решается как исправленная, прежде чем закрывается после проверки . Основной рабочий процесс Github показывает только красное (открытое) и зеленое (закрытое) состояния.

Таким образом, одним из подходов является использование меток в Github (меток вашего приложения ), чтобы попытаться показать дополнительную информацию. Вы можете создать пару «непроверенных» и «проверенных» меток, которые будут применяться после закрытия проблемы. Обратите внимание, что это только один подход - если вы ищете, вы можете найти десятки различных подходов к использованию меток. Здесь вопрос Как решить проблемы с GitHub (приоритет и т. Д.)? адресует это.

Вы исправили это, с точки зрения разработчика, это сделано. Закройте вопрос на Github. Примените к нему ярлык «непроверенный». Когда кто-то, знакомый с ошибкой в ​​предыдущей версии, говорит «да, это исправлено», вы можете изменить метку на «проверено». Если они говорят, что это не так, то вы снова открываете это.

Также обратите внимание, что есть и другие разрешенные состояния, кроме «фиксированного». Есть 'wontfix' (исправление - это то, что просто невозможно сделать с текущей структурой) и 'worksforme' (ошибка не может быть воспроизведена) и 'invalid' (вы представляете ошибку об ОС, а не тип приложения вещи).

Сообщество
источник
3

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

1) Поскольку репортер больше не доступен, посчитайте, что рассматриваемая ошибка означает то, что вы исправили. Если это поможет, приложите контрольные примеры, чтобы выяснить, какие ошибки вы обнаружили. Подробно опишите в отчете об ошибке, что именно вы исправили, и оставьте примечание: «Я считаю, что это означает« навигационные разрывы », пожалуйста, повторно откройте или поднимите новую ошибку, если вы не это имели в виду». Отметьте ошибку как исправленную.

2) Поскольку репортер больше не доступен, посчитайте, что ошибка не может быть (как известно, воспроизведена), так как только слово репортера подтвердит, что это то же самое, о чем они сообщили. Создайте новую ошибку, чтобы описать исправленную вами вещь, чтобы отметить, что она наблюдалась в условиях, описанных отсутствующим репортером, обратите внимание на то, что они могут быть дубликатами, пометьте новую ошибку исправленной и отметьте ее как недействительную или Невозможно воспроизвести с примечанием типа: «Я не могу понять, что вы имели в виду под« навигационными перерывами », но я решил проблему, которую нашел. Пожалуйста, откройте или поднимите новую ошибку, если навигационная система все еще ломается, описывая в подробнее что пойдет не так ".

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

По этой причине я не думаю, что есть какой-то конкретный срок, который представляет собой «хорошую практику» или что вам необходимо опубликовать свою политику и придерживаться ее. Конечно, вы не захотите записать, что с репортером нельзя связаться, пока вы не приложите усилия, чтобы связаться с ним. Но я также не вижу смысла оставлять несколько предупреждений с обратным отсчетом до крайнего срока: либо они повторно посетят ошибку и захотят что-то сказать, либо нет.

Стив Джессоп
источник