Я верю в то, что люди, создающие тикеты и пуллы делают это ради того, чтобы улучшить те opensource проекты, которые им небезразличны. А для этого нужно, чтобы тикеты превращались в пуллы и пуллы своевременно мерджились. Чем быстрее будет происходить этот процесс, тем быстрее будет развиваться OpenSource.
Однако, на GitHub часто бывает, что коммуникация вокруг тикета или пулла затихает и теряется. Происходит это по разным причинам, но как правило — из-за того, что какой-то из участников пропускает email-отбивку о комментарии. Причины могут быть разные, а результат всегда один — тикет теряется и иногда проходят годы, прежде чем про него вспоминают.
Конечно, гитхаб предоставляет на такой случай странички со списком пуллов (https://github.com/pulls) и тикетов (https://github.com/issues), но на мой взгляд они неудобны тем, что не дают ни малейшего намёка на то, в каком из тикетов от вас требуется реакция, а в каком нет. Это то я и хочу исправить.
Мой проект — 12forks.com, будет предоставлять экспериментальный интерфейс для работы с тикетами и пуллами. Такой интерфейс, в котором можно будет, взглянув на одну страницу понять, в каких тикетах от вас ждут ответа, в каком пулле нужно поправить merge-conflict, а где призвать мейнтейнера, потому-что он что-то долго не реагирует. Возможно будет так же интеграция с различными мессенджерами вроде Slack или Telegram. Смысл в том, чтобы ускорить коммуникацию и решение задач в Opensource проектах.
Я уже пользуюсь MVP этого инструмента, работающего пока в консоли. С его помощью за несколько дней удалось вдвое сократить «завал» из 103 пуллов и тикетов. Часть я просто закрыл за давностью лет. А в части случаев, хорошо видно, что задержки между комментами могут составлять годы:
Я верю в то, что подобный инструмент способен ускорить процесс принятия изменений и будет полезен любому, кто хочет внести свой вклад в OpenSource.
По моим оценкам, примерно 3% всех пользователей гитхаба активно работают с тикетами и пуллами, а три процента от 48 миллионов (именно столько я насчитал в своём исследовании), это без малого полтора миллиона человек. Именно столько людей потенциально могут получить пользу от придуманного мною решения.
По плану, публично доступный MVP будет готов в июне. Если вам интересно стать одним из первых, кто начнёт его применять, оставьте свой email, заполнив форму на 12forks.com
Так же, очень жду любых идей, которые можно было бы попробовать в подобном продукте. Пишите их в комментарии к этому посту, либо на почту ideas@12forks.com.
Комментарии (21)
ilammy
29.04.2019 15:09Если PR действительно важен, то он не будет забываться и теряться в потоке писем. О нём вспомнят и напомнят комментарием: «Тут все замечания исправлены, ревью пройдено, давайте мерджить?»
Если мейнтейнер игнорирует напоминания автора PR, то он точно так же может игнорировать напоминания какого угодно сервиса. А если автор PR забыл о нём и не отправляет напоминания, то автору, видимо, не так-то важно влить этот PR.
valery1707
29.04.2019 18:27Кнопка Send не работает: при клике в консоли возникает ошибка f is undefined.
Svetlyak Автор
29.04.2019 18:37Интересно. Я сейчас перепроверил и в Chrome всё ОК. Какой у тебя браузер?
Svetlyak Автор
30.04.2019 10:02Валерий, скажи пожалуйста какой у тебя браузер?
valery1707
30.04.2019 18:32Firefox Quantum 66.0.3 (64-битный).
Возможно дело в том что у меня часть скриптов не скачалось.Svetlyak Автор
30.04.2019 22:26Очень может быть что так. Похоже на ошибку в Яндекс Формах и том, как они используют Метрику. Я уже передал информацию о проблеме разработчикам.
Спасибо за помощь!Svetlyak Автор
30.04.2019 22:35Хотя странно. Я сейчас поставил Firefox Quantum 66.0.3 (64-битный). И у меня проблема не воспроизвелась, ни в обычной вкладке, ни в incognito режиме (где он написал:
Ресурс на «https://mc.yandex.ru/metrika/watch.js» был заблокирован, так как включена блокировка содержимого.[Подробнее] 12forks.com
Ресурс на «https://yandex.ru/clck/click» был заблокирован, так как включена блокировка содержимого.[Подробнее] 12forks.com
Может быть дело в каких-то дополнительных плагинах? Что-нибудь вроде адблока или ещё чего-то такого?andreymal
30.04.2019 23:28Я пробовал в Firefox с uBlock Origin и у меня норм
(отправил пустую форму, ибо я явно не целевая аудитория:)
Psychopompe
29.04.2019 18:38К такому сервису нужен бот, который будет проходить по забытым PR и напоминать всем участникам о том, что нужно что-то сделать. Ну и статистику временную выводить.
Svetlyak Автор
29.04.2019 19:58Какого рода бот?
Такой, который будет сам находить забытые PR и напоминать о них даже без регистрации автора пулла или репозитория?Psychopompe
30.04.2019 17:42В смысле, без регистрации?
Я знаю, что есть бот, который автоматически закрывает issues, если не было обновлений какое-то время. Здесь можно что-то подобное сделать, скажем, если PR проходит все тесты, но уже больше месяца неактивен, то тогда нужно напоминание.Svetlyak Автор
30.04.2019 18:29Говоря про регистрацию, я имел в виду, что автор пулла или репозитория могут быть не зарегестрированы в моём сервисе, и даже не знать про него. Бот может прийти в любой пулл и покомментить, что пулл похоже подтухает :)
Psychopompe
01.05.2019 19:19А, да, я подразумевал это. Я полагаю, что тот бот, которые напоминает про issues (и автоматически закрывает их) требует доступа к репозиторию, но в случае PR это не требуется. Всё, что нужно, — это напомнить о висящем коммите.
Svetlyak Автор
01.05.2019 20:48У меня, кстати, есть ещё одна разработка – скрипт, который проходится по всем форкам и ищет несмердженные в апстрим ветки. Про такое тоже можно как-то напоминать владельцу основного репозитория. В форках иногда попадаются полезные доработки, которые люди по разным причинам не превращают в пуллы и не вливают в апстрим.
andreymal
Дык на гитхабе уведомления есть, в том числе на почту. Просто нужно их читать хотя бы иногда. На вашем скриншоте есть упоминание вашего ника — вы просто обязаны были получить письмо на почту по этому поводу. Почему вы игнорировали уведомление почти год — фиг вас знает. scymtym'а это тоже касается
Svetlyak Автор
Так бывает, что эти уведомления теряются в общем потоке писем. В этом и суть того, проекта который я тут описываю – показывать на одной странице в удобном виде все действия, которые тебе нужно совершить, чтобы работа по всем пуллам и тикетам двигалась вперёд.
Читать уведомления на почту конечно же надо. Но я могу читать только свои письма, и не могу повлиять на то, как их разбирают мейнтейнеры библиотек. И если мейнтейнер уведомление пропустил, то нужно как-то ему напомнить о себе. Как это сделать? Ведь гтихаб не присылает на почту напоминалку о том, что ты вот писал две недели назад коммент в таком то пулле, но там тебе никто так и не ответил. А мой сервис сможет делать и это тоже.
andreymal
Поэтому у меня для гитхаба заведена отдельная папка в почте. Уведомления, про которые нужно не забыть, можно отметить звёздочкой или отправить в закладки (или просто не удалять их, удаляя все остальные уведомления). Так что я всё ещё не вижу проблемы
Всегда можно пробежаться по упомянутым в посте https://github.com/pulls и https://github.com/issues отсортировав их по Least recently updated
По крайней мере из поста совершенно неочевидно, чем упомянутый инструмент будет принципиально отличаться от пробегания по этим страницам
Svetlyak Автор
Сейчас мой MVP берёт весь список пуллов и тикетов и разбивает их на несколько категорий:
* Тикеты в которых есть новые комменты с момента, когда я последний раз там что-то писал или создал тикет (тут же показывается число этих комментов, а в веб-версии можно будет отображать их самих + дать возможность тут же ответить)
* Тикеты в которых давно не было активности. Пока MVP пишет лишь время с последнего коммента, но опять же, можно последние комменты и форму ответа подтянуть или сделать кнопки для быстрых ответов с шаблонами, типа: «Please, review my pull».
* Пуллы в коорых есть мердж конфликты.
* Тикеты которые я по каким-то причинам решил отложить до лучших времён + заметка для меня самого, с указанием причины. Например там можно написать, что сейчас пока времени нет на этот проект, и «отложить его на месяц». Спустя заданное время он автоматически появится в одном из списков описанных выше.
Вот такими вещами он может отличаться. И я уверен, что можно ещё много чего придумать.
andreymal
Ну, первое решается вышеупомянутыми уведомлениями, второе я уже написал в предыдущем комментарии чем решается, для четвёртого есть закладки. Разве что готового решения для списка конфликтов, похоже, действительно нет, надо фичреквест в гитхаб отправить, чтоб поиск допилили)
Svetlyak Автор
Да, главное – чтобы удобно было.
Svetlyak Автор
Только закладки не спасут от того, что эти задачи будут мешаться, когда ты будешь (в рамках второго пункта) пробегаться по всему списку в поисках того, на каком моменте какая задача застряла.